Raspbian Package Auto-Building

Build log for vim (2:8.0.0197-3) on armhf

vim2:8.0.0197-3armhf → 2017-03-09 07:06:42

sbuild (Debian sbuild) 0.71.0 (24 Aug 2016) on testbuildd.raspbian.org

+==============================================================================+
| vim 2:8.0.0197-3 (armhf)                     Thu, 09 Mar 2017 05:23:15 +0000 |
+==============================================================================+

Package: vim
Version: 2:8.0.0197-3
Source Version: 2:8.0.0197-3
Distribution: stretch-staging
Machine Architecture: armhf
Host Architecture: armhf
Build Architecture: armhf

I: NOTICE: Log filtering will replace 'var/lib/schroot/mount/stretch-staging-armhf-sbuild-e41f8219-355a-4363-9ebe-c6119f5d60a5' with '<<CHROOT>>'

+------------------------------------------------------------------------------+
| Update chroot                                                                |
+------------------------------------------------------------------------------+

Get:1 http://172.17.0.1/private stretch-staging InRelease [11.3 kB]
Get:2 http://172.17.0.1/private stretch-staging/main Sources [9732 kB]
Get:3 http://172.17.0.1/private stretch-staging/main armhf Packages [11.7 MB]
Fetched 21.4 MB in 27s (793 kB/s)
Reading package lists...
W: No sandbox user '_apt' on the system, can not drop privileges

+------------------------------------------------------------------------------+
| Fetch source files                                                           |
+------------------------------------------------------------------------------+


Check APT
---------

Checking available source versions...

Download source files with APT
------------------------------

Reading package lists...
NOTICE: 'vim' packaging is maintained in the 'Git' version control system at:
https://anonscm.debian.org/cgit/pkg-vim/vim.git/
Please use:
git clone https://anonscm.debian.org/cgit/pkg-vim/vim.git/
to retrieve the latest (possibly unreleased) updates to the package.
Need to get 13.1 MB of source archives.
Get:1 http://172.17.0.1/private stretch-staging/main vim 2:8.0.0197-3 (dsc) [2991 B]
Get:2 http://172.17.0.1/private stretch-staging/main vim 2:8.0.0197-3 (tar) [13.0 MB]
Get:3 http://172.17.0.1/private stretch-staging/main vim 2:8.0.0197-3 (diff) [155 kB]
Fetched 13.1 MB in 3s (3468 kB/s)
Download complete and in download only mode
I: NOTICE: Log filtering will replace 'build/vim-XZm5mB/vim-8.0.0197' with '<<PKGBUILDDIR>>'
I: NOTICE: Log filtering will replace 'build/vim-XZm5mB' with '<<BUILDDIR>>'

+------------------------------------------------------------------------------+
| Install build-essential                                                      |
+------------------------------------------------------------------------------+


Setup apt archive
-----------------

Merged Build-Depends: build-essential, fakeroot
Filtered Build-Depends: build-essential, fakeroot
dpkg-deb: building package 'sbuild-build-depends-core-dummy' in '/<<BUILDDIR>>/resolver-vrIBN7/apt_archive/sbuild-build-depends-core-dummy.deb'.
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning:   sbuild-build-depends-core-dummy
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
gpg: keybox '/<<BUILDDIR>>/resolver-vrIBN7/gpg/pubring.kbx' created
gpg: /<<BUILDDIR>>/resolver-vrIBN7/gpg/trustdb.gpg: trustdb created
gpg: key 5FBC947B34E39F26: public key "Sbuild Signer (Sbuild Build Dependency Archive Key) <buildd-tools-devel@lists.alioth.debian.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: key 5FBC947B34E39F26: "Sbuild Signer (Sbuild Build Dependency Archive Key) <buildd-tools-devel@lists.alioth.debian.org>" not changed
gpg: key 5FBC947B34E39F26: secret key imported
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg:       secret keys read: 1
gpg:   secret keys imported: 1
gpg: using "Sbuild Signer" as default secret key for signing
Ign:1 copy:/<<BUILDDIR>>/resolver-vrIBN7/apt_archive ./ InRelease
Get:2 copy:/<<BUILDDIR>>/resolver-vrIBN7/apt_archive ./ Release [957 B]
Get:3 copy:/<<BUILDDIR>>/resolver-vrIBN7/apt_archive ./ Release.gpg [370 B]
Get:4 copy:/<<BUILDDIR>>/resolver-vrIBN7/apt_archive ./ Sources [349 B]
Get:5 copy:/<<BUILDDIR>>/resolver-vrIBN7/apt_archive ./ Packages [430 B]
Fetched 2106 B in 0s (2951 B/s)
Reading package lists...
W: No sandbox user '_apt' on the system, can not drop privileges
Reading package lists...

Install core build dependencies (apt-based resolver)
----------------------------------------------------

Installing build dependencies
Reading package lists...
Building dependency tree...
Reading state information...
The following packages were automatically installed and are no longer required:
  fuse2fs gnupg-l10n libfuse2 manpages
Use 'apt autoremove' to remove them.
The following NEW packages will be installed:
  sbuild-build-depends-core-dummy
0 upgraded, 1 newly installed, 0 to remove and 10 not upgraded.
Need to get 772 B of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 copy:/<<BUILDDIR>>/resolver-vrIBN7/apt_archive ./ sbuild-build-depends-core-dummy 0.invalid.0 [772 B]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 772 B in 0s (73.2 kB/s)
Selecting previously unselected package sbuild-build-depends-core-dummy.
(Reading database ... 13019 files and directories currently installed.)
Preparing to unpack .../sbuild-build-depends-core-dummy_0.invalid.0_armhf.deb ...
Unpacking sbuild-build-depends-core-dummy (0.invalid.0) ...
Setting up sbuild-build-depends-core-dummy (0.invalid.0) ...
W: No sandbox user '_apt' on the system, can not drop privileges

+------------------------------------------------------------------------------+
| Check architectures                                                          |
+------------------------------------------------------------------------------+

Arch check ok (armhf included in any all)

+------------------------------------------------------------------------------+
| Install package build dependencies                                           |
+------------------------------------------------------------------------------+


Setup apt archive
-----------------

Merged Build-Depends: autoconf, debhelper (>= 9.20160114), libacl1-dev, libgpmg1-dev, libgtk-3-dev, libgtk2.0-dev, liblua5.2-dev, libperl-dev, libselinux1-dev, libtinfo-dev | libncurses5-dev, libxaw7-dev, libxpm-dev, libxt-dev, lua5.2, python3-dev, ruby, ruby-dev, tcl-dev
Merged Build-Conflicts: autoconf2.13, ruby1.8 (<< 1.8.7.358-8), ruby1.8-dev (<< 1.8.7.358-8)
Filtered Build-Depends: autoconf, debhelper (>= 9.20160114), libacl1-dev, libgpmg1-dev, libgtk-3-dev, libgtk2.0-dev, liblua5.2-dev, libperl-dev, libselinux1-dev, libtinfo-dev, libxaw7-dev, libxpm-dev, libxt-dev, lua5.2, python3-dev, ruby, ruby-dev, tcl-dev
Filtered Build-Conflicts: autoconf2.13, ruby1.8 (<< 1.8.7.358-8), ruby1.8-dev (<< 1.8.7.358-8)
dpkg-deb: building package 'sbuild-build-depends-vim-dummy' in '/<<BUILDDIR>>/resolver-vrIBN7/apt_archive/sbuild-build-depends-vim-dummy.deb'.
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning:   sbuild-build-depends-core-dummy sbuild-build-depends-vim-dummy
dpkg-scanpackages: info: Wrote 2 entries to output Packages file.
gpg: using "Sbuild Signer" as default secret key for signing
Ign:1 copy:/<<BUILDDIR>>/resolver-vrIBN7/apt_archive ./ InRelease
Get:2 copy:/<<BUILDDIR>>/resolver-vrIBN7/apt_archive ./ Release [963 B]
Get:3 copy:/<<BUILDDIR>>/resolver-vrIBN7/apt_archive ./ Release.gpg [370 B]
Get:4 copy:/<<BUILDDIR>>/resolver-vrIBN7/apt_archive ./ Sources [647 B]
Get:5 copy:/<<BUILDDIR>>/resolver-vrIBN7/apt_archive ./ Packages [692 B]
Fetched 2672 B in 0s (3783 B/s)
Reading package lists...
W: No sandbox user '_apt' on the system, can not drop privileges
Reading package lists...

Install vim build dependencies (apt-based resolver)
---------------------------------------------------

Installing build dependencies
Reading package lists...
Building dependency tree...
Reading state information...
The following packages were automatically installed and are no longer required:
  fuse2fs gnupg-l10n libfuse2 manpages
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  adwaita-icon-theme autoconf automake autopoint autotools-dev bsdmainutils
  ca-certificates dconf-gsettings-backend dconf-service debhelper
  dh-autoreconf dh-python dh-strip-nondeterminism file fontconfig
  fontconfig-config fonts-dejavu-core gettext gettext-base gir1.2-atk-1.0
  gir1.2-atspi-2.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0
  gir1.2-gtk-2.0 gir1.2-gtk-3.0 gir1.2-pango-1.0 glib-networking
  glib-networking-common glib-networking-services groff-base
  gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme
  icu-devtools intltool-debian libacl1-dev libarchive-zip-perl
  libatk-bridge2.0-0 libatk-bridge2.0-dev libatk1.0-0 libatk1.0-data
  libatk1.0-dev libatspi2.0-0 libatspi2.0-dev libattr1-dev libavahi-client3
  libavahi-common-data libavahi-common3 libbsd0 libcairo-gobject2
  libcairo-script-interpreter2 libcairo2 libcairo2-dev libcolord2 libcroco3
  libcups2 libdatrie1 libdbus-1-dev libdconf1 libelf1 libepoxy-dev libepoxy0
  libexpat1 libexpat1-dev libffi6 libfile-stripnondeterminism-perl
  libfontconfig1 libfontconfig1-dev libfreetype6 libfreetype6-dev
  libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common libgdk-pixbuf2.0-dev
  libgirepository-1.0-1 libglib2.0-0 libglib2.0-bin libglib2.0-data
  libglib2.0-dev libgmp-dev libgmpxx4ldbl libgnutls30 libgpm-dev libgpm2
  libgraphite2-3 libgraphite2-dev libgssapi-krb5-2 libgtk-3-0 libgtk-3-common
  libgtk-3-dev libgtk2.0-0 libgtk2.0-common libgtk2.0-dev libharfbuzz-dev
  libharfbuzz-gobject0 libharfbuzz-icu0 libharfbuzz0b libhogweed4 libice-dev
  libice6 libicu-dev libicu57 libjbig0 libjpeg62-turbo libjson-glib-1.0-0
  libjson-glib-1.0-common libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0
  liblcms2-2 liblua5.2-0 liblua5.2-dev liblzo2-2 libmagic-mgc libmagic1
  libmpdec2 libnettle6 libp11-kit0 libpango-1.0-0 libpango1.0-dev
  libpangocairo-1.0-0 libpangoft2-1.0-0 libpangoxft-1.0-0 libpcre16-3 libpcre3
  libpcre3-dev libpcre32-3 libpcrecpp0v5 libperl-dev libpipeline1
  libpixman-1-0 libpixman-1-dev libpng-dev libpng16-16 libproxy1v5
  libpthread-stubs0-dev libpython3-dev libpython3-stdlib libpython3.5
  libpython3.5-dev libpython3.5-minimal libpython3.5-stdlib libreadline-dev
  libreadline6 librest-0.7-0 librsvg2-2 librsvg2-common libruby2.3
  libselinux1-dev libsepol1-dev libsigsegv2 libsm-dev libsm6
  libsoup-gnome2.4-1 libsoup2.4-1 libssl1.0.2 libssl1.1 libtasn1-6 libtcl8.6
  libthai-data libthai0 libtiff5 libtimedate-perl libtinfo-dev libtool
  libunistring0 libx11-6 libx11-data libx11-dev libxau-dev libxau6 libxaw7
  libxaw7-dev libxcb-render0 libxcb-render0-dev libxcb-shm0 libxcb-shm0-dev
  libxcb1 libxcb1-dev libxcomposite-dev libxcomposite1 libxcursor-dev
  libxcursor1 libxdamage-dev libxdamage1 libxdmcp-dev libxdmcp6 libxext-dev
  libxext6 libxfixes-dev libxfixes3 libxft-dev libxft2 libxi-dev libxi6
  libxinerama-dev libxinerama1 libxkbcommon-dev libxkbcommon0 libxml2
  libxml2-utils libxmu-dev libxmu-headers libxmu6 libxpm-dev libxpm4
  libxrandr-dev libxrandr2 libxrender-dev libxrender1 libxt-dev libxt6
  libxtst-dev libxtst6 libyaml-0-2 lua5.2 m4 man-db mime-support openssl
  pkg-config po-debconf python3 python3-dev python3-minimal python3.5
  python3.5-dev python3.5-minimal rake ruby ruby-dev ruby-did-you-mean
  ruby-minitest ruby-net-telnet ruby-power-assert ruby-test-unit ruby2.3
  ruby2.3-dev rubygems-integration shared-mime-info tcl tcl-dev tcl8.6
  tcl8.6-dev ucf x11-common x11proto-composite-dev x11proto-core-dev
  x11proto-damage-dev x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev
  x11proto-randr-dev x11proto-record-dev x11proto-render-dev x11proto-xext-dev
  x11proto-xinerama-dev xkb-data xorg-sgml-doctools xtrans-dev zlib1g-dev
Suggested packages:
  autoconf-archive gnu-standards autoconf-doc wamerican | wordlist whois
  vacation dh-make gettext-doc libasprintf-dev libgettextpo-dev groff
  libcairo2-doc colord cups-common libglib2.0-doc gmp-doc libgmp10-doc
  libmpfr-dev gnutls-bin gpm krb5-doc krb5-user gvfs libgtk-3-doc
  libgtk2.0-doc libice-doc icu-doc liblcms2-utils imagemagick libpango1.0-doc
  readline-doc librsvg2-bin libsm-doc libtool-doc gfortran
  | fortran95-compiler gcj-jdk libxaw-doc libxcb-doc libxext-doc libxt-doc
  m4-doc less www-browser libmail-box-perl python3-doc python3-tk python3-venv
  python3.5-venv python3.5-doc binfmt-support ri bundler tcl-doc
  tcl-tclreadline tcl8.6-doc
Recommended packages:
  curl | wget | lynx-cur at-spi2-core xdg-user-dirs libgtk-3-bin
  libgail-common libgtk2.0-bin python krb5-locales libtool-bin libpng-tools
  libltdl-dev libx11-doc xml-core libmail-sendmail-perl zip fonts-lato
  libjs-jquery
The following NEW packages will be installed:
  adwaita-icon-theme autoconf automake autopoint autotools-dev bsdmainutils
  ca-certificates dconf-gsettings-backend dconf-service debhelper
  dh-autoreconf dh-python dh-strip-nondeterminism file fontconfig
  fontconfig-config fonts-dejavu-core gettext gettext-base gir1.2-atk-1.0
  gir1.2-atspi-2.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0
  gir1.2-gtk-2.0 gir1.2-gtk-3.0 gir1.2-pango-1.0 glib-networking
  glib-networking-common glib-networking-services groff-base
  gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme
  icu-devtools intltool-debian libacl1-dev libarchive-zip-perl
  libatk-bridge2.0-0 libatk-bridge2.0-dev libatk1.0-0 libatk1.0-data
  libatk1.0-dev libatspi2.0-0 libatspi2.0-dev libattr1-dev libavahi-client3
  libavahi-common-data libavahi-common3 libbsd0 libcairo-gobject2
  libcairo-script-interpreter2 libcairo2 libcairo2-dev libcolord2 libcroco3
  libcups2 libdatrie1 libdbus-1-dev libdconf1 libelf1 libepoxy-dev libepoxy0
  libexpat1 libexpat1-dev libffi6 libfile-stripnondeterminism-perl
  libfontconfig1 libfontconfig1-dev libfreetype6 libfreetype6-dev
  libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common libgdk-pixbuf2.0-dev
  libgirepository-1.0-1 libglib2.0-0 libglib2.0-bin libglib2.0-data
  libglib2.0-dev libgmp-dev libgmpxx4ldbl libgnutls30 libgpm-dev libgpm2
  libgraphite2-3 libgraphite2-dev libgssapi-krb5-2 libgtk-3-0 libgtk-3-common
  libgtk-3-dev libgtk2.0-0 libgtk2.0-common libgtk2.0-dev libharfbuzz-dev
  libharfbuzz-gobject0 libharfbuzz-icu0 libharfbuzz0b libhogweed4 libice-dev
  libice6 libicu-dev libicu57 libjbig0 libjpeg62-turbo libjson-glib-1.0-0
  libjson-glib-1.0-common libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0
  liblcms2-2 liblua5.2-0 liblua5.2-dev liblzo2-2 libmagic-mgc libmagic1
  libmpdec2 libnettle6 libp11-kit0 libpango-1.0-0 libpango1.0-dev
  libpangocairo-1.0-0 libpangoft2-1.0-0 libpangoxft-1.0-0 libpcre16-3
  libpcre3-dev libpcre32-3 libpcrecpp0v5 libperl-dev libpipeline1
  libpixman-1-0 libpixman-1-dev libpng-dev libpng16-16 libproxy1v5
  libpthread-stubs0-dev libpython3-dev libpython3-stdlib libpython3.5
  libpython3.5-dev libpython3.5-minimal libpython3.5-stdlib libreadline-dev
  libreadline6 librest-0.7-0 librsvg2-2 librsvg2-common libruby2.3
  libselinux1-dev libsepol1-dev libsigsegv2 libsm-dev libsm6
  libsoup-gnome2.4-1 libsoup2.4-1 libssl1.0.2 libssl1.1 libtasn1-6 libtcl8.6
  libthai-data libthai0 libtiff5 libtimedate-perl libtinfo-dev libtool
  libunistring0 libx11-6 libx11-data libx11-dev libxau-dev libxau6 libxaw7
  libxaw7-dev libxcb-render0 libxcb-render0-dev libxcb-shm0 libxcb-shm0-dev
  libxcb1 libxcb1-dev libxcomposite-dev libxcomposite1 libxcursor-dev
  libxcursor1 libxdamage-dev libxdamage1 libxdmcp-dev libxdmcp6 libxext-dev
  libxext6 libxfixes-dev libxfixes3 libxft-dev libxft2 libxi-dev libxi6
  libxinerama-dev libxinerama1 libxkbcommon-dev libxkbcommon0 libxml2
  libxml2-utils libxmu-dev libxmu-headers libxmu6 libxpm-dev libxpm4
  libxrandr-dev libxrandr2 libxrender-dev libxrender1 libxt-dev libxt6
  libxtst-dev libxtst6 libyaml-0-2 lua5.2 m4 man-db mime-support openssl
  pkg-config po-debconf python3 python3-dev python3-minimal python3.5
  python3.5-dev python3.5-minimal rake ruby ruby-dev ruby-did-you-mean
  ruby-minitest ruby-net-telnet ruby-power-assert ruby-test-unit ruby2.3
  ruby2.3-dev rubygems-integration sbuild-build-depends-vim-dummy
  shared-mime-info tcl tcl-dev tcl8.6 tcl8.6-dev ucf x11-common
  x11proto-composite-dev x11proto-core-dev x11proto-damage-dev
  x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev
  x11proto-record-dev x11proto-render-dev x11proto-xext-dev
  x11proto-xinerama-dev xkb-data xorg-sgml-doctools xtrans-dev zlib1g-dev
The following packages will be upgraded:
  libpcre3
1 upgraded, 262 newly installed, 0 to remove and 9 not upgraded.
Need to get 157 MB/158 MB of archives.
After this operation, 493 MB of additional disk space will be used.
Get:1 copy:/<<BUILDDIR>>/resolver-vrIBN7/apt_archive ./ sbuild-build-depends-vim-dummy 0.invalid.0 [900 B]
Get:2 http://172.17.0.1/private stretch-staging/main armhf libpcre3 armhf 2:8.39-2.1 [313 kB]
Get:3 http://172.17.0.1/private stretch-staging/main armhf groff-base armhf 1.22.3-9 [1005 kB]
Get:4 http://172.17.0.1/private stretch-staging/main armhf libbsd0 armhf 0.8.3-1 [89.0 kB]
Get:5 http://172.17.0.1/private stretch-staging/main armhf bsdmainutils armhf 9.0.12 [178 kB]
Get:6 http://172.17.0.1/private stretch-staging/main armhf libpipeline1 armhf 1.4.1-2 [23.7 kB]
Get:7 http://172.17.0.1/private stretch-staging/main armhf man-db armhf 2.7.6.1-2 [1014 kB]
Get:8 http://172.17.0.1/private stretch-staging/main armhf libexpat1 armhf 2.2.0-2 [62.2 kB]
Get:9 http://172.17.0.1/private stretch-staging/main armhf libpng16-16 armhf 1.6.28-1 [263 kB]
Get:10 http://172.17.0.1/private stretch-staging/main armhf libfreetype6 armhf 2.6.3-3+b1 [385 kB]
Get:11 http://172.17.0.1/private stretch-staging/main armhf ucf all 3.0036 [70.2 kB]
Get:12 http://172.17.0.1/private stretch-staging/main armhf fonts-dejavu-core all 2.37-1 [1068 kB]
Get:13 http://172.17.0.1/private stretch-staging/main armhf fontconfig-config all 2.11.0-6.7 [271 kB]
Get:14 http://172.17.0.1/private stretch-staging/main armhf libfontconfig1 armhf 2.11.0-6.7 [313 kB]
Get:15 http://172.17.0.1/private stretch-staging/main armhf fontconfig armhf 2.11.0-6.7 [402 kB]
Get:16 http://172.17.0.1/private stretch-staging/main armhf libjbig0 armhf 2.1-3.1 [27.5 kB]
Get:17 http://172.17.0.1/private stretch-staging/main armhf liblzo2-2 armhf 2.08-1.2 [47.6 kB]
Get:18 http://172.17.0.1/private stretch-staging/main armhf libpcrecpp0v5 armhf 2:8.39-2.1 [149 kB]
Get:19 http://172.17.0.1/private stretch-staging/main armhf libxau6 armhf 1:1.0.8-1 [19.9 kB]
Get:20 http://172.17.0.1/private stretch-staging/main armhf libxdmcp6 armhf 1:1.1.2-3 [25.0 kB]
Get:21 http://172.17.0.1/private stretch-staging/main armhf libxcb1 armhf 1.12-1 [129 kB]
Get:22 http://172.17.0.1/private stretch-staging/main armhf libx11-data all 2:1.6.4-3 [290 kB]
Get:23 http://172.17.0.1/private stretch-staging/main armhf libx11-6 armhf 2:1.6.4-3 [683 kB]
Get:24 http://172.17.0.1/private stretch-staging/main armhf libxext6 armhf 2:1.3.3-1 [48.1 kB]
Get:25 http://172.17.0.1/private stretch-staging/main armhf libxrender1 armhf 1:0.9.10-1 [29.9 kB]
Get:26 http://172.17.0.1/private stretch-staging/main armhf libxft2 armhf 2.3.2-1 [48.3 kB]
Get:27 http://172.17.0.1/private stretch-staging/main armhf libssl1.1 armhf 1.1.0e-1 [1103 kB]
Get:28 http://172.17.0.1/private stretch-staging/main armhf libpython3.5-minimal armhf 3.5.3-1 [566 kB]
Get:29 http://172.17.0.1/private stretch-staging/main armhf python3.5-minimal armhf 3.5.3-1 [1442 kB]
Get:30 http://172.17.0.1/private stretch-staging/main armhf python3-minimal armhf 3.5.3-1 [35.3 kB]
Get:31 http://172.17.0.1/private stretch-staging/main armhf mime-support all 3.60 [36.7 kB]
Get:32 http://172.17.0.1/private stretch-staging/main armhf libmpdec2 armhf 2.4.2-1 [67.5 kB]
Get:33 http://172.17.0.1/private stretch-staging/main armhf libpython3.5-stdlib armhf 3.5.3-1 [2091 kB]
Get:34 http://172.17.0.1/private stretch-staging/main armhf python3.5 armhf 3.5.3-1 [229 kB]
Get:35 http://172.17.0.1/private stretch-staging/main armhf libpython3-stdlib armhf 3.5.3-1 [18.6 kB]
Get:36 http://172.17.0.1/private stretch-staging/main armhf dh-python all 2.20170125 [86.8 kB]
Get:37 http://172.17.0.1/private stretch-staging/main armhf python3 armhf 3.5.3-1 [21.6 kB]
Get:38 http://172.17.0.1/private stretch-staging/main armhf libssl1.0.2 armhf 1.0.2k-1 [893 kB]
Get:39 http://172.17.0.1/private stretch-staging/main armhf libmagic-mgc armhf 1:5.29-3 [221 kB]
Get:40 http://172.17.0.1/private stretch-staging/main armhf libmagic1 armhf 1:5.29-3 [104 kB]
Get:41 http://172.17.0.1/private stretch-staging/main armhf file armhf 1:5.29-3 [63.2 kB]
Get:42 http://172.17.0.1/private stretch-staging/main armhf gettext-base armhf 0.19.8.1-2 [116 kB]
Get:43 http://172.17.0.1/private stretch-staging/main armhf libp11-kit0 armhf 0.23.3-2 [94.4 kB]
Get:44 http://172.17.0.1/private stretch-staging/main armhf libtasn1-6 armhf 4.10-1 [45.3 kB]
Get:45 http://172.17.0.1/private stretch-staging/main armhf libgnutls30 armhf 3.5.8-3 [822 kB]
Get:46 http://172.17.0.1/private stretch-staging/main armhf libgpm2 armhf 1.20.4-6.2 [33.0 kB]
Get:47 http://172.17.0.1/private stretch-staging/main armhf libkeyutils1 armhf 1.5.9-9 [11.9 kB]
Get:48 http://172.17.0.1/private stretch-staging/main armhf libkrb5support0 armhf 1.15-1 [57.9 kB]
Get:49 http://172.17.0.1/private stretch-staging/main armhf libk5crypto3 armhf 1.15-1 [115 kB]
Get:50 http://172.17.0.1/private stretch-staging/main armhf libkrb5-3 armhf 1.15-1 [262 kB]
Get:51 http://172.17.0.1/private stretch-staging/main armhf libgssapi-krb5-2 armhf 1.15-1 [132 kB]
Get:52 http://172.17.0.1/private stretch-staging/main armhf libicu57 armhf 57.1-5 [7427 kB]
Get:53 http://172.17.0.1/private stretch-staging/main armhf libxml2 armhf 2.9.4+dfsg1-2.2 [806 kB]
Get:54 http://172.17.0.1/private stretch-staging/main armhf hicolor-icon-theme all 0.15-1 [9550 B]
Get:55 http://172.17.0.1/private stretch-staging/main armhf libglib2.0-0 armhf 2.50.3-1 [2527 kB]
Get:56 http://172.17.0.1/private stretch-staging/main armhf libjpeg62-turbo armhf 1:1.5.1-2 [109 kB]
Get:57 http://172.17.0.1/private stretch-staging/main armhf libtiff5 armhf 4.0.7-5 [211 kB]
Get:58 http://172.17.0.1/private stretch-staging/main armhf shared-mime-info armhf 1.8-1 [727 kB]
Get:59 http://172.17.0.1/private stretch-staging/main armhf libgdk-pixbuf2.0-common all 2.36.5-2 [310 kB]
Get:60 http://172.17.0.1/private stretch-staging/main armhf libgdk-pixbuf2.0-0 armhf 2.36.5-2 [152 kB]
Get:61 http://172.17.0.1/private stretch-staging/main armhf gtk-update-icon-cache armhf 3.22.6-1+rpi1 [75.1 kB]
Get:62 http://172.17.0.1/private stretch-staging/main armhf libpixman-1-0 armhf 0.34.0-1 [451 kB]
Get:63 http://172.17.0.1/private stretch-staging/main armhf libxcb-render0 armhf 1.12-1 [104 kB]
Get:64 http://172.17.0.1/private stretch-staging/main armhf libxcb-shm0 armhf 1.12-1 [95.9 kB]
Get:65 http://172.17.0.1/private stretch-staging/main armhf libcairo2 armhf 1.14.8-1 [688 kB]
Get:66 http://172.17.0.1/private stretch-staging/main armhf libcroco3 armhf 0.6.11-2 [131 kB]
Get:67 http://172.17.0.1/private stretch-staging/main armhf libthai-data all 0.1.26-1 [166 kB]
Get:68 http://172.17.0.1/private stretch-staging/main armhf libdatrie1 armhf 0.2.10-4 [32.8 kB]
Get:69 http://172.17.0.1/private stretch-staging/main armhf libthai0 armhf 0.1.26-1 [49.3 kB]
Get:70 http://172.17.0.1/private stretch-staging/main armhf libpango-1.0-0 armhf 1.40.3-3 [300 kB]
Get:71 http://172.17.0.1/private stretch-staging/main armhf libgraphite2-3 armhf 1.3.9-4 [71.8 kB]
Get:72 http://172.17.0.1/private stretch-staging/main armhf libharfbuzz0b armhf 1.4.2-1 [640 kB]
Get:73 http://172.17.0.1/private stretch-staging/main armhf libpangoft2-1.0-0 armhf 1.40.3-3 [196 kB]
Get:74 http://172.17.0.1/private stretch-staging/main armhf libpangocairo-1.0-0 armhf 1.40.3-3 [186 kB]
Get:75 http://172.17.0.1/private stretch-staging/main armhf librsvg2-2 armhf 2.40.16-1 [266 kB]
Get:76 http://172.17.0.1/private stretch-staging/main armhf librsvg2-common armhf 2.40.16-1 [193 kB]
Get:77 http://172.17.0.1/private stretch-staging/main armhf adwaita-icon-theme all 3.22.0-1 [11.5 MB]
Get:78 http://172.17.0.1/private stretch-staging/main armhf libsigsegv2 armhf 2.10-5 [28.4 kB]
Get:79 http://172.17.0.1/private stretch-staging/main armhf m4 armhf 1.4.18-1 [185 kB]
Get:80 http://172.17.0.1/private stretch-staging/main armhf autoconf all 2.69-10 [338 kB]
Get:81 http://172.17.0.1/private stretch-staging/main armhf autotools-dev all 20161112.1 [73.4 kB]
Get:82 http://172.17.0.1/private stretch-staging/main armhf automake all 1:1.15-6 [733 kB]
Get:83 http://172.17.0.1/private stretch-staging/main armhf autopoint all 0.19.8.1-2 [433 kB]
Get:84 http://172.17.0.1/private stretch-staging/main armhf openssl armhf 1.1.0e-1 [705 kB]
Get:85 http://172.17.0.1/private stretch-staging/main armhf ca-certificates all 20161130 [203 kB]
Get:86 http://172.17.0.1/private stretch-staging/main armhf libdconf1 armhf 0.26.0-2 [33.3 kB]
Get:87 http://172.17.0.1/private stretch-staging/main armhf dconf-service armhf 0.26.0-2 [30.1 kB]
Get:88 http://172.17.0.1/private stretch-staging/main armhf dconf-gsettings-backend armhf 0.26.0-2 [22.5 kB]
Get:89 http://172.17.0.1/private stretch-staging/main armhf libtool all 2.4.6-2 [545 kB]
Get:90 http://172.17.0.1/private stretch-staging/main armhf dh-autoreconf all 13 [15.8 kB]
Get:91 http://172.17.0.1/private stretch-staging/main armhf libarchive-zip-perl all 1.59-1 [95.5 kB]
Get:92 http://172.17.0.1/private stretch-staging/main armhf libfile-stripnondeterminism-perl all 0.031-1 [15.7 kB]
Get:93 http://172.17.0.1/private stretch-staging/main armhf libtimedate-perl all 2.3000-2 [42.2 kB]
Get:94 http://172.17.0.1/private stretch-staging/main armhf dh-strip-nondeterminism all 0.031-1 [9736 B]
Get:95 http://172.17.0.1/private stretch-staging/main armhf libunistring0 armhf 0.9.6+really0.9.3-0.1 [252 kB]
Get:96 http://172.17.0.1/private stretch-staging/main armhf gettext armhf 0.19.8.1-2 [1434 kB]
Get:97 http://172.17.0.1/private stretch-staging/main armhf intltool-debian all 0.35.0+20060710.4 [26.3 kB]
Get:98 http://172.17.0.1/private stretch-staging/main armhf po-debconf all 1.0.20 [247 kB]
Get:99 http://172.17.0.1/private stretch-staging/main armhf debhelper all 10.2.5 [961 kB]
Get:100 http://172.17.0.1/private stretch-staging/main armhf libgirepository-1.0-1 armhf 1.50.0-1 [76.4 kB]
Get:101 http://172.17.0.1/private stretch-staging/main armhf gir1.2-glib-2.0 armhf 1.50.0-1 [139 kB]
Get:102 http://172.17.0.1/private stretch-staging/main armhf libatk1.0-data all 2.22.0-1 [172 kB]
Get:103 http://172.17.0.1/private stretch-staging/main armhf libatk1.0-0 armhf 2.22.0-1 [70.4 kB]
Get:104 http://172.17.0.1/private stretch-staging/main armhf gir1.2-atk-1.0 armhf 2.22.0-1 [53.5 kB]
Get:105 http://172.17.0.1/private stretch-staging/main armhf libatspi2.0-0 armhf 2.22.0-5 [52.0 kB]
Get:106 http://172.17.0.1/private stretch-staging/main armhf gir1.2-atspi-2.0 armhf 2.22.0-5 [18.3 kB]
Get:107 http://172.17.0.1/private stretch-staging/main armhf libcairo-gobject2 armhf 1.14.8-1 [335 kB]
Get:108 http://172.17.0.1/private stretch-staging/main armhf gir1.2-freedesktop armhf 1.50.0-1 [15.2 kB]
Get:109 http://172.17.0.1/private stretch-staging/main armhf gir1.2-gdkpixbuf-2.0 armhf 2.36.5-2 [15.2 kB]
Get:110 http://172.17.0.1/private stretch-staging/main armhf libgtk2.0-common all 2.24.31-2 [2693 kB]
Get:111 http://172.17.0.1/private stretch-staging/main armhf libpangoxft-1.0-0 armhf 1.40.3-3 [181 kB]
Get:112 http://172.17.0.1/private stretch-staging/main armhf gir1.2-pango-1.0 armhf 1.40.3-3 [189 kB]
Get:113 http://172.17.0.1/private stretch-staging/main armhf libavahi-common-data armhf 0.6.32-2 [118 kB]
Get:114 http://172.17.0.1/private stretch-staging/main armhf libavahi-common3 armhf 0.6.32-2 [48.6 kB]
Get:115 http://172.17.0.1/private stretch-staging/main armhf libavahi-client3 armhf 0.6.32-2 [51.3 kB]
Get:116 http://172.17.0.1/private stretch-staging/main armhf libcups2 armhf 2.2.1-8 [272 kB]
Get:117 http://172.17.0.1/private stretch-staging/main armhf libxcomposite1 armhf 1:0.4.4-2 [16.1 kB]
Get:118 http://172.17.0.1/private stretch-staging/main armhf libxfixes3 armhf 1:5.0.3-1 [20.6 kB]
Get:119 http://172.17.0.1/private stretch-staging/main armhf libxcursor1 armhf 1:1.1.14-1+b1 [31.9 kB]
Get:120 http://172.17.0.1/private stretch-staging/main armhf libxdamage1 armhf 1:1.1.4-2+b1 [14.1 kB]
Get:121 http://172.17.0.1/private stretch-staging/main armhf libxi6 armhf 2:1.7.9-1 [77.8 kB]
Get:122 http://172.17.0.1/private stretch-staging/main armhf libxinerama1 armhf 2:1.1.3-1+b1 [16.4 kB]
Get:123 http://172.17.0.1/private stretch-staging/main armhf libxrandr2 armhf 2:1.5.1-1 [34.5 kB]
Get:124 http://172.17.0.1/private stretch-staging/main armhf libgtk2.0-0 armhf 2.24.31-2 [1505 kB]
Get:125 http://172.17.0.1/private stretch-staging/main armhf gir1.2-gtk-2.0 armhf 2.24.31-2 [212 kB]
Get:126 http://172.17.0.1/private stretch-staging/main armhf libgtk-3-common all 3.22.6-1+rpi1 [3426 kB]
Get:127 http://172.17.0.1/private stretch-staging/main armhf libatk-bridge2.0-0 armhf 2.22.0-1 [47.0 kB]
Get:128 http://172.17.0.1/private stretch-staging/main armhf liblcms2-2 armhf 2.8-4 [118 kB]
Get:129 http://172.17.0.1/private stretch-staging/main armhf libcolord2 armhf 1.3.3-2 [240 kB]
Get:130 http://172.17.0.1/private stretch-staging/main armhf libepoxy0 armhf 1.3.1-2 [157 kB]
Get:131 http://172.17.0.1/private stretch-staging/main armhf libjson-glib-1.0-common all 1.2.2-1 [161 kB]
Get:132 http://172.17.0.1/private stretch-staging/main armhf libjson-glib-1.0-0 armhf 1.2.2-1 [165 kB]
Get:133 http://172.17.0.1/private stretch-staging/main armhf libproxy1v5 armhf 0.4.14-2 [50.2 kB]
Get:134 http://172.17.0.1/private stretch-staging/main armhf glib-networking-common all 2.50.0-1 [49.1 kB]
Get:135 http://172.17.0.1/private stretch-staging/main armhf glib-networking-services armhf 2.50.0-1 [11.6 kB]
Get:136 http://172.17.0.1/private stretch-staging/main armhf gsettings-desktop-schemas all 3.22.0-1 [473 kB]
Get:137 http://172.17.0.1/private stretch-staging/main armhf glib-networking armhf 2.50.0-1 [48.2 kB]
Get:138 http://172.17.0.1/private stretch-staging/main armhf libsoup2.4-1 armhf 2.56.0-2 [248 kB]
Get:139 http://172.17.0.1/private stretch-staging/main armhf libsoup-gnome2.4-1 armhf 2.56.0-2 [16.0 kB]
Get:140 http://172.17.0.1/private stretch-staging/main armhf librest-0.7-0 armhf 0.8.0-2 [27.8 kB]
Get:141 http://172.17.0.1/private stretch-staging/main armhf libgtk-3-0 armhf 3.22.6-1+rpi1 [2071 kB]
Get:142 http://172.17.0.1/private stretch-staging/main armhf gir1.2-gtk-3.0 armhf 3.22.6-1+rpi1 [245 kB]
Get:143 http://172.17.0.1/private stretch-staging/main armhf icu-devtools armhf 57.1-5 [156 kB]
Get:144 http://172.17.0.1/private stretch-staging/main armhf libelf1 armhf 0.168-0.2 [154 kB]
Get:145 http://172.17.0.1/private stretch-staging/main armhf libglib2.0-data all 2.50.3-1 [2518 kB]
Get:146 http://172.17.0.1/private stretch-staging/main armhf libglib2.0-bin armhf 2.50.3-1 [1608 kB]
Get:147 http://172.17.0.1/private stretch-staging/main armhf libpcre16-3 armhf 2:8.39-2.1 [235 kB]
Get:148 http://172.17.0.1/private stretch-staging/main armhf libpcre32-3 armhf 2:8.39-2.1 [227 kB]
Get:149 http://172.17.0.1/private stretch-staging/main armhf libpcre3-dev armhf 2:8.39-2.1 [564 kB]
Get:150 http://172.17.0.1/private stretch-staging/main armhf zlib1g-dev armhf 1:1.2.8.dfsg-5 [198 kB]
Get:151 http://172.17.0.1/private stretch-staging/main armhf libglib2.0-dev armhf 2.50.3-1 [2775 kB]
Get:152 http://172.17.0.1/private stretch-staging/main armhf libdbus-1-dev armhf 1.10.16-1 [199 kB]
Get:153 http://172.17.0.1/private stretch-staging/main armhf x11-common all 1:7.7+18 [251 kB]
Get:154 http://172.17.0.1/private stretch-staging/main armhf libxtst6 armhf 2:1.2.3-1 [26.3 kB]
Get:155 http://172.17.0.1/private stretch-staging/main armhf xorg-sgml-doctools all 1:1.11-1 [21.9 kB]
Get:156 http://172.17.0.1/private stretch-staging/main armhf x11proto-core-dev all 7.0.31-1 [728 kB]
Get:157 http://172.17.0.1/private stretch-staging/main armhf libxau-dev armhf 1:1.0.8-1 [23.0 kB]
Get:158 http://172.17.0.1/private stretch-staging/main armhf libxdmcp-dev armhf 1:1.1.2-3 [40.9 kB]
Get:159 http://172.17.0.1/private stretch-staging/main armhf x11proto-input-dev all 2.3.2-1 [158 kB]
Get:160 http://172.17.0.1/private stretch-staging/main armhf x11proto-kb-dev all 1.0.7-1 [233 kB]
Get:161 http://172.17.0.1/private stretch-staging/main armhf xtrans-dev all 1.3.5-1 [100 kB]
Get:162 http://172.17.0.1/private stretch-staging/main armhf libpthread-stubs0-dev armhf 0.3-4 [4042 B]
Get:163 http://172.17.0.1/private stretch-staging/main armhf libxcb1-dev armhf 1.12-1 [165 kB]
Get:164 http://172.17.0.1/private stretch-staging/main armhf libx11-dev armhf 2:1.6.4-3 [753 kB]
Get:165 http://172.17.0.1/private stretch-staging/main armhf x11proto-xext-dev all 7.3.0-1 [212 kB]
Get:166 http://172.17.0.1/private stretch-staging/main armhf libxext-dev armhf 2:1.3.3-1 [102 kB]
Get:167 http://172.17.0.1/private stretch-staging/main armhf x11proto-fixes-dev all 1:5.0-2 [19.2 kB]
Get:168 http://172.17.0.1/private stretch-staging/main armhf libxfixes-dev armhf 1:5.0.3-1 [22.7 kB]
Get:169 http://172.17.0.1/private stretch-staging/main armhf libxi-dev armhf 2:1.7.9-1 [236 kB]
Get:170 http://172.17.0.1/private stretch-staging/main armhf x11proto-record-dev all 1.14.2-1 [33.9 kB]
Get:171 http://172.17.0.1/private stretch-staging/main armhf libxtst-dev armhf 2:1.2.3-1 [30.5 kB]
Get:172 http://172.17.0.1/private stretch-staging/main armhf libatspi2.0-dev armhf 2.22.0-5 [63.4 kB]
Get:173 http://172.17.0.1/private stretch-staging/main armhf libatk-bridge2.0-dev armhf 2.22.0-1 [7082 B]
Get:174 http://172.17.0.1/private stretch-staging/main armhf libatk1.0-dev armhf 2.22.0-1 [115 kB]
Get:175 http://172.17.0.1/private stretch-staging/main armhf libcairo-script-interpreter2 armhf 1.14.8-1 [363 kB]
Get:176 http://172.17.0.1/private stretch-staging/main armhf libexpat1-dev armhf 2.2.0-2 [116 kB]
Get:177 http://172.17.0.1/private stretch-staging/main armhf libpng-dev armhf 1.6.28-1 [232 kB]
Get:178 http://172.17.0.1/private stretch-staging/main armhf libfreetype6-dev armhf 2.6.3-3+b1 [5757 kB]
Get:179 http://172.17.0.1/private stretch-staging/main armhf libfontconfig1-dev armhf 2.11.0-6.7 [877 kB]
Get:180 http://172.17.0.1/private stretch-staging/main armhf x11proto-render-dev all 2:0.11.1-2 [20.8 kB]
Get:181 http://172.17.0.1/private stretch-staging/main armhf libxrender-dev armhf 1:0.9.10-1 [37.7 kB]
Get:182 http://172.17.0.1/private stretch-staging/main armhf libice6 armhf 2:1.0.9-2 [51.6 kB]
Get:183 http://172.17.0.1/private stretch-staging/main armhf libsm6 armhf 2:1.2.2-1+b1 [31.2 kB]
Get:184 http://172.17.0.1/private stretch-staging/main armhf libice-dev armhf 2:1.0.9-2 [58.8 kB]
Get:185 http://172.17.0.1/private stretch-staging/main armhf libsm-dev armhf 2:1.2.2-1+b1 [33.5 kB]
Get:186 http://172.17.0.1/private stretch-staging/main armhf libpixman-1-dev armhf 0.34.0-1 [472 kB]
Get:187 http://172.17.0.1/private stretch-staging/main armhf libxcb-render0-dev armhf 1.12-1 [108 kB]
Get:188 http://172.17.0.1/private stretch-staging/main armhf libxcb-shm0-dev armhf 1.12-1 [97.1 kB]
Get:189 http://172.17.0.1/private stretch-staging/main armhf libcairo2-dev armhf 1.14.8-1 [811 kB]
Get:190 http://172.17.0.1/private stretch-staging/main armhf libepoxy-dev armhf 1.3.1-2 [113 kB]
Get:191 http://172.17.0.1/private stretch-staging/main armhf libgdk-pixbuf2.0-dev armhf 2.36.5-2 [53.7 kB]
Get:192 http://172.17.0.1/private stretch-staging/main armhf libgmpxx4ldbl armhf 2:6.1.2+dfsg-1 [21.5 kB]
Get:193 http://172.17.0.1/private stretch-staging/main armhf libgmp-dev armhf 2:6.1.2+dfsg-1 [563 kB]
Get:194 http://172.17.0.1/private stretch-staging/main armhf libgpm-dev armhf 1.20.4-6.2 [35.5 kB]
Get:195 http://172.17.0.1/private stretch-staging/main armhf libgraphite2-dev armhf 1.3.9-4 [21.3 kB]
Get:196 http://172.17.0.1/private stretch-staging/main armhf libharfbuzz-icu0 armhf 1.4.2-1 [465 kB]
Get:197 http://172.17.0.1/private stretch-staging/main armhf libharfbuzz-gobject0 armhf 1.4.2-1 [472 kB]
Get:198 http://172.17.0.1/private stretch-staging/main armhf libicu-dev armhf 57.1-5 [15.8 MB]
Get:199 http://172.17.0.1/private stretch-staging/main armhf libharfbuzz-dev armhf 1.4.2-1 [700 kB]
Get:200 http://172.17.0.1/private stretch-staging/main armhf libxft-dev armhf 2.3.2-1 [59.1 kB]
Get:201 http://172.17.0.1/private stretch-staging/main armhf libpango1.0-dev armhf 1.40.3-3 [431 kB]
Get:202 http://172.17.0.1/private stretch-staging/main armhf x11proto-xinerama-dev all 1.2.1-2 [4938 B]
Get:203 http://172.17.0.1/private stretch-staging/main armhf libxinerama-dev armhf 2:1.1.3-1+b1 [18.7 kB]
Get:204 http://172.17.0.1/private stretch-staging/main armhf x11proto-randr-dev all 1.5.0-1 [49.7 kB]
Get:205 http://172.17.0.1/private stretch-staging/main armhf libxrandr-dev armhf 2:1.5.1-1 [42.5 kB]
Get:206 http://172.17.0.1/private stretch-staging/main armhf libxcursor-dev armhf 1:1.1.14-1+b1 [39.5 kB]
Get:207 http://172.17.0.1/private stretch-staging/main armhf x11proto-composite-dev all 1:0.4.2-2 [15.3 kB]
Get:208 http://172.17.0.1/private stretch-staging/main armhf libxcomposite-dev armhf 1:0.4.4-2 [19.8 kB]
Get:209 http://172.17.0.1/private stretch-staging/main armhf x11proto-damage-dev all 1:1.2.1-2 [11.8 kB]
Get:210 http://172.17.0.1/private stretch-staging/main armhf libxdamage-dev armhf 1:1.1.4-2+b1 [13.9 kB]
Get:211 http://172.17.0.1/private stretch-staging/main armhf xkb-data all 2.19-1 [648 kB]
Get:212 http://172.17.0.1/private stretch-staging/main armhf libxkbcommon0 armhf 0.7.1-1 [110 kB]
Get:213 http://172.17.0.1/private stretch-staging/main armhf libxkbcommon-dev armhf 0.7.1-1 [337 kB]
Get:214 http://172.17.0.1/private stretch-staging/main armhf libgtk-3-dev armhf 3.22.6-1+rpi1 [943 kB]
Get:215 http://172.17.0.1/private stretch-staging/main armhf libxml2-utils armhf 2.9.4+dfsg1-2.2 [100 kB]
Get:216 http://172.17.0.1/private stretch-staging/main armhf libgtk2.0-dev armhf 2.24.31-2 [2334 kB]
Get:217 http://172.17.0.1/private stretch-staging/main armhf liblua5.2-0 armhf 5.2.4-1.1 [82.8 kB]
Get:218 http://172.17.0.1/private stretch-staging/main armhf libtinfo-dev armhf 6.0+20161126-1 [65.3 kB]
Get:219 http://172.17.0.1/private stretch-staging/main armhf libreadline-dev armhf 7.0-2 [109 kB]
Get:220 http://172.17.0.1/private stretch-staging/main armhf liblua5.2-dev armhf 5.2.4-1.1 [115 kB]
Get:221 http://172.17.0.1/private stretch-staging/main armhf libperl-dev armhf 5.24.1-1 [2494 kB]
Get:222 http://172.17.0.1/private stretch-staging/main armhf libpython3.5 armhf 3.5.3-1 [1169 kB]
Get:223 http://172.17.0.1/private stretch-staging/main armhf libpython3.5-dev armhf 3.5.3-1 [36.9 MB]
Get:224 http://172.17.0.1/private stretch-staging/main armhf libpython3-dev armhf 3.5.3-1 [18.7 kB]
Get:225 http://172.17.0.1/private stretch-staging/main armhf rubygems-integration all 1.11 [4994 B]
Get:226 http://172.17.0.1/private stretch-staging/main armhf ruby2.3 armhf 2.3.3-1 [186 kB]
Get:227 http://172.17.0.1/private stretch-staging/main armhf ruby armhf 1:2.3.3 [10.8 kB]
Get:228 http://172.17.0.1/private stretch-staging/main armhf rake all 10.5.0-2 [49.4 kB]
Get:229 http://172.17.0.1/private stretch-staging/main armhf ruby-did-you-mean all 1.0.0-2 [11.2 kB]
Get:230 http://172.17.0.1/private stretch-staging/main armhf ruby-minitest all 5.9.0-1 [51.1 kB]
Get:231 http://172.17.0.1/private stretch-staging/main armhf ruby-net-telnet all 0.1.1-2 [12.5 kB]
Get:232 http://172.17.0.1/private stretch-staging/main armhf ruby-power-assert all 0.3.0-1 [7902 B]
Get:233 http://172.17.0.1/private stretch-staging/main armhf ruby-test-unit all 3.1.7-2 [69.6 kB]
Get:234 http://172.17.0.1/private stretch-staging/main armhf libyaml-0-2 armhf 0.1.7-2 [39.9 kB]
Get:235 http://172.17.0.1/private stretch-staging/main armhf libruby2.3 armhf 2.3.3-1 [2864 kB]
Get:236 http://172.17.0.1/private stretch-staging/main armhf libsepol1-dev armhf 2.6-2 [285 kB]
Get:237 http://172.17.0.1/private stretch-staging/main armhf libselinux1-dev armhf 2.6-3 [171 kB]
Get:238 http://172.17.0.1/private stretch-staging/main armhf libtcl8.6 armhf 8.6.6+dfsg-1 [861 kB]
Get:239 http://172.17.0.1/private stretch-staging/main armhf libxt6 armhf 1:1.1.5-1 [155 kB]
Get:240 http://172.17.0.1/private stretch-staging/main armhf libxmu6 armhf 2:1.1.2-2 [52.0 kB]
Get:241 http://172.17.0.1/private stretch-staging/main armhf libxpm4 armhf 1:3.5.12-1 [43.6 kB]
Get:242 http://172.17.0.1/private stretch-staging/main armhf libxaw7 armhf 2:1.0.13-1 [164 kB]
Get:243 http://172.17.0.1/private stretch-staging/main armhf libxt-dev armhf 1:1.1.5-1 [390 kB]
Get:244 http://172.17.0.1/private stretch-staging/main armhf libxmu-headers all 2:1.1.2-2 [51.9 kB]
Get:245 http://172.17.0.1/private stretch-staging/main armhf libxmu-dev armhf 2:1.1.2-2 [56.2 kB]
Get:246 http://172.17.0.1/private stretch-staging/main armhf libxpm-dev armhf 1:3.5.12-1 [98.1 kB]
Get:247 http://172.17.0.1/private stretch-staging/main armhf libxaw7-dev armhf 2:1.0.13-1 [223 kB]
Get:248 http://172.17.0.1/private stretch-staging/main armhf lua5.2 armhf 5.2.4-1.1 [74.4 kB]
Get:249 http://172.17.0.1/private stretch-staging/main armhf python3.5-dev armhf 3.5.3-1 [413 kB]
Get:250 http://172.17.0.1/private stretch-staging/main armhf python3-dev armhf 3.5.3-1 [1158 B]
Get:251 http://172.17.0.1/private stretch-staging/main armhf ruby2.3-dev armhf 2.3.3-1 [1031 kB]
Get:252 http://172.17.0.1/private stretch-staging/main armhf ruby-dev armhf 1:2.3.3 [9576 B]
Get:253 http://172.17.0.1/private stretch-staging/main armhf tcl8.6 armhf 8.6.6+dfsg-1 [123 kB]
Get:254 http://172.17.0.1/private stretch-staging/main armhf tcl armhf 8.6.0+9 [5502 B]
Get:255 http://172.17.0.1/private stretch-staging/main armhf tcl8.6-dev armhf 8.6.6+dfsg-1 [890 kB]
Get:256 http://172.17.0.1/private stretch-staging/main armhf tcl-dev armhf 8.6.0+9 [7986 B]
Get:257 http://172.17.0.1/private stretch-staging/main armhf libattr1-dev armhf 1:2.4.47-2 [38.7 kB]
Get:258 http://172.17.0.1/private stretch-staging/main armhf libacl1-dev armhf 2.2.52-3 [84.1 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 157 MB in 50s (3127 kB/s)
(Reading database ... 13019 files and directories currently installed.)
Preparing to unpack .../libpcre3_2%3a8.39-2.1_armhf.deb ...
Unpacking libpcre3:armhf (2:8.39-2.1) over (2:8.39-2) ...
Setting up libpcre3:armhf (2:8.39-2.1) ...
Selecting previously unselected package groff-base.
(Reading database ... 13019 files and directories currently installed.)
Preparing to unpack .../00-groff-base_1.22.3-9_armhf.deb ...
Unpacking groff-base (1.22.3-9) ...
Selecting previously unselected package libbsd0:armhf.
Preparing to unpack .../01-libbsd0_0.8.3-1_armhf.deb ...
Unpacking libbsd0:armhf (0.8.3-1) ...
Selecting previously unselected package bsdmainutils.
Preparing to unpack .../02-bsdmainutils_9.0.12_armhf.deb ...
Unpacking bsdmainutils (9.0.12) ...
Selecting previously unselected package libpipeline1:armhf.
Preparing to unpack .../03-libpipeline1_1.4.1-2_armhf.deb ...
Unpacking libpipeline1:armhf (1.4.1-2) ...
Selecting previously unselected package man-db.
Preparing to unpack .../04-man-db_2.7.6.1-2_armhf.deb ...
Unpacking man-db (2.7.6.1-2) ...
Selecting previously unselected package libexpat1:armhf.
Preparing to unpack .../05-libexpat1_2.2.0-2_armhf.deb ...
Unpacking libexpat1:armhf (2.2.0-2) ...
Selecting previously unselected package libpng16-16:armhf.
Preparing to unpack .../06-libpng16-16_1.6.28-1_armhf.deb ...
Unpacking libpng16-16:armhf (1.6.28-1) ...
Selecting previously unselected package libfreetype6:armhf.
Preparing to unpack .../07-libfreetype6_2.6.3-3+b1_armhf.deb ...
Unpacking libfreetype6:armhf (2.6.3-3+b1) ...
Selecting previously unselected package ucf.
Preparing to unpack .../08-ucf_3.0036_all.deb ...
Moving old data out of the way
Unpacking ucf (3.0036) ...
Selecting previously unselected package fonts-dejavu-core.
Preparing to unpack .../09-fonts-dejavu-core_2.37-1_all.deb ...
Unpacking fonts-dejavu-core (2.37-1) ...
Selecting previously unselected package fontconfig-config.
Preparing to unpack .../10-fontconfig-config_2.11.0-6.7_all.deb ...
Unpacking fontconfig-config (2.11.0-6.7) ...
Selecting previously unselected package libfontconfig1:armhf.
Preparing to unpack .../11-libfontconfig1_2.11.0-6.7_armhf.deb ...
Unpacking libfontconfig1:armhf (2.11.0-6.7) ...
Selecting previously unselected package fontconfig.
Preparing to unpack .../12-fontconfig_2.11.0-6.7_armhf.deb ...
Unpacking fontconfig (2.11.0-6.7) ...
Selecting previously unselected package libjbig0:armhf.
Preparing to unpack .../13-libjbig0_2.1-3.1_armhf.deb ...
Unpacking libjbig0:armhf (2.1-3.1) ...
Selecting previously unselected package liblzo2-2:armhf.
Preparing to unpack .../14-liblzo2-2_2.08-1.2_armhf.deb ...
Unpacking liblzo2-2:armhf (2.08-1.2) ...
Selecting previously unselected package libpcrecpp0v5:armhf.
Preparing to unpack .../15-libpcrecpp0v5_2%3a8.39-2.1_armhf.deb ...
Unpacking libpcrecpp0v5:armhf (2:8.39-2.1) ...
Selecting previously unselected package libxau6:armhf.
Preparing to unpack .../16-libxau6_1%3a1.0.8-1_armhf.deb ...
Unpacking libxau6:armhf (1:1.0.8-1) ...
Selecting previously unselected package libxdmcp6:armhf.
Preparing to unpack .../17-libxdmcp6_1%3a1.1.2-3_armhf.deb ...
Unpacking libxdmcp6:armhf (1:1.1.2-3) ...
Selecting previously unselected package libxcb1:armhf.
Preparing to unpack .../18-libxcb1_1.12-1_armhf.deb ...
Unpacking libxcb1:armhf (1.12-1) ...
Selecting previously unselected package libx11-data.
Preparing to unpack .../19-libx11-data_2%3a1.6.4-3_all.deb ...
Unpacking libx11-data (2:1.6.4-3) ...
Selecting previously unselected package libx11-6:armhf.
Preparing to unpack .../20-libx11-6_2%3a1.6.4-3_armhf.deb ...
Unpacking libx11-6:armhf (2:1.6.4-3) ...
Selecting previously unselected package libxext6:armhf.
Preparing to unpack .../21-libxext6_2%3a1.3.3-1_armhf.deb ...
Unpacking libxext6:armhf (2:1.3.3-1) ...
Selecting previously unselected package libxrender1:armhf.
Preparing to unpack .../22-libxrender1_1%3a0.9.10-1_armhf.deb ...
Unpacking libxrender1:armhf (1:0.9.10-1) ...
Selecting previously unselected package libxft2:armhf.
Preparing to unpack .../23-libxft2_2.3.2-1_armhf.deb ...
Unpacking libxft2:armhf (2.3.2-1) ...
Selecting previously unselected package libssl1.1:armhf.
Preparing to unpack .../24-libssl1.1_1.1.0e-1_armhf.deb ...
Unpacking libssl1.1:armhf (1.1.0e-1) ...
Selecting previously unselected package libpython3.5-minimal:armhf.
Preparing to unpack .../25-libpython3.5-minimal_3.5.3-1_armhf.deb ...
Unpacking libpython3.5-minimal:armhf (3.5.3-1) ...
Selecting previously unselected package python3.5-minimal.
Preparing to unpack .../26-python3.5-minimal_3.5.3-1_armhf.deb ...
Unpacking python3.5-minimal (3.5.3-1) ...
Selecting previously unselected package python3-minimal.
Preparing to unpack .../27-python3-minimal_3.5.3-1_armhf.deb ...
Unpacking python3-minimal (3.5.3-1) ...
Selecting previously unselected package mime-support.
Preparing to unpack .../28-mime-support_3.60_all.deb ...
Unpacking mime-support (3.60) ...
Selecting previously unselected package libmpdec2:armhf.
Preparing to unpack .../29-libmpdec2_2.4.2-1_armhf.deb ...
Unpacking libmpdec2:armhf (2.4.2-1) ...
Selecting previously unselected package libpython3.5-stdlib:armhf.
Preparing to unpack .../30-libpython3.5-stdlib_3.5.3-1_armhf.deb ...
Unpacking libpython3.5-stdlib:armhf (3.5.3-1) ...
Selecting previously unselected package python3.5.
Preparing to unpack .../31-python3.5_3.5.3-1_armhf.deb ...
Unpacking python3.5 (3.5.3-1) ...
Selecting previously unselected package libpython3-stdlib:armhf.
Preparing to unpack .../32-libpython3-stdlib_3.5.3-1_armhf.deb ...
Unpacking libpython3-stdlib:armhf (3.5.3-1) ...
Selecting previously unselected package dh-python.
Preparing to unpack .../33-dh-python_2.20170125_all.deb ...
Unpacking dh-python (2.20170125) ...
Setting up libssl1.1:armhf (1.1.0e-1) ...
Setting up libpython3.5-minimal:armhf (3.5.3-1) ...
Setting up libexpat1:armhf (2.2.0-2) ...
Setting up python3.5-minimal (3.5.3-1) ...
Setting up python3-minimal (3.5.3-1) ...
Selecting previously unselected package python3.
(Reading database ... 15061 files and directories currently installed.)
Preparing to unpack .../000-python3_3.5.3-1_armhf.deb ...
Unpacking python3 (3.5.3-1) ...
Selecting previously unselected package libreadline6:armhf.
Preparing to unpack .../001-libreadline6_6.3-9_armhf.deb ...
Unpacking libreadline6:armhf (6.3-9) ...
Selecting previously unselected package libssl1.0.2:armhf.
Preparing to unpack .../002-libssl1.0.2_1.0.2k-1_armhf.deb ...
Unpacking libssl1.0.2:armhf (1.0.2k-1) ...
Selecting previously unselected package libmagic-mgc.
Preparing to unpack .../003-libmagic-mgc_1%3a5.29-3_armhf.deb ...
Unpacking libmagic-mgc (1:5.29-3) ...
Selecting previously unselected package libmagic1:armhf.
Preparing to unpack .../004-libmagic1_1%3a5.29-3_armhf.deb ...
Unpacking libmagic1:armhf (1:5.29-3) ...
Selecting previously unselected package file.
Preparing to unpack .../005-file_1%3a5.29-3_armhf.deb ...
Unpacking file (1:5.29-3) ...
Selecting previously unselected package gettext-base.
Preparing to unpack .../006-gettext-base_0.19.8.1-2_armhf.deb ...
Unpacking gettext-base (0.19.8.1-2) ...
Selecting previously unselected package libnettle6:armhf.
Preparing to unpack .../007-libnettle6_3.3-1_armhf.deb ...
Unpacking libnettle6:armhf (3.3-1) ...
Selecting previously unselected package libhogweed4:armhf.
Preparing to unpack .../008-libhogweed4_3.3-1_armhf.deb ...
Unpacking libhogweed4:armhf (3.3-1) ...
Selecting previously unselected package libffi6:armhf.
Preparing to unpack .../009-libffi6_3.2.1-6_armhf.deb ...
Unpacking libffi6:armhf (3.2.1-6) ...
Selecting previously unselected package libp11-kit0:armhf.
Preparing to unpack .../010-libp11-kit0_0.23.3-2_armhf.deb ...
Unpacking libp11-kit0:armhf (0.23.3-2) ...
Selecting previously unselected package libtasn1-6:armhf.
Preparing to unpack .../011-libtasn1-6_4.10-1_armhf.deb ...
Unpacking libtasn1-6:armhf (4.10-1) ...
Selecting previously unselected package libgnutls30:armhf.
Preparing to unpack .../012-libgnutls30_3.5.8-3_armhf.deb ...
Unpacking libgnutls30:armhf (3.5.8-3) ...
Selecting previously unselected package libgpm2:armhf.
Preparing to unpack .../013-libgpm2_1.20.4-6.2_armhf.deb ...
Unpacking libgpm2:armhf (1.20.4-6.2) ...
Selecting previously unselected package libkeyutils1:armhf.
Preparing to unpack .../014-libkeyutils1_1.5.9-9_armhf.deb ...
Unpacking libkeyutils1:armhf (1.5.9-9) ...
Selecting previously unselected package libkrb5support0:armhf.
Preparing to unpack .../015-libkrb5support0_1.15-1_armhf.deb ...
Unpacking libkrb5support0:armhf (1.15-1) ...
Selecting previously unselected package libk5crypto3:armhf.
Preparing to unpack .../016-libk5crypto3_1.15-1_armhf.deb ...
Unpacking libk5crypto3:armhf (1.15-1) ...
Selecting previously unselected package libkrb5-3:armhf.
Preparing to unpack .../017-libkrb5-3_1.15-1_armhf.deb ...
Unpacking libkrb5-3:armhf (1.15-1) ...
Selecting previously unselected package libgssapi-krb5-2:armhf.
Preparing to unpack .../018-libgssapi-krb5-2_1.15-1_armhf.deb ...
Unpacking libgssapi-krb5-2:armhf (1.15-1) ...
Selecting previously unselected package libicu57:armhf.
Preparing to unpack .../019-libicu57_57.1-5_armhf.deb ...
Unpacking libicu57:armhf (57.1-5) ...
Selecting previously unselected package libxml2:armhf.
Preparing to unpack .../020-libxml2_2.9.4+dfsg1-2.2_armhf.deb ...
Unpacking libxml2:armhf (2.9.4+dfsg1-2.2) ...
Selecting previously unselected package hicolor-icon-theme.
Preparing to unpack .../021-hicolor-icon-theme_0.15-1_all.deb ...
Unpacking hicolor-icon-theme (0.15-1) ...
Selecting previously unselected package libglib2.0-0:armhf.
Preparing to unpack .../022-libglib2.0-0_2.50.3-1_armhf.deb ...
Unpacking libglib2.0-0:armhf (2.50.3-1) ...
Selecting previously unselected package libjpeg62-turbo:armhf.
Preparing to unpack .../023-libjpeg62-turbo_1%3a1.5.1-2_armhf.deb ...
Unpacking libjpeg62-turbo:armhf (1:1.5.1-2) ...
Selecting previously unselected package libtiff5:armhf.
Preparing to unpack .../024-libtiff5_4.0.7-5_armhf.deb ...
Unpacking libtiff5:armhf (4.0.7-5) ...
Selecting previously unselected package shared-mime-info.
Preparing to unpack .../025-shared-mime-info_1.8-1_armhf.deb ...
Unpacking shared-mime-info (1.8-1) ...
Selecting previously unselected package libgdk-pixbuf2.0-common.
Preparing to unpack .../026-libgdk-pixbuf2.0-common_2.36.5-2_all.deb ...
Unpacking libgdk-pixbuf2.0-common (2.36.5-2) ...
Selecting previously unselected package libgdk-pixbuf2.0-0:armhf.
Preparing to unpack .../027-libgdk-pixbuf2.0-0_2.36.5-2_armhf.deb ...
Unpacking libgdk-pixbuf2.0-0:armhf (2.36.5-2) ...
Selecting previously unselected package gtk-update-icon-cache.
Preparing to unpack .../028-gtk-update-icon-cache_3.22.6-1+rpi1_armhf.deb ...
No diversion 'diversion of /usr/sbin/update-icon-caches to /usr/sbin/update-icon-caches.gtk2 by libgtk-3-bin', none removed.
No diversion 'diversion of /usr/share/man/man8/update-icon-caches.8.gz to /usr/share/man/man8/update-icon-caches.gtk2.8.gz by libgtk-3-bin', none removed.
Unpacking gtk-update-icon-cache (3.22.6-1+rpi1) ...
Selecting previously unselected package libpixman-1-0:armhf.
Preparing to unpack .../029-libpixman-1-0_0.34.0-1_armhf.deb ...
Unpacking libpixman-1-0:armhf (0.34.0-1) ...
Selecting previously unselected package libxcb-render0:armhf.
Preparing to unpack .../030-libxcb-render0_1.12-1_armhf.deb ...
Unpacking libxcb-render0:armhf (1.12-1) ...
Selecting previously unselected package libxcb-shm0:armhf.
Preparing to unpack .../031-libxcb-shm0_1.12-1_armhf.deb ...
Unpacking libxcb-shm0:armhf (1.12-1) ...
Selecting previously unselected package libcairo2:armhf.
Preparing to unpack .../032-libcairo2_1.14.8-1_armhf.deb ...
Unpacking libcairo2:armhf (1.14.8-1) ...
Selecting previously unselected package libcroco3:armhf.
Preparing to unpack .../033-libcroco3_0.6.11-2_armhf.deb ...
Unpacking libcroco3:armhf (0.6.11-2) ...
Selecting previously unselected package libthai-data.
Preparing to unpack .../034-libthai-data_0.1.26-1_all.deb ...
Unpacking libthai-data (0.1.26-1) ...
Selecting previously unselected package libdatrie1:armhf.
Preparing to unpack .../035-libdatrie1_0.2.10-4_armhf.deb ...
Unpacking libdatrie1:armhf (0.2.10-4) ...
Selecting previously unselected package libthai0:armhf.
Preparing to unpack .../036-libthai0_0.1.26-1_armhf.deb ...
Unpacking libthai0:armhf (0.1.26-1) ...
Selecting previously unselected package libpango-1.0-0:armhf.
Preparing to unpack .../037-libpango-1.0-0_1.40.3-3_armhf.deb ...
Unpacking libpango-1.0-0:armhf (1.40.3-3) ...
Selecting previously unselected package libgraphite2-3:armhf.
Preparing to unpack .../038-libgraphite2-3_1.3.9-4_armhf.deb ...
Unpacking libgraphite2-3:armhf (1.3.9-4) ...
Selecting previously unselected package libharfbuzz0b:armhf.
Preparing to unpack .../039-libharfbuzz0b_1.4.2-1_armhf.deb ...
Unpacking libharfbuzz0b:armhf (1.4.2-1) ...
Selecting previously unselected package libpangoft2-1.0-0:armhf.
Preparing to unpack .../040-libpangoft2-1.0-0_1.40.3-3_armhf.deb ...
Unpacking libpangoft2-1.0-0:armhf (1.40.3-3) ...
Selecting previously unselected package libpangocairo-1.0-0:armhf.
Preparing to unpack .../041-libpangocairo-1.0-0_1.40.3-3_armhf.deb ...
Unpacking libpangocairo-1.0-0:armhf (1.40.3-3) ...
Selecting previously unselected package librsvg2-2:armhf.
Preparing to unpack .../042-librsvg2-2_2.40.16-1_armhf.deb ...
Unpacking librsvg2-2:armhf (2.40.16-1) ...
Selecting previously unselected package librsvg2-common:armhf.
Preparing to unpack .../043-librsvg2-common_2.40.16-1_armhf.deb ...
Unpacking librsvg2-common:armhf (2.40.16-1) ...
Selecting previously unselected package adwaita-icon-theme.
Preparing to unpack .../044-adwaita-icon-theme_3.22.0-1_all.deb ...
Unpacking adwaita-icon-theme (3.22.0-1) ...
Selecting previously unselected package libsigsegv2:armhf.
Preparing to unpack .../045-libsigsegv2_2.10-5_armhf.deb ...
Unpacking libsigsegv2:armhf (2.10-5) ...
Selecting previously unselected package m4.
Preparing to unpack .../046-m4_1.4.18-1_armhf.deb ...
Unpacking m4 (1.4.18-1) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../047-autoconf_2.69-10_all.deb ...
Unpacking autoconf (2.69-10) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../048-autotools-dev_20161112.1_all.deb ...
Unpacking autotools-dev (20161112.1) ...
Selecting previously unselected package automake.
Preparing to unpack .../049-automake_1%3a1.15-6_all.deb ...
Unpacking automake (1:1.15-6) ...
Selecting previously unselected package autopoint.
Preparing to unpack .../050-autopoint_0.19.8.1-2_all.deb ...
Unpacking autopoint (0.19.8.1-2) ...
Selecting previously unselected package openssl.
Preparing to unpack .../051-openssl_1.1.0e-1_armhf.deb ...
Unpacking openssl (1.1.0e-1) ...
Selecting previously unselected package ca-certificates.
Preparing to unpack .../052-ca-certificates_20161130_all.deb ...
Unpacking ca-certificates (20161130) ...
Selecting previously unselected package libdconf1:armhf.
Preparing to unpack .../053-libdconf1_0.26.0-2_armhf.deb ...
Unpacking libdconf1:armhf (0.26.0-2) ...
Selecting previously unselected package dconf-service.
Preparing to unpack .../054-dconf-service_0.26.0-2_armhf.deb ...
Unpacking dconf-service (0.26.0-2) ...
Selecting previously unselected package dconf-gsettings-backend:armhf.
Preparing to unpack .../055-dconf-gsettings-backend_0.26.0-2_armhf.deb ...
Unpacking dconf-gsettings-backend:armhf (0.26.0-2) ...
Selecting previously unselected package libtool.
Preparing to unpack .../056-libtool_2.4.6-2_all.deb ...
Unpacking libtool (2.4.6-2) ...
Selecting previously unselected package dh-autoreconf.
Preparing to unpack .../057-dh-autoreconf_13_all.deb ...
Unpacking dh-autoreconf (13) ...
Selecting previously unselected package libarchive-zip-perl.
Preparing to unpack .../058-libarchive-zip-perl_1.59-1_all.deb ...
Unpacking libarchive-zip-perl (1.59-1) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../059-libfile-stripnondeterminism-perl_0.031-1_all.deb ...
Unpacking libfile-stripnondeterminism-perl (0.031-1) ...
Selecting previously unselected package libtimedate-perl.
Preparing to unpack .../060-libtimedate-perl_2.3000-2_all.deb ...
Unpacking libtimedate-perl (2.3000-2) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../061-dh-strip-nondeterminism_0.031-1_all.deb ...
Unpacking dh-strip-nondeterminism (0.031-1) ...
Selecting previously unselected package libunistring0:armhf.
Preparing to unpack .../062-libunistring0_0.9.6+really0.9.3-0.1_armhf.deb ...
Unpacking libunistring0:armhf (0.9.6+really0.9.3-0.1) ...
Selecting previously unselected package gettext.
Preparing to unpack .../063-gettext_0.19.8.1-2_armhf.deb ...
Unpacking gettext (0.19.8.1-2) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../064-intltool-debian_0.35.0+20060710.4_all.deb ...
Unpacking intltool-debian (0.35.0+20060710.4) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../065-po-debconf_1.0.20_all.deb ...
Unpacking po-debconf (1.0.20) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../066-debhelper_10.2.5_all.deb ...
Unpacking debhelper (10.2.5) ...
Selecting previously unselected package libgirepository-1.0-1:armhf.
Preparing to unpack .../067-libgirepository-1.0-1_1.50.0-1_armhf.deb ...
Unpacking libgirepository-1.0-1:armhf (1.50.0-1) ...
Selecting previously unselected package gir1.2-glib-2.0:armhf.
Preparing to unpack .../068-gir1.2-glib-2.0_1.50.0-1_armhf.deb ...
Unpacking gir1.2-glib-2.0:armhf (1.50.0-1) ...
Selecting previously unselected package libatk1.0-data.
Preparing to unpack .../069-libatk1.0-data_2.22.0-1_all.deb ...
Unpacking libatk1.0-data (2.22.0-1) ...
Selecting previously unselected package libatk1.0-0:armhf.
Preparing to unpack .../070-libatk1.0-0_2.22.0-1_armhf.deb ...
Unpacking libatk1.0-0:armhf (2.22.0-1) ...
Selecting previously unselected package gir1.2-atk-1.0:armhf.
Preparing to unpack .../071-gir1.2-atk-1.0_2.22.0-1_armhf.deb ...
Unpacking gir1.2-atk-1.0:armhf (2.22.0-1) ...
Selecting previously unselected package libatspi2.0-0:armhf.
Preparing to unpack .../072-libatspi2.0-0_2.22.0-5_armhf.deb ...
Unpacking libatspi2.0-0:armhf (2.22.0-5) ...
Selecting previously unselected package gir1.2-atspi-2.0:armhf.
Preparing to unpack .../073-gir1.2-atspi-2.0_2.22.0-5_armhf.deb ...
Unpacking gir1.2-atspi-2.0:armhf (2.22.0-5) ...
Selecting previously unselected package libcairo-gobject2:armhf.
Preparing to unpack .../074-libcairo-gobject2_1.14.8-1_armhf.deb ...
Unpacking libcairo-gobject2:armhf (1.14.8-1) ...
Selecting previously unselected package gir1.2-freedesktop:armhf.
Preparing to unpack .../075-gir1.2-freedesktop_1.50.0-1_armhf.deb ...
Unpacking gir1.2-freedesktop:armhf (1.50.0-1) ...
Selecting previously unselected package gir1.2-gdkpixbuf-2.0:armhf.
Preparing to unpack .../076-gir1.2-gdkpixbuf-2.0_2.36.5-2_armhf.deb ...
Unpacking gir1.2-gdkpixbuf-2.0:armhf (2.36.5-2) ...
Selecting previously unselected package libgtk2.0-common.
Preparing to unpack .../077-libgtk2.0-common_2.24.31-2_all.deb ...
Unpacking libgtk2.0-common (2.24.31-2) ...
Selecting previously unselected package libpangoxft-1.0-0:armhf.
Preparing to unpack .../078-libpangoxft-1.0-0_1.40.3-3_armhf.deb ...
Unpacking libpangoxft-1.0-0:armhf (1.40.3-3) ...
Selecting previously unselected package gir1.2-pango-1.0:armhf.
Preparing to unpack .../079-gir1.2-pango-1.0_1.40.3-3_armhf.deb ...
Unpacking gir1.2-pango-1.0:armhf (1.40.3-3) ...
Selecting previously unselected package libavahi-common-data:armhf.
Preparing to unpack .../080-libavahi-common-data_0.6.32-2_armhf.deb ...
Unpacking libavahi-common-data:armhf (0.6.32-2) ...
Selecting previously unselected package libavahi-common3:armhf.
Preparing to unpack .../081-libavahi-common3_0.6.32-2_armhf.deb ...
Unpacking libavahi-common3:armhf (0.6.32-2) ...
Selecting previously unselected package libavahi-client3:armhf.
Preparing to unpack .../082-libavahi-client3_0.6.32-2_armhf.deb ...
Unpacking libavahi-client3:armhf (0.6.32-2) ...
Selecting previously unselected package libcups2:armhf.
Preparing to unpack .../083-libcups2_2.2.1-8_armhf.deb ...
Unpacking libcups2:armhf (2.2.1-8) ...
Selecting previously unselected package libxcomposite1:armhf.
Preparing to unpack .../084-libxcomposite1_1%3a0.4.4-2_armhf.deb ...
Unpacking libxcomposite1:armhf (1:0.4.4-2) ...
Selecting previously unselected package libxfixes3:armhf.
Preparing to unpack .../085-libxfixes3_1%3a5.0.3-1_armhf.deb ...
Unpacking libxfixes3:armhf (1:5.0.3-1) ...
Selecting previously unselected package libxcursor1:armhf.
Preparing to unpack .../086-libxcursor1_1%3a1.1.14-1+b1_armhf.deb ...
Unpacking libxcursor1:armhf (1:1.1.14-1+b1) ...
Selecting previously unselected package libxdamage1:armhf.
Preparing to unpack .../087-libxdamage1_1%3a1.1.4-2+b1_armhf.deb ...
Unpacking libxdamage1:armhf (1:1.1.4-2+b1) ...
Selecting previously unselected package libxi6:armhf.
Preparing to unpack .../088-libxi6_2%3a1.7.9-1_armhf.deb ...
Unpacking libxi6:armhf (2:1.7.9-1) ...
Selecting previously unselected package libxinerama1:armhf.
Preparing to unpack .../089-libxinerama1_2%3a1.1.3-1+b1_armhf.deb ...
Unpacking libxinerama1:armhf (2:1.1.3-1+b1) ...
Selecting previously unselected package libxrandr2:armhf.
Preparing to unpack .../090-libxrandr2_2%3a1.5.1-1_armhf.deb ...
Unpacking libxrandr2:armhf (2:1.5.1-1) ...
Selecting previously unselected package libgtk2.0-0:armhf.
Preparing to unpack .../091-libgtk2.0-0_2.24.31-2_armhf.deb ...
Unpacking libgtk2.0-0:armhf (2.24.31-2) ...
Selecting previously unselected package gir1.2-gtk-2.0.
Preparing to unpack .../092-gir1.2-gtk-2.0_2.24.31-2_armhf.deb ...
Unpacking gir1.2-gtk-2.0 (2.24.31-2) ...
Selecting previously unselected package libgtk-3-common.
Preparing to unpack .../093-libgtk-3-common_3.22.6-1+rpi1_all.deb ...
Unpacking libgtk-3-common (3.22.6-1+rpi1) ...
Selecting previously unselected package libatk-bridge2.0-0:armhf.
Preparing to unpack .../094-libatk-bridge2.0-0_2.22.0-1_armhf.deb ...
Unpacking libatk-bridge2.0-0:armhf (2.22.0-1) ...
Selecting previously unselected package liblcms2-2:armhf.
Preparing to unpack .../095-liblcms2-2_2.8-4_armhf.deb ...
Unpacking liblcms2-2:armhf (2.8-4) ...
Selecting previously unselected package libcolord2:armhf.
Preparing to unpack .../096-libcolord2_1.3.3-2_armhf.deb ...
Unpacking libcolord2:armhf (1.3.3-2) ...
Selecting previously unselected package libepoxy0:armhf.
Preparing to unpack .../097-libepoxy0_1.3.1-2_armhf.deb ...
Unpacking libepoxy0:armhf (1.3.1-2) ...
Selecting previously unselected package libjson-glib-1.0-common.
Preparing to unpack .../098-libjson-glib-1.0-common_1.2.2-1_all.deb ...
Unpacking libjson-glib-1.0-common (1.2.2-1) ...
Selecting previously unselected package libjson-glib-1.0-0:armhf.
Preparing to unpack .../099-libjson-glib-1.0-0_1.2.2-1_armhf.deb ...
Unpacking libjson-glib-1.0-0:armhf (1.2.2-1) ...
Selecting previously unselected package libproxy1v5:armhf.
Preparing to unpack .../100-libproxy1v5_0.4.14-2_armhf.deb ...
Unpacking libproxy1v5:armhf (0.4.14-2) ...
Selecting previously unselected package glib-networking-common.
Preparing to unpack .../101-glib-networking-common_2.50.0-1_all.deb ...
Unpacking glib-networking-common (2.50.0-1) ...
Selecting previously unselected package glib-networking-services.
Preparing to unpack .../102-glib-networking-services_2.50.0-1_armhf.deb ...
Unpacking glib-networking-services (2.50.0-1) ...
Selecting previously unselected package gsettings-desktop-schemas.
Preparing to unpack .../103-gsettings-desktop-schemas_3.22.0-1_all.deb ...
Unpacking gsettings-desktop-schemas (3.22.0-1) ...
Selecting previously unselected package glib-networking:armhf.
Preparing to unpack .../104-glib-networking_2.50.0-1_armhf.deb ...
Unpacking glib-networking:armhf (2.50.0-1) ...
Selecting previously unselected package libsoup2.4-1:armhf.
Preparing to unpack .../105-libsoup2.4-1_2.56.0-2_armhf.deb ...
Unpacking libsoup2.4-1:armhf (2.56.0-2) ...
Selecting previously unselected package libsoup-gnome2.4-1:armhf.
Preparing to unpack .../106-libsoup-gnome2.4-1_2.56.0-2_armhf.deb ...
Unpacking libsoup-gnome2.4-1:armhf (2.56.0-2) ...
Selecting previously unselected package librest-0.7-0:armhf.
Preparing to unpack .../107-librest-0.7-0_0.8.0-2_armhf.deb ...
Unpacking librest-0.7-0:armhf (0.8.0-2) ...
Selecting previously unselected package libgtk-3-0:armhf.
Preparing to unpack .../108-libgtk-3-0_3.22.6-1+rpi1_armhf.deb ...
Unpacking libgtk-3-0:armhf (3.22.6-1+rpi1) ...
Selecting previously unselected package gir1.2-gtk-3.0:armhf.
Preparing to unpack .../109-gir1.2-gtk-3.0_3.22.6-1+rpi1_armhf.deb ...
Unpacking gir1.2-gtk-3.0:armhf (3.22.6-1+rpi1) ...
Selecting previously unselected package icu-devtools.
Preparing to unpack .../110-icu-devtools_57.1-5_armhf.deb ...
Unpacking icu-devtools (57.1-5) ...
Selecting previously unselected package libelf1:armhf.
Preparing to unpack .../111-libelf1_0.168-0.2_armhf.deb ...
Unpacking libelf1:armhf (0.168-0.2) ...
Selecting previously unselected package libglib2.0-data.
Preparing to unpack .../112-libglib2.0-data_2.50.3-1_all.deb ...
Unpacking libglib2.0-data (2.50.3-1) ...
Selecting previously unselected package libglib2.0-bin.
Preparing to unpack .../113-libglib2.0-bin_2.50.3-1_armhf.deb ...
Unpacking libglib2.0-bin (2.50.3-1) ...
Selecting previously unselected package libpcre16-3:armhf.
Preparing to unpack .../114-libpcre16-3_2%3a8.39-2.1_armhf.deb ...
Unpacking libpcre16-3:armhf (2:8.39-2.1) ...
Selecting previously unselected package libpcre32-3:armhf.
Preparing to unpack .../115-libpcre32-3_2%3a8.39-2.1_armhf.deb ...
Unpacking libpcre32-3:armhf (2:8.39-2.1) ...
Selecting previously unselected package libpcre3-dev:armhf.
Preparing to unpack .../116-libpcre3-dev_2%3a8.39-2.1_armhf.deb ...
Unpacking libpcre3-dev:armhf (2:8.39-2.1) ...
Selecting previously unselected package pkg-config.
Preparing to unpack .../117-pkg-config_0.29-4_armhf.deb ...
Unpacking pkg-config (0.29-4) ...
Selecting previously unselected package zlib1g-dev:armhf.
Preparing to unpack .../118-zlib1g-dev_1%3a1.2.8.dfsg-5_armhf.deb ...
Unpacking zlib1g-dev:armhf (1:1.2.8.dfsg-5) ...
Selecting previously unselected package libglib2.0-dev.
Preparing to unpack .../119-libglib2.0-dev_2.50.3-1_armhf.deb ...
Unpacking libglib2.0-dev (2.50.3-1) ...
Selecting previously unselected package libdbus-1-dev:armhf.
Preparing to unpack .../120-libdbus-1-dev_1.10.16-1_armhf.deb ...
Unpacking libdbus-1-dev:armhf (1.10.16-1) ...
Selecting previously unselected package x11-common.
Preparing to unpack .../121-x11-common_1%3a7.7+18_all.deb ...
Unpacking x11-common (1:7.7+18) ...
Selecting previously unselected package libxtst6:armhf.
Preparing to unpack .../122-libxtst6_2%3a1.2.3-1_armhf.deb ...
Unpacking libxtst6:armhf (2:1.2.3-1) ...
Selecting previously unselected package xorg-sgml-doctools.
Preparing to unpack .../123-xorg-sgml-doctools_1%3a1.11-1_all.deb ...
Unpacking xorg-sgml-doctools (1:1.11-1) ...
Selecting previously unselected package x11proto-core-dev.
Preparing to unpack .../124-x11proto-core-dev_7.0.31-1_all.deb ...
Unpacking x11proto-core-dev (7.0.31-1) ...
Selecting previously unselected package libxau-dev:armhf.
Preparing to unpack .../125-libxau-dev_1%3a1.0.8-1_armhf.deb ...
Unpacking libxau-dev:armhf (1:1.0.8-1) ...
Selecting previously unselected package libxdmcp-dev:armhf.
Preparing to unpack .../126-libxdmcp-dev_1%3a1.1.2-3_armhf.deb ...
Unpacking libxdmcp-dev:armhf (1:1.1.2-3) ...
Selecting previously unselected package x11proto-input-dev.
Preparing to unpack .../127-x11proto-input-dev_2.3.2-1_all.deb ...
Unpacking x11proto-input-dev (2.3.2-1) ...
Selecting previously unselected package x11proto-kb-dev.
Preparing to unpack .../128-x11proto-kb-dev_1.0.7-1_all.deb ...
Unpacking x11proto-kb-dev (1.0.7-1) ...
Selecting previously unselected package xtrans-dev.
Preparing to unpack .../129-xtrans-dev_1.3.5-1_all.deb ...
Unpacking xtrans-dev (1.3.5-1) ...
Selecting previously unselected package libpthread-stubs0-dev:armhf.
Preparing to unpack .../130-libpthread-stubs0-dev_0.3-4_armhf.deb ...
Unpacking libpthread-stubs0-dev:armhf (0.3-4) ...
Selecting previously unselected package libxcb1-dev:armhf.
Preparing to unpack .../131-libxcb1-dev_1.12-1_armhf.deb ...
Unpacking libxcb1-dev:armhf (1.12-1) ...
Selecting previously unselected package libx11-dev:armhf.
Preparing to unpack .../132-libx11-dev_2%3a1.6.4-3_armhf.deb ...
Unpacking libx11-dev:armhf (2:1.6.4-3) ...
Selecting previously unselected package x11proto-xext-dev.
Preparing to unpack .../133-x11proto-xext-dev_7.3.0-1_all.deb ...
Unpacking x11proto-xext-dev (7.3.0-1) ...
Selecting previously unselected package libxext-dev:armhf.
Preparing to unpack .../134-libxext-dev_2%3a1.3.3-1_armhf.deb ...
Unpacking libxext-dev:armhf (2:1.3.3-1) ...
Selecting previously unselected package x11proto-fixes-dev.
Preparing to unpack .../135-x11proto-fixes-dev_1%3a5.0-2_all.deb ...
Unpacking x11proto-fixes-dev (1:5.0-2) ...
Selecting previously unselected package libxfixes-dev:armhf.
Preparing to unpack .../136-libxfixes-dev_1%3a5.0.3-1_armhf.deb ...
Unpacking libxfixes-dev:armhf (1:5.0.3-1) ...
Selecting previously unselected package libxi-dev:armhf.
Preparing to unpack .../137-libxi-dev_2%3a1.7.9-1_armhf.deb ...
Unpacking libxi-dev:armhf (2:1.7.9-1) ...
Selecting previously unselected package x11proto-record-dev.
Preparing to unpack .../138-x11proto-record-dev_1.14.2-1_all.deb ...
Unpacking x11proto-record-dev (1.14.2-1) ...
Selecting previously unselected package libxtst-dev:armhf.
Preparing to unpack .../139-libxtst-dev_2%3a1.2.3-1_armhf.deb ...
Unpacking libxtst-dev:armhf (2:1.2.3-1) ...
Selecting previously unselected package libatspi2.0-dev:armhf.
Preparing to unpack .../140-libatspi2.0-dev_2.22.0-5_armhf.deb ...
Unpacking libatspi2.0-dev:armhf (2.22.0-5) ...
Selecting previously unselected package libatk-bridge2.0-dev:armhf.
Preparing to unpack .../141-libatk-bridge2.0-dev_2.22.0-1_armhf.deb ...
Unpacking libatk-bridge2.0-dev:armhf (2.22.0-1) ...
Selecting previously unselected package libatk1.0-dev:armhf.
Preparing to unpack .../142-libatk1.0-dev_2.22.0-1_armhf.deb ...
Unpacking libatk1.0-dev:armhf (2.22.0-1) ...
Selecting previously unselected package libcairo-script-interpreter2:armhf.
Preparing to unpack .../143-libcairo-script-interpreter2_1.14.8-1_armhf.deb ...
Unpacking libcairo-script-interpreter2:armhf (1.14.8-1) ...
Selecting previously unselected package libexpat1-dev:armhf.
Preparing to unpack .../144-libexpat1-dev_2.2.0-2_armhf.deb ...
Unpacking libexpat1-dev:armhf (2.2.0-2) ...
Selecting previously unselected package libpng-dev:armhf.
Preparing to unpack .../145-libpng-dev_1.6.28-1_armhf.deb ...
Unpacking libpng-dev:armhf (1.6.28-1) ...
Selecting previously unselected package libfreetype6-dev.
Preparing to unpack .../146-libfreetype6-dev_2.6.3-3+b1_armhf.deb ...
Unpacking libfreetype6-dev (2.6.3-3+b1) ...
Selecting previously unselected package libfontconfig1-dev:armhf.
Preparing to unpack .../147-libfontconfig1-dev_2.11.0-6.7_armhf.deb ...
Unpacking libfontconfig1-dev:armhf (2.11.0-6.7) ...
Selecting previously unselected package x11proto-render-dev.
Preparing to unpack .../148-x11proto-render-dev_2%3a0.11.1-2_all.deb ...
Unpacking x11proto-render-dev (2:0.11.1-2) ...
Selecting previously unselected package libxrender-dev:armhf.
Preparing to unpack .../149-libxrender-dev_1%3a0.9.10-1_armhf.deb ...
Unpacking libxrender-dev:armhf (1:0.9.10-1) ...
Selecting previously unselected package libice6:armhf.
Preparing to unpack .../150-libice6_2%3a1.0.9-2_armhf.deb ...
Unpacking libice6:armhf (2:1.0.9-2) ...
Selecting previously unselected package libsm6:armhf.
Preparing to unpack .../151-libsm6_2%3a1.2.2-1+b1_armhf.deb ...
Unpacking libsm6:armhf (2:1.2.2-1+b1) ...
Selecting previously unselected package libice-dev:armhf.
Preparing to unpack .../152-libice-dev_2%3a1.0.9-2_armhf.deb ...
Unpacking libice-dev:armhf (2:1.0.9-2) ...
Selecting previously unselected package libsm-dev:armhf.
Preparing to unpack .../153-libsm-dev_2%3a1.2.2-1+b1_armhf.deb ...
Unpacking libsm-dev:armhf (2:1.2.2-1+b1) ...
Selecting previously unselected package libpixman-1-dev.
Preparing to unpack .../154-libpixman-1-dev_0.34.0-1_armhf.deb ...
Unpacking libpixman-1-dev (0.34.0-1) ...
Selecting previously unselected package libxcb-render0-dev:armhf.
Preparing to unpack .../155-libxcb-render0-dev_1.12-1_armhf.deb ...
Unpacking libxcb-render0-dev:armhf (1.12-1) ...
Selecting previously unselected package libxcb-shm0-dev:armhf.
Preparing to unpack .../156-libxcb-shm0-dev_1.12-1_armhf.deb ...
Unpacking libxcb-shm0-dev:armhf (1.12-1) ...
Selecting previously unselected package libcairo2-dev.
Preparing to unpack .../157-libcairo2-dev_1.14.8-1_armhf.deb ...
Unpacking libcairo2-dev (1.14.8-1) ...
Selecting previously unselected package libepoxy-dev:armhf.
Preparing to unpack .../158-libepoxy-dev_1.3.1-2_armhf.deb ...
Unpacking libepoxy-dev:armhf (1.3.1-2) ...
Selecting previously unselected package libgdk-pixbuf2.0-dev.
Preparing to unpack .../159-libgdk-pixbuf2.0-dev_2.36.5-2_armhf.deb ...
Unpacking libgdk-pixbuf2.0-dev (2.36.5-2) ...
Selecting previously unselected package libgmpxx4ldbl:armhf.
Preparing to unpack .../160-libgmpxx4ldbl_2%3a6.1.2+dfsg-1_armhf.deb ...
Unpacking libgmpxx4ldbl:armhf (2:6.1.2+dfsg-1) ...
Selecting previously unselected package libgmp-dev:armhf.
Preparing to unpack .../161-libgmp-dev_2%3a6.1.2+dfsg-1_armhf.deb ...
Unpacking libgmp-dev:armhf (2:6.1.2+dfsg-1) ...
Selecting previously unselected package libgpm-dev:armhf.
Preparing to unpack .../162-libgpm-dev_1.20.4-6.2_armhf.deb ...
Unpacking libgpm-dev:armhf (1.20.4-6.2) ...
Selecting previously unselected package libgraphite2-dev.
Preparing to unpack .../163-libgraphite2-dev_1.3.9-4_armhf.deb ...
Unpacking libgraphite2-dev (1.3.9-4) ...
Selecting previously unselected package libharfbuzz-icu0:armhf.
Preparing to unpack .../164-libharfbuzz-icu0_1.4.2-1_armhf.deb ...
Unpacking libharfbuzz-icu0:armhf (1.4.2-1) ...
Selecting previously unselected package libharfbuzz-gobject0:armhf.
Preparing to unpack .../165-libharfbuzz-gobject0_1.4.2-1_armhf.deb ...
Unpacking libharfbuzz-gobject0:armhf (1.4.2-1) ...
Selecting previously unselected package libicu-dev.
Preparing to unpack .../166-libicu-dev_57.1-5_armhf.deb ...
Unpacking libicu-dev (57.1-5) ...
Selecting previously unselected package libharfbuzz-dev:armhf.
Preparing to unpack .../167-libharfbuzz-dev_1.4.2-1_armhf.deb ...
Unpacking libharfbuzz-dev:armhf (1.4.2-1) ...
Selecting previously unselected package libxft-dev.
Preparing to unpack .../168-libxft-dev_2.3.2-1_armhf.deb ...
Unpacking libxft-dev (2.3.2-1) ...
Selecting previously unselected package libpango1.0-dev.
Preparing to unpack .../169-libpango1.0-dev_1.40.3-3_armhf.deb ...
Unpacking libpango1.0-dev (1.40.3-3) ...
Selecting previously unselected package x11proto-xinerama-dev.
Preparing to unpack .../170-x11proto-xinerama-dev_1.2.1-2_all.deb ...
Unpacking x11proto-xinerama-dev (1.2.1-2) ...
Selecting previously unselected package libxinerama-dev:armhf.
Preparing to unpack .../171-libxinerama-dev_2%3a1.1.3-1+b1_armhf.deb ...
Unpacking libxinerama-dev:armhf (2:1.1.3-1+b1) ...
Selecting previously unselected package x11proto-randr-dev.
Preparing to unpack .../172-x11proto-randr-dev_1.5.0-1_all.deb ...
Unpacking x11proto-randr-dev (1.5.0-1) ...
Selecting previously unselected package libxrandr-dev:armhf.
Preparing to unpack .../173-libxrandr-dev_2%3a1.5.1-1_armhf.deb ...
Unpacking libxrandr-dev:armhf (2:1.5.1-1) ...
Selecting previously unselected package libxcursor-dev:armhf.
Preparing to unpack .../174-libxcursor-dev_1%3a1.1.14-1+b1_armhf.deb ...
Unpacking libxcursor-dev:armhf (1:1.1.14-1+b1) ...
Selecting previously unselected package x11proto-composite-dev.
Preparing to unpack .../175-x11proto-composite-dev_1%3a0.4.2-2_all.deb ...
Unpacking x11proto-composite-dev (1:0.4.2-2) ...
Selecting previously unselected package libxcomposite-dev:armhf.
Preparing to unpack .../176-libxcomposite-dev_1%3a0.4.4-2_armhf.deb ...
Unpacking libxcomposite-dev:armhf (1:0.4.4-2) ...
Selecting previously unselected package x11proto-damage-dev.
Preparing to unpack .../177-x11proto-damage-dev_1%3a1.2.1-2_all.deb ...
Unpacking x11proto-damage-dev (1:1.2.1-2) ...
Selecting previously unselected package libxdamage-dev:armhf.
Preparing to unpack .../178-libxdamage-dev_1%3a1.1.4-2+b1_armhf.deb ...
Unpacking libxdamage-dev:armhf (1:1.1.4-2+b1) ...
Selecting previously unselected package xkb-data.
Preparing to unpack .../179-xkb-data_2.19-1_all.deb ...
Unpacking xkb-data (2.19-1) ...
Selecting previously unselected package libxkbcommon0:armhf.
Preparing to unpack .../180-libxkbcommon0_0.7.1-1_armhf.deb ...
Unpacking libxkbcommon0:armhf (0.7.1-1) ...
Selecting previously unselected package libxkbcommon-dev.
Preparing to unpack .../181-libxkbcommon-dev_0.7.1-1_armhf.deb ...
Unpacking libxkbcommon-dev (0.7.1-1) ...
Selecting previously unselected package libgtk-3-dev:armhf.
Preparing to unpack .../182-libgtk-3-dev_3.22.6-1+rpi1_armhf.deb ...
Unpacking libgtk-3-dev:armhf (3.22.6-1+rpi1) ...
Selecting previously unselected package libxml2-utils.
Preparing to unpack .../183-libxml2-utils_2.9.4+dfsg1-2.2_armhf.deb ...
Unpacking libxml2-utils (2.9.4+dfsg1-2.2) ...
Selecting previously unselected package libgtk2.0-dev.
Preparing to unpack .../184-libgtk2.0-dev_2.24.31-2_armhf.deb ...
Unpacking libgtk2.0-dev (2.24.31-2) ...
Selecting previously unselected package liblua5.2-0:armhf.
Preparing to unpack .../185-liblua5.2-0_5.2.4-1.1_armhf.deb ...
Unpacking liblua5.2-0:armhf (5.2.4-1.1) ...
Selecting previously unselected package libtinfo-dev:armhf.
Preparing to unpack .../186-libtinfo-dev_6.0+20161126-1_armhf.deb ...
Unpacking libtinfo-dev:armhf (6.0+20161126-1) ...
Selecting previously unselected package libreadline-dev:armhf.
Preparing to unpack .../187-libreadline-dev_7.0-2_armhf.deb ...
Unpacking libreadline-dev:armhf (7.0-2) ...
Selecting previously unselected package liblua5.2-dev:armhf.
Preparing to unpack .../188-liblua5.2-dev_5.2.4-1.1_armhf.deb ...
Unpacking liblua5.2-dev:armhf (5.2.4-1.1) ...
Selecting previously unselected package libperl-dev.
Preparing to unpack .../189-libperl-dev_5.24.1-1_armhf.deb ...
Unpacking libperl-dev (5.24.1-1) ...
Selecting previously unselected package libpython3.5:armhf.
Preparing to unpack .../190-libpython3.5_3.5.3-1_armhf.deb ...
Unpacking libpython3.5:armhf (3.5.3-1) ...
Selecting previously unselected package libpython3.5-dev:armhf.
Preparing to unpack .../191-libpython3.5-dev_3.5.3-1_armhf.deb ...
Unpacking libpython3.5-dev:armhf (3.5.3-1) ...
Selecting previously unselected package libpython3-dev:armhf.
Preparing to unpack .../192-libpython3-dev_3.5.3-1_armhf.deb ...
Unpacking libpython3-dev:armhf (3.5.3-1) ...
Selecting previously unselected package rubygems-integration.
Preparing to unpack .../193-rubygems-integration_1.11_all.deb ...
Unpacking rubygems-integration (1.11) ...
Selecting previously unselected package ruby2.3.
Preparing to unpack .../194-ruby2.3_2.3.3-1_armhf.deb ...
Unpacking ruby2.3 (2.3.3-1) ...
Selecting previously unselected package ruby.
Preparing to unpack .../195-ruby_1%3a2.3.3_armhf.deb ...
Unpacking ruby (1:2.3.3) ...
Selecting previously unselected package rake.
Preparing to unpack .../196-rake_10.5.0-2_all.deb ...
Unpacking rake (10.5.0-2) ...
Selecting previously unselected package ruby-did-you-mean.
Preparing to unpack .../197-ruby-did-you-mean_1.0.0-2_all.deb ...
Unpacking ruby-did-you-mean (1.0.0-2) ...
Selecting previously unselected package ruby-minitest.
Preparing to unpack .../198-ruby-minitest_5.9.0-1_all.deb ...
Unpacking ruby-minitest (5.9.0-1) ...
Selecting previously unselected package ruby-net-telnet.
Preparing to unpack .../199-ruby-net-telnet_0.1.1-2_all.deb ...
Unpacking ruby-net-telnet (0.1.1-2) ...
Selecting previously unselected package ruby-power-assert.
Preparing to unpack .../200-ruby-power-assert_0.3.0-1_all.deb ...
Unpacking ruby-power-assert (0.3.0-1) ...
Selecting previously unselected package ruby-test-unit.
Preparing to unpack .../201-ruby-test-unit_3.1.7-2_all.deb ...
Unpacking ruby-test-unit (3.1.7-2) ...
Selecting previously unselected package libyaml-0-2:armhf.
Preparing to unpack .../202-libyaml-0-2_0.1.7-2_armhf.deb ...
Unpacking libyaml-0-2:armhf (0.1.7-2) ...
Selecting previously unselected package libruby2.3:armhf.
Preparing to unpack .../203-libruby2.3_2.3.3-1_armhf.deb ...
Unpacking libruby2.3:armhf (2.3.3-1) ...
Selecting previously unselected package libsepol1-dev:armhf.
Preparing to unpack .../204-libsepol1-dev_2.6-2_armhf.deb ...
Unpacking libsepol1-dev:armhf (2.6-2) ...
Selecting previously unselected package libselinux1-dev:armhf.
Preparing to unpack .../205-libselinux1-dev_2.6-3_armhf.deb ...
Unpacking libselinux1-dev:armhf (2.6-3) ...
Selecting previously unselected package libtcl8.6:armhf.
Preparing to unpack .../206-libtcl8.6_8.6.6+dfsg-1_armhf.deb ...
Unpacking libtcl8.6:armhf (8.6.6+dfsg-1) ...
Selecting previously unselected package libxt6:armhf.
Preparing to unpack .../207-libxt6_1%3a1.1.5-1_armhf.deb ...
Unpacking libxt6:armhf (1:1.1.5-1) ...
Selecting previously unselected package libxmu6:armhf.
Preparing to unpack .../208-libxmu6_2%3a1.1.2-2_armhf.deb ...
Unpacking libxmu6:armhf (2:1.1.2-2) ...
Selecting previously unselected package libxpm4:armhf.
Preparing to unpack .../209-libxpm4_1%3a3.5.12-1_armhf.deb ...
Unpacking libxpm4:armhf (1:3.5.12-1) ...
Selecting previously unselected package libxaw7:armhf.
Preparing to unpack .../210-libxaw7_2%3a1.0.13-1_armhf.deb ...
Unpacking libxaw7:armhf (2:1.0.13-1) ...
Selecting previously unselected package libxt-dev:armhf.
Preparing to unpack .../211-libxt-dev_1%3a1.1.5-1_armhf.deb ...
Unpacking libxt-dev:armhf (1:1.1.5-1) ...
Selecting previously unselected package libxmu-headers.
Preparing to unpack .../212-libxmu-headers_2%3a1.1.2-2_all.deb ...
Unpacking libxmu-headers (2:1.1.2-2) ...
Selecting previously unselected package libxmu-dev:armhf.
Preparing to unpack .../213-libxmu-dev_2%3a1.1.2-2_armhf.deb ...
Unpacking libxmu-dev:armhf (2:1.1.2-2) ...
Selecting previously unselected package libxpm-dev:armhf.
Preparing to unpack .../214-libxpm-dev_1%3a3.5.12-1_armhf.deb ...
Unpacking libxpm-dev:armhf (1:3.5.12-1) ...
Selecting previously unselected package libxaw7-dev:armhf.
Preparing to unpack .../215-libxaw7-dev_2%3a1.0.13-1_armhf.deb ...
Unpacking libxaw7-dev:armhf (2:1.0.13-1) ...
Selecting previously unselected package lua5.2.
Preparing to unpack .../216-lua5.2_5.2.4-1.1_armhf.deb ...
Unpacking lua5.2 (5.2.4-1.1) ...
Selecting previously unselected package python3.5-dev.
Preparing to unpack .../217-python3.5-dev_3.5.3-1_armhf.deb ...
Unpacking python3.5-dev (3.5.3-1) ...
Selecting previously unselected package python3-dev.
Preparing to unpack .../218-python3-dev_3.5.3-1_armhf.deb ...
Unpacking python3-dev (3.5.3-1) ...
Selecting previously unselected package ruby2.3-dev:armhf.
Preparing to unpack .../219-ruby2.3-dev_2.3.3-1_armhf.deb ...
Unpacking ruby2.3-dev:armhf (2.3.3-1) ...
Selecting previously unselected package ruby-dev:armhf.
Preparing to unpack .../220-ruby-dev_1%3a2.3.3_armhf.deb ...
Unpacking ruby-dev:armhf (1:2.3.3) ...
Selecting previously unselected package tcl8.6.
Preparing to unpack .../221-tcl8.6_8.6.6+dfsg-1_armhf.deb ...
Unpacking tcl8.6 (8.6.6+dfsg-1) ...
Selecting previously unselected package tcl.
Preparing to unpack .../222-tcl_8.6.0+9_armhf.deb ...
Unpacking tcl (8.6.0+9) ...
Selecting previously unselected package tcl8.6-dev:armhf.
Preparing to unpack .../223-tcl8.6-dev_8.6.6+dfsg-1_armhf.deb ...
Unpacking tcl8.6-dev:armhf (8.6.6+dfsg-1) ...
Selecting previously unselected package tcl-dev:armhf.
Preparing to unpack .../224-tcl-dev_8.6.0+9_armhf.deb ...
Unpacking tcl-dev:armhf (8.6.0+9) ...
Selecting previously unselected package libattr1-dev:armhf.
Preparing to unpack .../225-libattr1-dev_1%3a2.4.47-2_armhf.deb ...
Unpacking libattr1-dev:armhf (1:2.4.47-2) ...
Selecting previously unselected package libacl1-dev.
Preparing to unpack .../226-libacl1-dev_2.2.52-3_armhf.deb ...
Unpacking libacl1-dev (2.2.52-3) ...
Selecting previously unselected package sbuild-build-depends-vim-dummy.
Preparing to unpack .../227-sbuild-build-depends-vim-dummy_0.invalid.0_armhf.deb ...
Unpacking sbuild-build-depends-vim-dummy (0.invalid.0) ...
Setting up libsepol1-dev:armhf (2.6-2) ...
Setting up libnettle6:armhf (3.3-1) ...
Setting up libjson-glib-1.0-common (1.2.2-1) ...
Setting up libgtk2.0-common (2.24.31-2) ...
Setting up libperl-dev (5.24.1-1) ...
Setting up glib-networking-common (2.50.0-1) ...
Setting up libjpeg62-turbo:armhf (1:1.5.1-2) ...
Setting up libarchive-zip-perl (1.59-1) ...
Setting up mime-support (3.60) ...
Setting up libpng16-16:armhf (1.6.28-1) ...
Setting up libtimedate-perl (2.3000-2) ...
Setting up liblcms2-2:armhf (2.8-4) ...
Setting up libjbig0:armhf (2.1-3.1) ...
Setting up libsigsegv2:armhf (2.10-5) ...
Setting up libgpm2:armhf (1.20.4-6.2) ...
Setting up libpthread-stubs0-dev:armhf (0.3-4) ...
Setting up fonts-dejavu-core (2.37-1) ...
Setting up libattr1-dev:armhf (1:2.4.47-2) ...
Setting up libelf1:armhf (0.168-0.2) ...
Setting up groff-base (1.22.3-9) ...
Setting up xorg-sgml-doctools (1:1.11-1) ...
Setting up libacl1-dev (2.2.52-3) ...
Setting up xkb-data (2.19-1) ...
Setting up libproxy1v5:armhf (0.4.14-2) ...
Setting up libtinfo-dev:armhf (6.0+20161126-1) ...
Setting up libgdk-pixbuf2.0-common (2.36.5-2) ...
Setting up libdatrie1:armhf (0.2.10-4) ...
Setting up libtiff5:armhf (4.0.7-5) ...
Setting up gettext-base (0.19.8.1-2) ...
Setting up libpipeline1:armhf (1.4.1-2) ...
Setting up x11proto-kb-dev (1.0.7-1) ...
Setting up m4 (1.4.18-1) ...
Setting up x11proto-record-dev (1.14.2-1) ...
Setting up libicu57:armhf (57.1-5) ...
Setting up libbsd0:armhf (0.8.3-1) ...
Setting up ucf (3.0036) ...
Setting up libxml2:armhf (2.9.4+dfsg1-2.2) ...
Setting up libfreetype6:armhf (2.6.3-3+b1) ...
Setting up libtasn1-6:armhf (4.10-1) ...
Setting up libmagic-mgc (1:5.29-3) ...
Setting up libmagic1:armhf (1:5.29-3) ...
Setting up libhogweed4:armhf (3.3-1) ...
Setting up libgraphite2-3:armhf (1.3.9-4) ...
Setting up libssl1.0.2:armhf (1.0.2k-1) ...
Setting up libatk1.0-data (2.22.0-1) ...
Setting up ruby-did-you-mean (1.0.0-2) ...
Setting up libyaml-0-2:armhf (0.1.7-2) ...
Setting up libpixman-1-0:armhf (0.34.0-1) ...
Setting up xtrans-dev (1.3.5-1) ...
Setting up libglib2.0-data (2.50.3-1) ...
Processing triggers for libc-bin (2.24-9) ...
Setting up libepoxy0:armhf (1.3.1-2) ...
Setting up x11proto-xinerama-dev (1.2.1-2) ...
Setting up autotools-dev (20161112.1) ...
Setting up libunistring0:armhf (0.9.6+really0.9.3-0.1) ...
Setting up libpixman-1-dev (0.34.0-1) ...
Setting up x11proto-randr-dev (1.5.0-1) ...
Processing triggers for systemd (232-18) ...
Setting up openssl (1.1.0e-1) ...
Setting up ruby-net-telnet (0.1.1-2) ...
Setting up libreadline-dev:armhf (7.0-2) ...
Setting up libexpat1-dev:armhf (2.2.0-2) ...
Setting up libxkbcommon0:armhf (0.7.1-1) ...
Setting up libpcrecpp0v5:armhf (2:8.39-2.1) ...
Setting up libpcre32-3:armhf (2:8.39-2.1) ...
Setting up libffi6:armhf (3.2.1-6) ...
Setting up icu-devtools (57.1-5) ...
Setting up liblua5.2-0:armhf (5.2.4-1.1) ...
Setting up libpcre16-3:armhf (2:8.39-2.1) ...
Setting up libtcl8.6:armhf (8.6.6+dfsg-1) ...
Setting up libthai-data (0.1.26-1) ...
Setting up libxdmcp6:armhf (1:1.1.2-3) ...
Setting up libkeyutils1:armhf (1.5.9-9) ...
Setting up bsdmainutils (9.0.12) ...
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 libgmpxx4ldbl:armhf (2:6.1.2+dfsg-1) ...
Setting up ruby-minitest (5.9.0-1) ...
Setting up x11-common (1:7.7+18) ...
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Running in chroot, ignoring request.
All runlevel operations denied by policy
invoke-rc.d: policy-rc.d denied execution of start.
Setting up ca-certificates (20161130) ...
Updating certificates in /etc/ssl/certs...
173 added, 0 removed; done.
Setting up hicolor-icon-theme (0.15-1) ...
Setting up libgraphite2-dev (1.3.9-4) ...
Setting up libx11-data (2:1.6.4-3) ...
Setting up libxau6:armhf (1:1.0.8-1) ...
Setting up autopoint (0.19.8.1-2) ...
Setting up libmpdec2:armhf (2.4.2-1) ...
Setting up libreadline6:armhf (6.3-9) ...
Setting up liblzo2-2:armhf (2.08-1.2) ...
Setting up ruby-power-assert (0.3.0-1) ...
Setting up libavahi-common-data:armhf (0.6.32-2) ...
Setting up libepoxy-dev:armhf (1.3.1-2) ...
Setting up zlib1g-dev:armhf (1:1.2.8.dfsg-5) ...
Setting up libfile-stripnondeterminism-perl (0.031-1) ...
Setting up libgmp-dev:armhf (2:6.1.2+dfsg-1) ...
Setting up libpcre3-dev:armhf (2:8.39-2.1) ...
Setting up fontconfig-config (2.11.0-6.7) ...
Setting up libxkbcommon-dev (0.7.1-1) ...
Setting up x11proto-core-dev (7.0.31-1) ...
Setting up libgpm-dev:armhf (1.20.4-6.2) ...
Setting up ruby-test-unit (3.1.7-2) ...
Setting up libglib2.0-0:armhf (2.50.3-1) ...
Setting up libpython3.5-stdlib:armhf (3.5.3-1) ...
Setting up libxml2-utils (2.9.4+dfsg1-2.2) ...
Setting up libharfbuzz0b:armhf (1.4.2-1) ...
Setting up glib-networking-services (2.50.0-1) ...
Setting up libxau-dev:armhf (1:1.0.8-1) ...
Setting up autoconf (2.69-10) ...
Setting up libthai0:armhf (0.1.26-1) ...
Setting up libicu-dev (57.1-5) ...
Setting up file (1:5.29-3) ...
Setting up libkrb5support0:armhf (1.15-1) ...
Setting up libgirepository-1.0-1:armhf (1.50.0-1) ...
Setting up libjson-glib-1.0-0:armhf (1.2.2-1) ...
Setting up libcroco3:armhf (0.6.11-2) ...
Setting up pkg-config (0.29-4) ...
Setting up liblua5.2-dev:armhf (5.2.4-1.1) ...
Setting up gir1.2-glib-2.0:armhf (1.50.0-1) ...
Setting up libxdmcp-dev:armhf (1:1.1.2-3) ...
Setting up libatk1.0-0:armhf (2.22.0-1) ...
Setting up lua5.2 (5.2.4-1.1) ...
update-alternatives: using /usr/bin/lua5.2 to provide /usr/bin/lua (lua-interpreter) in auto mode
update-alternatives: using /usr/bin/luac5.2 to provide /usr/bin/luac (lua-compiler) in auto mode
Setting up libp11-kit0:armhf (0.23.3-2) ...
Setting up tcl8.6 (8.6.6+dfsg-1) ...
Setting up automake (1:1.15-6) ...
update-alternatives: using /usr/bin/automake-1.15 to provide /usr/bin/automake (automake) in auto mode
Setting up libice6:armhf (2:1.0.9-2) ...
Setting up libdconf1:armhf (0.26.0-2) ...
Setting up rubygems-integration (1.11) ...
Setting up man-db (2.7.6.1-2) ...
Not building database; man-db/auto-update is not 'true'.
Setting up shared-mime-info (1.8-1) ...
Setting up libavahi-common3:armhf (0.6.32-2) ...
Setting up libcolord2:armhf (1.3.3-2) ...
Setting up libpng-dev:armhf (1.6.28-1) ...
Setting up x11proto-render-dev (2:0.11.1-2) ...
Setting up libselinux1-dev:armhf (2.6-3) ...
Setting up libglib2.0-bin (2.50.3-1) ...
Setting up libxcb1:armhf (1.12-1) ...
Setting up x11proto-input-dev (2.3.2-1) ...
Setting up libharfbuzz-gobject0:armhf (1.4.2-1) ...
Setting up tcl8.6-dev:armhf (8.6.6+dfsg-1) ...
Setting up libtool (2.4.6-2) ...
Setting up python3.5 (3.5.3-1) ...
Setting up libpython3-stdlib:armhf (3.5.3-1) ...
Setting up libfontconfig1:armhf (2.11.0-6.7) ...
Setting up libdbus-1-dev:armhf (1.10.16-1) ...
Setting up libsm6:armhf (2:1.2.2-1+b1) ...
Setting up libk5crypto3:armhf (1.15-1) ...
Setting up gir1.2-atk-1.0:armhf (2.22.0-1) ...
Setting up libxcb-render0:armhf (1.12-1) ...
Setting up libharfbuzz-icu0:armhf (1.4.2-1) ...
Setting up dconf-service (0.26.0-2) ...
Setting up gettext (0.19.8.1-2) ...
Setting up libpython3.5:armhf (3.5.3-1) ...
Setting up libgnutls30:armhf (3.5.8-3) ...
Setting up libx11-6:armhf (2:1.6.4-3) ...
Setting up tcl (8.6.0+9) ...
Setting up libpython3.5-dev:armhf (3.5.3-1) ...
Setting up intltool-debian (0.35.0+20060710.4) ...
Setting up x11proto-xext-dev (7.3.0-1) ...
Setting up libfreetype6-dev (2.6.3-3+b1) ...
Setting up libice-dev:armhf (2:1.0.9-2) ...
Setting up libxcomposite1:armhf (1:0.4.4-2) ...
Setting up libxcb-shm0:armhf (1.12-1) ...
Setting up libxpm4:armhf (1:3.5.12-1) ...
Setting up libxt6:armhf (1:1.1.5-1) ...
Setting up libxrender1:armhf (1:0.9.10-1) ...
Setting up libxcb1-dev:armhf (1.12-1) ...
Setting up libavahi-client3:armhf (0.6.32-2) ...
Setting up libkrb5-3:armhf (1.15-1) ...
Setting up libx11-dev:armhf (2:1.6.4-3) ...
Setting up libxft2:armhf (2.3.2-1) ...
Setting up python3.5-dev (3.5.3-1) ...
Setting up dconf-gsettings-backend:armhf (0.26.0-2) ...
Setting up tcl-dev:armhf (8.6.0+9) ...
Setting up fontconfig (2.11.0-6.7) ...
Regenerating fonts cache... done.
Setting up libpython3-dev:armhf (3.5.3-1) ...
Setting up libfontconfig1-dev:armhf (2.11.0-6.7) ...
Setting up libsm-dev:armhf (2:1.2.2-1+b1) ...
Setting up libxext6:armhf (2:1.3.3-1) ...
Setting up libxfixes3:armhf (1:5.0.3-1) ...
Setting up po-debconf (1.0.20) ...
Setting up gsettings-desktop-schemas (3.22.0-1) ...
Setting up libgtk-3-common (3.22.6-1+rpi1) ...
Setting up libxpm-dev:armhf (1:3.5.12-1) ...
Setting up libatspi2.0-0:armhf (2.22.0-5) ...
Setting up libxmu-headers (2:1.1.2-2) ...
Setting up x11proto-fixes-dev (1:5.0-2) ...
Setting up libgdk-pixbuf2.0-0:armhf (2.36.5-2) ...
Setting up libxcb-shm0-dev:armhf (1.12-1) ...
Setting up gir1.2-gdkpixbuf-2.0:armhf (2.36.5-2) ...
Setting up libxrender-dev:armhf (1:0.9.10-1) ...
Setting up libxmu6:armhf (2:1.1.2-2) ...
Setting up libgssapi-krb5-2:armhf (1.15-1) ...
Setting up libxcb-render0-dev:armhf (1.12-1) ...
Setting up x11proto-damage-dev (1:1.2.1-2) ...
Setting up libxft-dev (2.3.2-1) ...
Setting up gtk-update-icon-cache (3.22.6-1+rpi1) ...
Setting up libxcursor1:armhf (1:1.1.14-1+b1) ...
Setting up libxext-dev:armhf (2:1.3.3-1) ...
Setting up glib-networking:armhf (2.50.0-1) ...
Setting up libpango-1.0-0:armhf (1.40.3-3) ...
Setting up libatk-bridge2.0-0:armhf (2.22.0-1) ...
Setting up libxfixes-dev:armhf (1:5.0.3-1) ...
Setting up x11proto-composite-dev (1:0.4.2-2) ...
Setting up libxrandr2:armhf (2:1.5.1-1) ...
Setting up libcups2:armhf (2.2.1-8) ...
Setting up libxi6:armhf (2:1.7.9-1) ...
Setting up libxaw7:armhf (2:1.0.13-1) ...
Setting up gir1.2-atspi-2.0:armhf (2.22.0-5) ...
Setting up libcairo2:armhf (1.14.8-1) ...
Setting up libxinerama1:armhf (2:1.1.3-1+b1) ...
Setting up libxcursor-dev:armhf (1:1.1.14-1+b1) ...
Setting up libxt-dev:armhf (1:1.1.5-1) ...
Setting up libxdamage1:armhf (1:1.1.4-2+b1) ...
Setting up libxrandr-dev:armhf (2:1.5.1-1) ...
Setting up libxcomposite-dev:armhf (1:0.4.4-2) ...
Setting up libxmu-dev:armhf (2:1.1.2-2) ...
Setting up libcairo-script-interpreter2:armhf (1.14.8-1) ...
Setting up libxaw7-dev:armhf (2:1.0.13-1) ...
Setting up libcairo-gobject2:armhf (1.14.8-1) ...
Setting up libsoup2.4-1:armhf (2.56.0-2) ...
Setting up libxdamage-dev:armhf (1:1.1.4-2+b1) ...
Setting up libsoup-gnome2.4-1:armhf (2.56.0-2) ...
Setting up libxtst6:armhf (2:1.2.3-1) ...
Setting up libpangoft2-1.0-0:armhf (1.40.3-3) ...
Setting up libxinerama-dev:armhf (2:1.1.3-1+b1) ...
Setting up librest-0.7-0:armhf (0.8.0-2) ...
Setting up libxi-dev:armhf (2:1.7.9-1) ...
Setting up gir1.2-freedesktop:armhf (1.50.0-1) ...
Setting up libpangoxft-1.0-0:armhf (1.40.3-3) ...
Setting up libpangocairo-1.0-0:armhf (1.40.3-3) ...
Setting up gir1.2-pango-1.0:armhf (1.40.3-3) ...
Setting up libxtst-dev:armhf (2:1.2.3-1) ...
Setting up librsvg2-2:armhf (2.40.16-1) ...
Setting up librsvg2-common:armhf (2.40.16-1) ...
Setting up adwaita-icon-theme (3.22.0-1) ...
update-alternatives: using /usr/share/icons/Adwaita/cursor.theme to provide /usr/share/icons/default/index.theme (x-cursor-theme) in auto mode
Setting up libgtk2.0-0:armhf (2.24.31-2) ...
Setting up libgtk-3-0:armhf (3.22.6-1+rpi1) ...
Setting up gir1.2-gtk-2.0 (2.24.31-2) ...
Setting up gir1.2-gtk-3.0:armhf (3.22.6-1+rpi1) ...
Setting up python3 (3.5.3-1) ...
Setting up python3-dev (3.5.3-1) ...
Setting up libglib2.0-dev (2.50.3-1) ...
Setting up libgdk-pixbuf2.0-dev (2.36.5-2) ...
Setting up libruby2.3:armhf (2.3.3-1) ...
Setting up libharfbuzz-dev:armhf (1.4.2-1) ...
Setting up dh-python (2.20170125) ...
Setting up dh-autoreconf (13) ...
Setting up libcairo2-dev (1.14.8-1) ...
Setting up libatk1.0-dev:armhf (2.22.0-1) ...
Setting up ruby2.3 (2.3.3-1) ...
Setting up libatspi2.0-dev:armhf (2.22.0-5) ...
Setting up ruby2.3-dev:armhf (2.3.3-1) ...
Setting up dh-strip-nondeterminism (0.031-1) ...
Setting up ruby-dev:armhf (1:2.3.3) ...
Setting up libatk-bridge2.0-dev:armhf (2.22.0-1) ...
Setting up libpango1.0-dev (1.40.3-3) ...
Setting up ruby (1:2.3.3) ...
Setting up debhelper (10.2.5) ...
Setting up libgtk-3-dev:armhf (3.22.6-1+rpi1) ...
Setting up rake (10.5.0-2) ...
Setting up libgtk2.0-dev (2.24.31-2) ...
Setting up sbuild-build-depends-vim-dummy (0.invalid.0) ...
Processing triggers for libc-bin (2.24-9) ...
Processing triggers for systemd (232-18) ...
Processing triggers for ca-certificates (20161130) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
Processing triggers for libgdk-pixbuf2.0-0:armhf (2.36.5-2) ...
W: No sandbox user '_apt' on the system, can not drop privileges

+------------------------------------------------------------------------------+
| Build environment                                                            |
+------------------------------------------------------------------------------+

Kernel: Linux 4.9.0-0.bpo.1-armmp armhf (armv7l)
Toolchain package versions: binutils_2.27.90.20170124-2 dpkg-dev_1.18.22 g++-6_6.3.0-6+rpi1 gcc-6_6.3.0-6+rpi1 libc6-dev_2.24-9 libstdc++-6-dev_6.3.0-6+rpi1 libstdc++6_6.3.0-6+rpi1 linux-libc-dev_3.18.5-1~exp1+rpi19+stretch
Package versions: adduser_3.115 adwaita-icon-theme_3.22.0-1 apt_1.4~rc1 autoconf_2.69-10 automake_1:1.15-6 autopoint_0.19.8.1-2 autotools-dev_20161112.1 base-files_9.8+rpi1 base-passwd_3.5.43 bash_4.4-4 binutils_2.27.90.20170124-2 bsdmainutils_9.0.12 bsdutils_1:2.29.1-1 build-essential_12.3 bzip2_1.0.6-8.1 ca-certificates_20161130 coreutils_8.26-2 cpio_2.11+dfsg-6 cpp_4:6.3.0-1 cpp-6_6.3.0-6+rpi1 dash_0.5.8-2.4 dconf-gsettings-backend_0.26.0-2 dconf-service_0.26.0-2 debconf_1.5.60 debfoster_2.7-2.1 debhelper_10.2.5 debianutils_4.8.1 dh-autoreconf_13 dh-python_2.20170125 dh-strip-nondeterminism_0.031-1 diffutils_1:3.5-3 dmsetup_2:1.02.137-1 dpkg_1.18.22 dpkg-dev_1.18.22 e2fslibs_1.43.4-2 e2fsprogs_1.43.4-2 fakeroot_1.21-3.1 file_1:5.29-3 findutils_4.6.0+git+20161106-2 fontconfig_2.11.0-6.7 fontconfig-config_2.11.0-6.7 fonts-dejavu-core_2.37-1 fuse2fs_1.43.4-2 g++_4:6.3.0-1 g++-6_6.3.0-6+rpi1 gcc_4:6.3.0-1 gcc-4.6-base_4.6.4-5+rpi1 gcc-4.7-base_4.7.3-11+rpi1 gcc-4.8-base_4.8.5-4 gcc-4.9-base_4.9.3-14 gcc-6_6.3.0-6+rpi1 gcc-6-base_6.3.0-6+rpi1 gettext_0.19.8.1-2 gettext-base_0.19.8.1-2 gir1.2-atk-1.0_2.22.0-1 gir1.2-atspi-2.0_2.22.0-5 gir1.2-freedesktop_1.50.0-1 gir1.2-gdkpixbuf-2.0_2.36.5-2 gir1.2-glib-2.0_1.50.0-1 gir1.2-gtk-2.0_2.24.31-2 gir1.2-gtk-3.0_3.22.6-1+rpi1 gir1.2-pango-1.0_1.40.3-3 glib-networking_2.50.0-1 glib-networking-common_2.50.0-1 glib-networking-services_2.50.0-1 gnupg_2.1.18-3 gnupg-agent_2.1.18-3 gnupg-l10n_2.1.18-3 gpgv_2.1.18-3 grep_2.27-2 groff-base_1.22.3-9 gsettings-desktop-schemas_3.22.0-1 gtk-update-icon-cache_3.22.6-1+rpi1 gzip_1.6-5 hicolor-icon-theme_0.15-1 hostname_3.18 icu-devtools_57.1-5 init_1.47 init-system-helpers_1.47 initscripts_2.88dsf-59.9 insserv_1.14.0-5.4 intltool-debian_0.35.0+20060710.4 klibc-utils_2.0.4-9+rpi1 kmod_23-2 libacl1_2.2.52-3 libacl1-dev_2.2.52-3 libapparmor1_2.11.0-2 libapt-pkg5.0_1.4~rc1 libarchive-zip-perl_1.59-1 libasan3_6.3.0-6+rpi1 libassuan0_2.4.3-2 libatk-bridge2.0-0_2.22.0-1 libatk-bridge2.0-dev_2.22.0-1 libatk1.0-0_2.22.0-1 libatk1.0-data_2.22.0-1 libatk1.0-dev_2.22.0-1 libatomic1_6.3.0-6+rpi1 libatspi2.0-0_2.22.0-5 libatspi2.0-dev_2.22.0-5 libattr1_1:2.4.47-2 libattr1-dev_1:2.4.47-2 libaudit-common_1:2.6.7-1 libaudit1_1:2.6.7-1 libavahi-client3_0.6.32-2 libavahi-common-data_0.6.32-2 libavahi-common3_0.6.32-2 libblkid1_2.29.1-1 libbsd0_0.8.3-1 libbz2-1.0_1.0.6-8.1 libc-bin_2.24-9 libc-dev-bin_2.24-9 libc6_2.24-9 libc6-dev_2.24-9 libcairo-gobject2_1.14.8-1 libcairo-script-interpreter2_1.14.8-1 libcairo2_1.14.8-1 libcairo2-dev_1.14.8-1 libcap-ng0_0.7.7-3 libcap2_1:2.25-1 libcap2-bin_1:2.25-1 libcc1-0_6.3.0-6+rpi1 libcolord2_1.3.3-2 libcomerr2_1.43.4-2 libcroco3_0.6.11-2 libcryptsetup4_2:1.7.3-3 libcups2_2.2.1-8 libdatrie1_0.2.10-4 libdb5.3_5.3.28-12 libdbus-1-3_1.10.16-1 libdbus-1-dev_1.10.16-1 libdconf1_0.26.0-2 libdebconfclient0_0.220 libdevmapper1.02.1_2:1.02.137-1 libdpkg-perl_1.18.22 libdrm2_2.4.74-1 libelf1_0.168-0.2 libepoxy-dev_1.3.1-2 libepoxy0_1.3.1-2 libexpat1_2.2.0-2 libexpat1-dev_2.2.0-2 libfakeroot_1.21-3.1 libfdisk1_2.29.1-1 libffi6_3.2.1-6 libfile-stripnondeterminism-perl_0.031-1 libfontconfig1_2.11.0-6.7 libfontconfig1-dev_2.11.0-6.7 libfreetype6_2.6.3-3+b1 libfreetype6-dev_2.6.3-3+b1 libfuse2_2.9.7-1 libgc1c2_1:7.4.2-8 libgcc-6-dev_6.3.0-6+rpi1 libgcc1_1:6.3.0-6+rpi1 libgcrypt20_1.7.6-1 libgdbm3_1.8.3-14 libgdk-pixbuf2.0-0_2.36.5-2 libgdk-pixbuf2.0-common_2.36.5-2 libgdk-pixbuf2.0-dev_2.36.5-2 libgirepository-1.0-1_1.50.0-1 libglib2.0-0_2.50.3-1 libglib2.0-bin_2.50.3-1 libglib2.0-data_2.50.3-1 libglib2.0-dev_2.50.3-1 libgmp-dev_2:6.1.2+dfsg-1 libgmp10_2:6.1.2+dfsg-1 libgmpxx4ldbl_2:6.1.2+dfsg-1 libgnutls30_3.5.8-3 libgomp1_6.3.0-6+rpi1 libgpg-error0_1.26-2 libgpm-dev_1.20.4-6.2 libgpm2_1.20.4-6.2 libgraphite2-3_1.3.9-4 libgraphite2-dev_1.3.9-4 libgssapi-krb5-2_1.15-1 libgtk-3-0_3.22.6-1+rpi1 libgtk-3-common_3.22.6-1+rpi1 libgtk-3-dev_3.22.6-1+rpi1 libgtk2.0-0_2.24.31-2 libgtk2.0-common_2.24.31-2 libgtk2.0-dev_2.24.31-2 libharfbuzz-dev_1.4.2-1 libharfbuzz-gobject0_1.4.2-1 libharfbuzz-icu0_1.4.2-1 libharfbuzz0b_1.4.2-1 libhogweed4_3.3-1 libice-dev_2:1.0.9-2 libice6_2:1.0.9-2 libicu-dev_57.1-5 libicu57_57.1-5 libidn11_1.33-1 libip4tc0_1.6.0+snapshot20161117-5 libisl15_0.18-1 libjbig0_2.1-3.1 libjpeg62-turbo_1:1.5.1-2 libjson-glib-1.0-0_1.2.2-1 libjson-glib-1.0-common_1.2.2-1 libk5crypto3_1.15-1 libkeyutils1_1.5.9-9 libklibc_2.0.4-9+rpi1 libkmod2_23-2 libkrb5-3_1.15-1 libkrb5support0_1.15-1 libksba8_1.3.5-2 liblcms2-2_2.8-4 liblua5.2-0_5.2.4-1.1 liblua5.2-dev_5.2.4-1.1 liblz4-1_0.0~r131-2 liblzma5_5.2.2-1.2 liblzo2-2_2.08-1.2 libmagic-mgc_1:5.29-3 libmagic1_1:5.29-3 libmount1_2.29.1-1 libmpc3_1.0.3-1 libmpdec2_2.4.2-1 libmpfr4_3.1.5-1 libncurses5_6.0+20161126-1 libncursesw5_6.0+20161126-1 libnettle6_3.3-1 libnpth0_1.3-1 libp11-kit0_0.23.3-2 libpam-modules_1.1.8-3.5 libpam-modules-bin_1.1.8-3.5 libpam-runtime_1.1.8-3.5 libpam0g_1.1.8-3.5 libpango-1.0-0_1.40.3-3 libpango1.0-dev_1.40.3-3 libpangocairo-1.0-0_1.40.3-3 libpangoft2-1.0-0_1.40.3-3 libpangoxft-1.0-0_1.40.3-3 libpcre16-3_2:8.39-2.1 libpcre3_2:8.39-2.1 libpcre3-dev_2:8.39-2.1 libpcre32-3_2:8.39-2.1 libpcrecpp0v5_2:8.39-2.1 libperl-dev_5.24.1-1 libperl5.24_5.24.1-1 libpipeline1_1.4.1-2 libpixman-1-0_0.34.0-1 libpixman-1-dev_0.34.0-1 libpng-dev_1.6.28-1 libpng12-0_1.2.54-6 libpng16-16_1.6.28-1 libprocps6_2:3.3.12-3 libproxy1v5_0.4.14-2 libpthread-stubs0-dev_0.3-4 libpython3-dev_3.5.3-1 libpython3-stdlib_3.5.3-1 libpython3.5_3.5.3-1 libpython3.5-dev_3.5.3-1 libpython3.5-minimal_3.5.3-1 libpython3.5-stdlib_3.5.3-1 libreadline-dev_7.0-2 libreadline6_6.3-9 libreadline7_7.0-2 librest-0.7-0_0.8.0-2 librsvg2-2_2.40.16-1 librsvg2-common_2.40.16-1 libruby2.3_2.3.3-1 libseccomp2_2.3.1-2.1 libselinux1_2.6-3 libselinux1-dev_2.6-3 libsemanage-common_2.6-2 libsemanage1_2.6-2 libsepol1_2.6-2 libsepol1-dev_2.6-2 libsigsegv2_2.10-5 libsm-dev_2:1.2.2-1+b1 libsm6_2:1.2.2-1+b1 libsmartcols1_2.29.1-1 libsoup-gnome2.4-1_2.56.0-2 libsoup2.4-1_2.56.0-2 libsqlite3-0_3.16.2-2 libss2_1.43.4-2 libssl1.0.2_1.0.2k-1 libssl1.1_1.1.0e-1 libstdc++-6-dev_6.3.0-6+rpi1 libstdc++6_6.3.0-6+rpi1 libsystemd0_232-18 libtasn1-6_4.10-1 libtcl8.6_8.6.6+dfsg-1 libthai-data_0.1.26-1 libthai0_0.1.26-1 libtiff5_4.0.7-5 libtimedate-perl_2.3000-2 libtinfo-dev_6.0+20161126-1 libtinfo5_6.0+20161126-1 libtool_2.4.6-2 libubsan0_6.3.0-6+rpi1 libudev1_232-18 libunistring0_0.9.6+really0.9.3-0.1 libusb-0.1-4_2:0.1.12-30 libustr-1.0-1_1.0.4-6 libuuid1_2.29.1-1 libx11-6_2:1.6.4-3 libx11-data_2:1.6.4-3 libx11-dev_2:1.6.4-3 libxau-dev_1:1.0.8-1 libxau6_1:1.0.8-1 libxaw7_2:1.0.13-1 libxaw7-dev_2:1.0.13-1 libxcb-render0_1.12-1 libxcb-render0-dev_1.12-1 libxcb-shm0_1.12-1 libxcb-shm0-dev_1.12-1 libxcb1_1.12-1 libxcb1-dev_1.12-1 libxcomposite-dev_1:0.4.4-2 libxcomposite1_1:0.4.4-2 libxcursor-dev_1:1.1.14-1+b1 libxcursor1_1:1.1.14-1+b1 libxdamage-dev_1:1.1.4-2+b1 libxdamage1_1:1.1.4-2+b1 libxdmcp-dev_1:1.1.2-3 libxdmcp6_1:1.1.2-3 libxext-dev_2:1.3.3-1 libxext6_2:1.3.3-1 libxfixes-dev_1:5.0.3-1 libxfixes3_1:5.0.3-1 libxft-dev_2.3.2-1 libxft2_2.3.2-1 libxi-dev_2:1.7.9-1 libxi6_2:1.7.9-1 libxinerama-dev_2:1.1.3-1+b1 libxinerama1_2:1.1.3-1+b1 libxkbcommon-dev_0.7.1-1 libxkbcommon0_0.7.1-1 libxml2_2.9.4+dfsg1-2.2 libxml2-utils_2.9.4+dfsg1-2.2 libxmu-dev_2:1.1.2-2 libxmu-headers_2:1.1.2-2 libxmu6_2:1.1.2-2 libxpm-dev_1:3.5.12-1 libxpm4_1:3.5.12-1 libxrandr-dev_2:1.5.1-1 libxrandr2_2:1.5.1-1 libxrender-dev_1:0.9.10-1 libxrender1_1:0.9.10-1 libxt-dev_1:1.1.5-1 libxt6_1:1.1.5-1 libxtst-dev_2:1.2.3-1 libxtst6_2:1.2.3-1 libyaml-0-2_0.1.7-2 linux-libc-dev_3.18.5-1~exp1+rpi19+stretch login_1:4.4-3 lsb-base_9.20161125+rpi1 lua5.2_5.2.4-1.1 m4_1.4.18-1 make_4.1-9.1 makedev_2.3.1-93 man-db_2.7.6.1-2 manpages_4.09-2 mawk_1.3.3-17 mime-support_3.60 mount_2.29.1-1 multiarch-support_2.24-9 nano_2.7.4-1 ncurses-base_6.0+20161126-1 ncurses-bin_6.0+20161126-1 openssl_1.1.0e-1 passwd_1:4.4-3 patch_2.7.5-1 perl_5.24.1-1 perl-base_5.24.1-1 perl-modules-5.24_5.24.1-1 pinentry-curses_1.0.0-2 pkg-config_0.29-4 po-debconf_1.0.20 procps_2:3.3.12-3 python3_3.5.3-1 python3-dev_3.5.3-1 python3-minimal_3.5.3-1 python3.5_3.5.3-1 python3.5-dev_3.5.3-1 python3.5-minimal_3.5.3-1 rake_10.5.0-2 raspbian-archive-keyring_20120528.2 readline-common_7.0-2 ruby_1:2.3.3 ruby-dev_1:2.3.3 ruby-did-you-mean_1.0.0-2 ruby-minitest_5.9.0-1 ruby-net-telnet_0.1.1-2 ruby-power-assert_0.3.0-1 ruby-test-unit_3.1.7-2 ruby2.3_2.3.3-1 ruby2.3-dev_2.3.3-1 rubygems-integration_1.11 sbuild-build-depends-core-dummy_0.invalid.0 sbuild-build-depends-vim-dummy_0.invalid.0 sed_4.4-1 sensible-utils_0.0.9 shared-mime-info_1.8-1 startpar_0.59-3.1 systemd_232-18 systemd-sysv_232-18 sysv-rc_2.88dsf-59.9 sysvinit-utils_2.88dsf-59.9 tar_1.29b-1.1 tcl_8.6.0+9 tcl-dev_8.6.0+9 tcl8.6_8.6.6+dfsg-1 tcl8.6-dev_8.6.6+dfsg-1 tzdata_2016j-2 ucf_3.0036 udev_232-18 util-linux_2.29.1-1 x11-common_1:7.7+18 x11proto-composite-dev_1:0.4.2-2 x11proto-core-dev_7.0.31-1 x11proto-damage-dev_1:1.2.1-2 x11proto-fixes-dev_1:5.0-2 x11proto-input-dev_2.3.2-1 x11proto-kb-dev_1.0.7-1 x11proto-randr-dev_1.5.0-1 x11proto-record-dev_1.14.2-1 x11proto-render-dev_2:0.11.1-2 x11proto-xext-dev_7.3.0-1 x11proto-xinerama-dev_1.2.1-2 xkb-data_2.19-1 xorg-sgml-doctools_1:1.11-1 xtrans-dev_1.3.5-1 xz-utils_5.2.2-1.2 zlib1g_1:1.2.8.dfsg-5 zlib1g-dev_1:1.2.8.dfsg-5

+------------------------------------------------------------------------------+
| Build                                                                        |
+------------------------------------------------------------------------------+


Unpack source
-------------

gpgv: unknown type of key resource 'trustedkeys.kbx'
gpgv: keyblock resource '/sbuild-nonexistent/.gnupg/trustedkeys.kbx': General error
gpgv: Signature made Tue Mar  7 04:08:22 2017 UTC
gpgv:                using RSA key 91BFBF4D6956BD5DF7B72D23DFE691AE331BA3DB
gpgv: Can't check signature: No public key
dpkg-source: warning: failed to verify signature on ./vim_8.0.0197-3.dsc
dpkg-source: info: extracting vim in /<<PKGBUILDDIR>>
dpkg-source: info: unpacking vim_8.0.0197.orig.tar.gz
dpkg-source: info: unpacking vim_8.0.0197-3.debian.tar.xz
dpkg-source: info: applying upstream/Support-defining-compilation-date-in-SOURCE_DATE_EPOCH.patch
dpkg-source: info: applying debian/Support-sourcing-a-vimrc.tiny-when-Vim-is-invoked-as-vi.patch
dpkg-source: info: applying debian/Detect-the-rst-filetype-using-the-contents-of-the-file.patch
dpkg-source: info: applying debian/Add-recognition-of-more-LaTeX-commands-for-tex-filetype-d.patch
dpkg-source: info: applying debian/Document-Debian-s-decision-to-disable-modelines-by-defaul.patch
dpkg-source: info: applying upstream/Add-Zesty-Zapus-to-deb-changelog-sources-syntax-files.patch
dpkg-source: info: applying upstream/debcontrol.vim-Add-sections-for-Rust-and-JavaScript.patch
dpkg-source: info: applying upstream/patch-8.0.0322-possible-overflow-with-corrupted-spell-fil.patch
dpkg-source: info: applying upstream/patch-8.0.0377-possible-overflow-when-reading-corrupted-u.patch
dpkg-source: info: applying upstream/patch-8.0.0378-possible-overflow-when-reading-corrupted-u.patch

Check disc space
----------------

Sufficient free space for build

User Environment
----------------

APT_CONFIG=/var/lib/sbuild/apt.conf
DEB_BUILD_OPTIONS=parallel=4
HOME=/sbuild-nonexistent
LC_ALL=POSIX
LOGNAME=buildd
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
SCHROOT_ALIAS_NAME=stretch-staging-armhf-sbuild
SCHROOT_CHROOT_NAME=stretch-staging-armhf-sbuild
SCHROOT_COMMAND=env
SCHROOT_GID=111
SCHROOT_GROUP=buildd
SCHROOT_SESSION_ID=stretch-staging-armhf-sbuild-e41f8219-355a-4363-9ebe-c6119f5d60a5
SCHROOT_UID=106
SCHROOT_USER=buildd
SHELL=/bin/sh
TERM=linux
USER=buildd

dpkg-buildpackage
-----------------

dpkg-buildpackage: info: source package vim
dpkg-buildpackage: info: source version 2:8.0.0197-3
dpkg-buildpackage: info: source distribution unstable
 dpkg-source --before-build vim-8.0.0197
dpkg-buildpackage: info: host architecture armhf
 fakeroot debian/rules clean
dh_testdir
dh_testdir
dh_testroot
dh_testdir
for x in install postinst prerm links lintian-overrides ; do \
  rm -f debian/vim-tiny.$x ; \
done
dh_testroot
dh_testdir
if [ "vim-tiny" = "vim-tiny" ]; then \
  rm -f debian/tiny/vimrc.tiny; \
fi
for x in install postinst prerm links lintian-overrides ; do \
  rm -f debian/vim-gtk.$x ; \
done
dh_testroot
rm -rf src/vim-tiny
dh_testdir
if [ "vim-gtk" = "vim-tiny" ]; then \
  rm -f debian/tiny/vimrc.tiny; \
fi
for x in install postinst prerm links lintian-overrides ; do \
  rm -f debian/vim-gtk3.$x ; \
done
dh_testroot
rm -rf src/vim-gtk
dh_testdir
if [ "vim-gtk3" = "vim-tiny" ]; then \
  rm -f debian/tiny/vimrc.tiny; \
fi
for x in install postinst prerm links lintian-overrides ; do \
  rm -f debian/vim-athena.$x ; \
done
dh_testroot
rm -rf src/vim-gtk3
if [ "vim-athena" = "vim-tiny" ]; then \
  rm -f debian/tiny/vimrc.tiny; \
fi
rm -rf src/vim-athena
for x in install postinst prerm links lintian-overrides ; do \
  rm -f debian/vim-nox.$x ; \
done
dh_testroot
if [ "vim-nox" = "vim-tiny" ]; then \
  rm -f debian/tiny/vimrc.tiny; \
fi
rm -rf src/vim-nox
for x in install postinst prerm links lintian-overrides ; do \
  rm -f debian/vim.$x ; \
done
[ ! -L src/vim-basic/po ] || /usr/bin/make -C src/vim-basic/po clean
rm -f debian/vim-common.install debian/vim-common.links debian/vim-gui-common.install debian/vim-gui-common.links debian/vim-runtime.install debian/vim-runtime.links debian/vim-runtime.postrm debian/vim-runtime.preinst debian/runtime/debian.vim
rm -rf src/vim-basic
dh_testdir
dh_testroot
rm -f extract-stamp* build-stamp* install-stamp* configure-stamp* autoconf-stamp
rm -f debian/helpztags.1
rm -rf debian/policy/vim-policy.html
rm -f debian/policy/vim-policy.txt
rm -f debian/tmplogo.*
[ ! -f src/auto/config.cache ] || make distclean
rm -f src/auto/config.mk src/pixmaps src/runtime
[ ! -f debian/configure.dist ] || mv debian/configure.dist src/auto/configure
rm -f src/auto/config.h
rm -f runtime/doc/doctags runtime/doc/tags.ref
rm -f runtime/doc/*.html runtime/doc/*.log
dh_clean
 debian/rules build-arch
cp src/config.mk.dist src/auto/config.mk
dh_testdir
[ -f debian/configure.dist ] || cp src/auto/configure debian/configure.dist
/usr/bin/make -C src autoconf
make[1]: Entering directory '/<<PKGBUILDDIR>>/src'
if test ! -f configure.save; then mv configure configure.save; fi
autoconf
sed -e 's+>config.log+>auto/config.log+' -e 's+\./config.log+auto/config.log+' configure > auto/configure
chmod 755 auto/configure
mv -f configure.save configure
rm -rf autom4te.cache
rm -f auto/config.status auto/config.cache
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src'
/usr/bin/make distclean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
Starting make in the src directory.
If there are problems, cd to the src directory and run make there
cd src && /usr/bin/make distclean
make[2]: Entering directory '/<<PKGBUILDDIR>>/src'
rm -f auto/config.cache
if test "Xdistclean" != "Xclean" \
	-a "Xdistclean" != "Xdistclean" \
	-a "Xdistclean" != "Xautoconf" \
	-a "Xdistclean" != "Xreconfig"; then \
    GUI_INC_LOC="" GUI_LIB_LOC="" \
	CC="" CPPFLAGS="" CFLAGS="" \
	LDFLAGS=""  srcdir="." \
	./configure    \
	  \
	   \
	   \
	   \
	   \
	  \
	   \
	 \
	   \
	  \
	; \
fi
cd testdir; /usr/bin/make -f Makefile clean
rm -f auto/config.status auto/config.cache config.log auto/config.log
rm -f auto/config.h auto/link.log auto/link.sed auto/config.mk
touch auto/config.h
cp config.mk.dist auto/config.mk
make[3]: Entering directory '/<<PKGBUILDDIR>>/src/testdir'
rm -rf *.out *.failed *.res *.rej *.orig test.log messages test.out X* viminfo tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok benchmark.out valgrind.*
make[3]: Leaving directory '/<<PKGBUILDDIR>>/src/testdir'
if test -d po; then \
	cd po; /usr/bin/make checkclean; \
fi
make[3]: Entering directory '/<<PKGBUILDDIR>>/src/po'
rm -f *.ck
make[3]: Leaving directory '/<<PKGBUILDDIR>>/src/po'
rm -f *.o objects/* core vim.core vim vim xxd/*.o
rm -f xxd/xxd auto/osdef.h auto/pathdef.c auto/if_perl.c auto/gui_gtk_gresources.c auto/gui_gtk_gresources.h
rm -f conftest* *~ auto/link.sed
rm -f json_test memfile_test message_test
rm -f runtime pixmaps
rm -rf vim.app
rm -rf mzscheme_base.c
if test -d po; then \
	cd po; /usr/bin/make prefix= clean; \
fi
make[3]: Entering directory '/<<PKGBUILDDIR>>/src/po'
rm -f *.ck
rm -f core core.* *.old.po *.mo *.pot sjiscorr
make[3]: Leaving directory '/<<PKGBUILDDIR>>/src/po'
rm -f tags
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src'
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
touch autoconf-stamp
dh_testdir
dh_testdir
dh_testdir
*** DEBIAN *** CONFIGURING VARIANT vim-basic
/usr/bin/make -C src shadow SHADOWDIR=vim-basic
dh_testdir
*** DEBIAN *** CONFIGURING VARIANT vim-tiny
make[1]: Entering directory '/<<PKGBUILDDIR>>/src'
ln -s ../runtime .
ln -s ../pixmaps .
mkdir vim-basic
cd vim-basic; ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_res.xml ../toolcheck ../proto ../vimtutor ../gvimtutor ../mkinstalldirs .
mkdir vim-basic/auto
cd vim-basic/auto; ln -s ../../auto/configure .
mkdir vim-basic/po
cd vim-basic/po; ln -s ../../po/*.po ../../po/*.mak ../../po/*.vim ../../po/Makefile .
cd vim-basic; rm -f auto/link.sed
cp Makefile configure vim-basic
rm -f vim-basic/auto/config.mk vim-basic/config.mk.dist
cp config.mk.dist vim-basic/auto/config.mk
cp config.mk.dist vim-basic
mkdir vim-basic/xxd
cd vim-basic/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* .
if test -d os_mac_rsrc; then \
	cd vim-basic; \
	ln -s ../infplist.xml .; \
	ln -s ../os_mac_rsrc ../os_mac.rsr.hqx ../dehqx.py .; \
fi
mkdir vim-basic/testdir
cd vim-basic/testdir; ln -s ../../testdir/Makefile \
			 ../../testdir/Make_all.mak \
			 ../../testdir/README.txt \
			 ../../testdir/*.in \
			 ../../testdir/*.vim \
			 ../../testdir/*.py \
			 ../../testdir/python* \
			 ../../testdir/sautest \
			 ../../testdir/samples \
			 ../../testdir/test83-tags? \
			 ../../testdir/*.ok .
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src'
if test -f src/auto/config.cache; then make distclean; fi
/usr/bin/make -C src shadow SHADOWDIR=vim-tiny
cd src/vim-basic && LDFLAGS="-Wl,-z,relro -Wl,-z,now" CPPFLAGS="-Wdate-time" CFLAGS="-g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security" ./configure --prefix=/usr --mandir='${prefix}'/share/man --without-local-dir --with-modified-by="pkg-vim-maintainers@lists.alioth.debian.org" --with-compiledby="pkg-vim-maintainers@lists.alioth.debian.org" --enable-fail-if-missing --enable-cscope --enable-gpm --enable-selinux --disable-smack --with-features=huge --enable-multibyte --enable-acl --without-x --enable-gui=no --disable-luainterp --disable-mzschemeinterp --disable-perlinterp --disable-pythoninterp --disable-python3interp --disable-rubyinterp --disable-tclinterp
*** DEBIAN *** CONFIGURING VARIANT vim-gtk
/usr/bin/make -C src shadow SHADOWDIR=vim-gtk
make[1]: Entering directory '/<<PKGBUILDDIR>>/src'
mkdir vim-tiny
make[1]: Entering directory '/<<PKGBUILDDIR>>/src'
mkdir vim-gtk
cd vim-tiny; ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_res.xml ../toolcheck ../proto ../vimtutor ../gvimtutor ../mkinstalldirs .
cd vim-gtk; ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_res.xml ../toolcheck ../proto ../vimtutor ../gvimtutor ../mkinstalldirs .
mkdir vim-tiny/auto
mkdir vim-gtk/auto
cd vim-gtk/auto; ln -s ../../auto/configure .
cd vim-tiny/auto; ln -s ../../auto/configure .
mkdir vim-tiny/po
mkdir vim-gtk/po
cd vim-tiny/po; ln -s ../../po/*.po ../../po/*.mak ../../po/*.vim ../../po/Makefile .
*** DEBIAN *** CONFIGURING VARIANT vim-gtk3
cd vim-gtk/po; ln -s ../../po/*.po ../../po/*.mak ../../po/*.vim ../../po/Makefile .
/usr/bin/make -C src shadow SHADOWDIR=vim-gtk3
cd vim-gtk; rm -f auto/link.sed
cd vim-tiny; rm -f auto/link.sed
cp Makefile configure vim-gtk
cp Makefile configure vim-tiny
rm -f vim-tiny/auto/config.mk vim-tiny/config.mk.dist
rm -f vim-gtk/auto/config.mk vim-gtk/config.mk.dist
cp config.mk.dist vim-tiny/auto/config.mk
make[1]: Entering directory '/<<PKGBUILDDIR>>/src'
mkdir vim-gtk3
cp config.mk.dist vim-gtk/auto/config.mk
cp config.mk.dist vim-tiny
cd vim-gtk3; ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_res.xml ../toolcheck ../proto ../vimtutor ../gvimtutor ../mkinstalldirs .
cp config.mk.dist vim-gtk
mkdir vim-tiny/xxd
mkdir vim-gtk/xxd
cd vim-gtk/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* .
cd vim-tiny/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* .
if test -d os_mac_rsrc; then \
	cd vim-gtk; \
	ln -s ../infplist.xml .; \
	ln -s ../os_mac_rsrc ../os_mac.rsr.hqx ../dehqx.py .; \
fi
if test -d os_mac_rsrc; then \
	cd vim-tiny; \
	ln -s ../infplist.xml .; \
	ln -s ../os_mac_rsrc ../os_mac.rsr.hqx ../dehqx.py .; \
fi
mkdir vim-tiny/testdir
mkdir vim-gtk/testdir
cd vim-tiny/testdir; ln -s ../../testdir/Makefile \
			 ../../testdir/Make_all.mak \
			 ../../testdir/README.txt \
			 ../../testdir/*.in \
			 ../../testdir/*.vim \
			 ../../testdir/*.py \
			 ../../testdir/python* \
			 ../../testdir/sautest \
			 ../../testdir/samples \
			 ../../testdir/test83-tags? \
			 ../../testdir/*.ok .
cd vim-gtk/testdir; ln -s ../../testdir/Makefile \
			 ../../testdir/Make_all.mak \
			 ../../testdir/README.txt \
			 ../../testdir/*.in \
			 ../../testdir/*.vim \
			 ../../testdir/*.py \
			 ../../testdir/python* \
			 ../../testdir/sautest \
			 ../../testdir/samples \
			 ../../testdir/test83-tags? \
			 ../../testdir/*.ok .
mkdir vim-gtk3/auto
cd vim-gtk3/auto; ln -s ../../auto/configure .
mkdir vim-gtk3/po
cd vim-gtk3/po; ln -s ../../po/*.po ../../po/*.mak ../../po/*.vim ../../po/Makefile .
cd vim-gtk3; rm -f auto/link.sed
cp Makefile configure vim-gtk3
rm -f vim-gtk3/auto/config.mk vim-gtk3/config.mk.dist
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src'
cp config.mk.dist vim-gtk3/auto/config.mk
if test -f src/auto/config.cache; then make distclean; fi
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src'
if test -f src/auto/config.cache; then make distclean; fi
cd src/vim-gtk && LDFLAGS="-Wl,-z,relro -Wl,-z,now" CPPFLAGS="-Wdate-time" CFLAGS="-g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security" ./configure --prefix=/usr --mandir='${prefix}'/share/man --without-local-dir --with-modified-by="pkg-vim-maintainers@lists.alioth.debian.org" --with-compiledby="pkg-vim-maintainers@lists.alioth.debian.org" --enable-fail-if-missing --enable-cscope --enable-gpm --enable-selinux --disable-smack --with-features=huge --enable-multibyte --enable-acl --with-x --enable-xim --enable-gui=gtk2 --enable-gtk2-check --disable-gnome-check --disable-motif-check --disable-athena-check --disable-fontset --enable-luainterp --disable-mzschemeinterp --enable-perlinterp --enable-python3interp --with-python3-config-dir=/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf --disable-pythoninterp --enable-rubyinterp --enable-tclinterp --with-tclsh=/usr/bin/tclsh
cd src/vim-tiny && LDFLAGS="-Wl,-z,relro -Wl,-z,now" CPPFLAGS="-Wdate-time" CFLAGS="-g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC" ./configure --prefix=/usr --mandir='${prefix}'/share/man --without-local-dir --with-modified-by="pkg-vim-maintainers@lists.alioth.debian.org" --with-compiledby="pkg-vim-maintainers@lists.alioth.debian.org" --enable-fail-if-missing --with-features=small --disable-gui --disable-xsmp --disable-xsmp-interact --disable-netbeans --disable-gpm --enable-nls --enable-multibyte --enable-acl --enable-selinux --disable-smack
cp config.mk.dist vim-gtk3
mkdir vim-gtk3/xxd
cd vim-gtk3/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* .
if test -d os_mac_rsrc; then \
	cd vim-gtk3; \
	ln -s ../infplist.xml .; \
	ln -s ../os_mac_rsrc ../os_mac.rsr.hqx ../dehqx.py .; \
fi
mkdir vim-gtk3/testdir
cd vim-gtk3/testdir; ln -s ../../testdir/Makefile \
			 ../../testdir/Make_all.mak \
			 ../../testdir/README.txt \
			 ../../testdir/*.in \
			 ../../testdir/*.vim \
			 ../../testdir/*.py \
			 ../../testdir/python* \
			 ../../testdir/sautest \
			 ../../testdir/samples \
			 ../../testdir/test83-tags? \
			 ../../testdir/*.ok .
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src'
if test -f src/auto/config.cache; then make distclean; fi
cd src/vim-gtk3 && LDFLAGS="-Wl,-z,relro -Wl,-z,now" CPPFLAGS="-Wdate-time" CFLAGS="-g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security" ./configure --prefix=/usr --mandir='${prefix}'/share/man --without-local-dir --with-modified-by="pkg-vim-maintainers@lists.alioth.debian.org" --with-compiledby="pkg-vim-maintainers@lists.alioth.debian.org" --enable-fail-if-missing --enable-cscope --enable-gpm --enable-selinux --disable-smack --with-features=huge --enable-multibyte --enable-acl --with-x --enable-xim --enable-gui=gtk3 --enable-gtk3-check --disable-gnome-check --disable-motif-check --disable-athena-check --disable-fontset --enable-luainterp --disable-mzschemeinterp --enable-perlinterp --enable-python3interp --with-python3-config-dir=/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf --disable-pythoninterp --enable-rubyinterp --enable-tclinterp --with-tclsh=/usr/bin/tclsh
configure: creating cache auto/config.cache
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
configure: creating cache auto/config.cache
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... checking whether the C compiler works... configure: creating cache auto/config.cache
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
configure: creating cache auto/config.cache
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
yes
checking for C compiler default output file name... a.out
yes
checking for suffix of executables... checking for C compiler default output file name... yes
checking for C compiler default output file name... a.out
a.out
checking for suffix of executables... checking for suffix of executables... checking for suffix of executables... 



checking whether we are cross compiling... checking whether we are cross compiling... checking whether we are cross compiling... checking whether we are cross compiling... no
no
no
checking for suffix of object files... no
checking for suffix of object files... checking for suffix of object files... checking for suffix of object files... o
o
checking whether we are using the GNU C compiler... checking whether we are using the GNU C compiler... o
checking whether we are using the GNU C compiler... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking whether gcc accepts -g... yes
yes
checking whether gcc accepts -g... checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... yes
yes
checking for gcc option to accept ISO C89... checking for gcc option to accept ISO C89... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... none needed
checking how to run the C preprocessor... none needed
checking how to run the C preprocessor... none needed
checking how to run the C preprocessor... gcc -E
gcc -E
gcc -E
gcc -E
checking for grep that handles long lines and -e... checking for grep that handles long lines and -e... checking for grep that handles long lines and -e... checking for grep that handles long lines and -e... /bin/grep
/bin/grep
/bin/grep
checking for egrep... checking for egrep... checking for egrep... /bin/grep -E
/bin/grep -E
/bin/grep
checking for egrep... /bin/grep -E
/bin/grep -E
checking for fgrep... checking for fgrep... checking for fgrep... /bin/grep -F
checking for library containing strerror... checking for fgrep... /bin/grep -F
checking for library containing strerror... /bin/grep -F
checking for library containing strerror... /bin/grep -F
checking for library containing strerror... none required
none required
checking for gawk... checking for gawk... no
checking for mawk... none required
no
checking for mawk... checking for gawk... mawk
mawk
checking for strip... checking for strip... no
checking for mawk... strip
strip
checking for ANSI C header files... checking for ANSI C header files... mawk
checking for strip... strip
checking for ANSI C header files... none required
checking for gawk... no
checking for mawk... mawk
checking for strip... strip
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
yes
yes
yes
checking --enable-fail-if-missing argument... yes
checking --enable-fail-if-missing argument... yes
checking --enable-fail-if-missing argument... checking --enable-fail-if-missing argument... yes
yes
checking for recent clang version... checking for recent clang version... checking for recent clang version... checking for recent clang version... no
configure: checking for buggy tools...
no
configure: checking for buggy tools...
no
no
configure: checking for buggy tools...
configure: checking for buggy tools...
checking for BeOS... no
checking for QNX... checking for BeOS... checking for BeOS... no
checking for Darwin (Mac OS X)... no
checking for QNX... no
checking for QNX... checking for BeOS... no
checking for Darwin (Mac OS X)... no
checking for QNX... no
checking for Darwin (Mac OS X)... no
no
checking AvailabilityMacros.h usability... checking for Darwin (Mac OS X)... no
no
checking AvailabilityMacros.h usability... checking AvailabilityMacros.h usability... no
checking AvailabilityMacros.h usability... no
checking AvailabilityMacros.h presence... no
checking AvailabilityMacros.h presence... no
checking AvailabilityMacros.h presence... no
checking AvailabilityMacros.h presence... no
checking for AvailabilityMacros.h... no
checking --with-local-dir argument... no
no
no
checking for AvailabilityMacros.h... checking for AvailabilityMacros.h... no
no
checking --with-local-dir argument... checking --with-local-dir argument... no
no
checking --with-vim-name argument... checking --with-vim-name argument... no
checking for AvailabilityMacros.h... checking --with-vim-name argument... Defaulting to vim
Defaulting to vim
checking --with-ex-name argument... checking --with-ex-name argument... no
Defaulting to vim
checking --with-ex-name argument... Defaulting to ex
Defaulting to ex
checking --with-view-name argument... checking --with-view-name argument... Defaulting to ex
checking --with-view-name argument... Defaulting to view
checking --with-global-runtime argument... Defaulting to view
checking --with-local-dir argument... no
checking --with-global-runtime argument... no
checking --with-modified-by argument... no
checking --with-vim-name argument... checking --with-modified-by argument... pkg-vim-maintainers@lists.alioth.debian.org
Defaulting to vim
checking --with-ex-name argument... pkg-vim-maintainers@lists.alioth.debian.org
Defaulting to ex
checking --with-view-name argument... Defaulting to view
Defaulting to view
checking --with-global-runtime argument... checking --with-global-runtime argument... no
checking --with-modified-by argument... no
pkg-vim-maintainers@lists.alioth.debian.org
checking --with-modified-by argument... pkg-vim-maintainers@lists.alioth.debian.org
checking if character set is EBCDIC... checking if character set is EBCDIC... checking if character set is EBCDIC... checking if character set is EBCDIC... no
no
no
checking --disable-smack argument... checking --disable-smack argument... checking --disable-smack argument... yes
yes
yes
no
checking --disable-selinux argument... checking --disable-selinux argument... checking --disable-selinux argument... no
no
no
checking for is_selinux_enabled in -lselinux... checking for is_selinux_enabled in -lselinux... checking for is_selinux_enabled in -lselinux... checking --disable-smack argument... yes
checking --disable-selinux argument... no
checking for is_selinux_enabled in -lselinux... yes
checking --with-features argument... huge
yes
checking --with-features argument... checking --with-compiledby argument... huge
pkg-vim-maintainers@lists.alioth.debian.org
checking --disable-xsmp argument... checking --with-compiledby argument... pkg-vim-maintainers@lists.alioth.debian.org
no
checking --disable-xsmp-interact argument... no
checking --disable-xsmp argument... checking --enable-luainterp argument... no
no
yes
checking --disable-xsmp-interact argument... no
checking --with-features argument... checking --enable-luainterp argument... huge
yes
checking --with-compiledby argument... pkg-vim-maintainers@lists.alioth.debian.org
checking --disable-xsmp argument... no
checking --disable-xsmp-interact argument... no
checking --enable-luainterp argument... yes
yes
checking --with-features argument... small
checking --enable-mzschemeinterp argument... checking --with-compiledby argument... no
pkg-vim-maintainers@lists.alioth.debian.org
checking --disable-xsmp argument... checking --with-lua-prefix argument... no
yes
checking LUA_PREFIX environment var... not set, default to /usr
checking --enable-luainterp argument... checking --with-luajit... no
no
checking for lua... /usr/bin/lua
checking Lua version... checking --with-lua-prefix argument... no
checking LUA_PREFIX environment var... not set, default to /usr
checking --with-luajit... no
checking for lua... checking --enable-perlinterp argument... no
/usr/bin/lua
checking Lua version... checking --enable-mzschemeinterp argument... no
checking --enable-pythoninterp argument... no
5.2
checking if lua.h can be found in /usr/include... no
checking if lua.h can be found in /usr/include/lua5.2... yes
checking if link with -L/usr/lib -llua5.2 is sane... checking --enable-python3interp argument... no
checking --enable-perlinterp argument... no
5.2
checking if lua.h can be found in /usr/include... no
checking if lua.h can be found in /usr/include/lua5.2... yes
checking if link with -L/usr/lib -llua5.2 is sane... checking --enable-pythoninterp argument... no
checking --enable-tclinterp argument... no
checking --enable-python3interp argument... no
checking --enable-rubyinterp argument... no
checking --enable-cscope argument... yes
checking --enable-workshop argument... no
checking --enable-tclinterp argument... checking --disable-netbeans argument... no
no
checking --disable-channel argument... no
checking for socket in -lsocket... checking --enable-rubyinterp argument... no
checking --enable-cscope argument... no
checking --enable-workshop argument... no
checking --disable-netbeans argument... yes
checking --disable-channel argument... cannot use channels with tiny or small features
checking --enable-multibyte argument... yes
checking --enable-hangulinput argument... no
checking --enable-xim argument... defaulting to auto
checking --enable-fontset argument... no
checking for xmkmf... no
checking for X... no
checking for gethostbyname in -lnsl... yes
yes
checking --enable-mzschemeinterp argument... checking --enable-mzschemeinterp argument... no
no
checking --enable-perlinterp argument... checking --enable-perlinterp argument... yes
yes
checking for perl... checking for perl... /usr/bin/perl
/usr/bin/perl
checking Perl version... checking Perl version... OK
OK
yes
checking whether compiling with process communication is possible... libraries , headers 
checking for gethostbyname... yes
checking for connect... yes
checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking if X11 header files can be found... checking if compile and link flags for Perl are sane... checking if compile and link flags for Perl are sane... yes
checking for _XdmcpAuthDoIt in -lXdmcp... yes
checking --enable-multibyte argument... yes
checking --enable-hangulinput argument... no
checking --enable-xim argument... defaulting to auto
checking --enable-fontset argument... no
defaulting to: don't HAVE_X11
checking --enable-gui argument... no GUI support
checking X11/SM/SMlib.h usability... yes
yes
checking --enable-pythoninterp argument... no
checking --enable-pythoninterp argument... no
yes
checking X11/SM/SMlib.h presence... checking --enable-python3interp argument... yes
checking --enable-python3interp argument... yes
checking for python3... checking for python3... /usr/bin/python3
checking Python version... /usr/bin/python3
checking Python version... yes
checking for IceOpenConnection in -lICE... yes
checking for X11/SM/SMlib.h... yes
checking for CYGWIN or MSYS environment... no
checking whether toupper is broken... 3.5
checking Python is 3.0 or better... 3.5
checking Python is 3.0 or better... yep
checking Python's abiflags... yes
checking for XpmCreatePixmapFromData in -lXpm... yep
checking Python's abiflags... no
checking whether __DATE__ and __TIME__ work... m
checking Python's install prefix... m
checking Python's install prefix... yes
checking whether __attribute__((unused)) is allowed... yes
checking if X11 header files implicitly declare return values... /usr
checking Python's execution prefix... /usr
checking Python's execution prefix... /usr
yes
checking elf.h usability... /usr
no
checking size of wchar_t is 2 bytes... checking Python's configuration directory... (cached) /usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf
checking Python's configuration directory... (cached) /usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf
yes
checking elf.h presence... checking Python3's dll name... libpython3.5m.so.1.0
checking if -pthread should be used... checking Python3's dll name... libpython3.5m.so.1.0
checking if -pthread should be used... yes
checking for elf.h... yes
checking for main in -lelf... no
checking --enable-gui argument... no GUI support
no
checking for CYGWIN or MSYS environment... checking for dirent.h that defines DIR... no
checking whether toupper is broken... yes
checking if compile and link flags for Python 3 are sane... yes
checking if compile and link flags for Python 3 are sane... yes
checking for library containing opendir... no
checking whether __DATE__ and __TIME__ work... yes
checking if -fPIE can be added for Python3... none required
checking stdint.h usability... yes
checking if -fPIE can be added for Python3... yes
checking whether __attribute__((unused)) is allowed... yes
checking stdint.h presence... yes
checking elf.h usability... yes
checking for stdint.h... yes
yes
checking --enable-tclinterp argument... yes
checking --with-tclsh argument... /usr/bin/tclsh
checking for /usr/bin/tclsh... no
checking for tclsh... /usr/bin/tclsh
checking Tcl version... checking stdlib.h usability... 8.6 - OK
yes
checking --enable-tclinterp argument... yes
checking --with-tclsh argument... /usr/bin/tclsh
checking for /usr/bin/tclsh... no
checking for tclsh... /usr/bin/tclsh
checking Tcl version... checking for location of Tcl include... /usr/include/tcl8.6/tcl.h
checking for location of tclConfig.sh script... yes
checking elf.h presence... 8.6 - OK
/usr/lib/tclConfig.sh
yes
checking for elf.h... yes
checking for main in -lelf... yes
checking stdlib.h presence... checking for location of Tcl include... /usr/include/tcl8.6/tcl.h
checking for location of tclConfig.sh script... yes
checking for stdlib.h... yes
/usr/lib/tclConfig.sh
checking string.h usability... no
checking --enable-rubyinterp argument... yes
checking --with-ruby-command argument... checking for dirent.h that defines DIR... defaulting to ruby
checking for ruby... /usr/bin/ruby
checking Ruby version... checking --enable-rubyinterp argument... yes
yes
checking string.h presence... checking --with-ruby-command argument... defaulting to ruby
checking for ruby... /usr/bin/ruby
checking Ruby version... yes
checking for string.h... yes
yes
checking sys/select.h usability... checking for library containing opendir... OK
checking Ruby rbconfig... yes
checking sys/select.h presence... OK
checking Ruby rbconfig... yes
checking for sys/select.h... yes
checking sys/utsname.h usability... none required
checking stdint.h usability... RbConfig
checking Ruby header files... yes
yes
checking sys/utsname.h presence... checking stdint.h presence... RbConfig
checking Ruby header files... yes
checking for stdint.h... yes
yes
checking for sys/utsname.h... yes
checking termcap.h usability... checking stdlib.h usability... yes
checking stdlib.h presence... no
checking termcap.h presence... yes
checking for stdlib.h... yes
no
checking for termcap.h... no
checking fcntl.h usability... checking string.h usability... /usr/include/ruby-2.3.0
/usr/include/ruby-2.3.0
yes
checking fcntl.h presence... yes
checking string.h presence... yes
checking for string.h... yes
yes
checking for fcntl.h... yes
checking sys/select.h usability... checking sgtty.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/utsname.h usability... yes
checking sys/utsname.h presence... yes
checking for sys/utsname.h... yes
checking termcap.h usability... yes
checking sgtty.h presence... no
checking termcap.h presence... no
checking for termcap.h... no
checking fcntl.h usability... yes
checking for sgtty.h... yes
checking sys/ioctl.h usability... yes
checking fcntl.h presence... yes
checking sys/ioctl.h presence... yes
checking for fcntl.h... yes
yes
checking for sys/ioctl.h... yes
checking sgtty.h usability... checking sys/time.h usability... yes
checking sgtty.h presence... yes
checking sys/time.h presence... yes
checking for sgtty.h... yes
checking sys/ioctl.h usability... yes
checking for sys/time.h... yes
checking sys/types.h usability... yes
checking sys/ioctl.h presence... yes
checking sys/types.h presence... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking for sys/types.h... yes
checking termio.h usability... yes
checking sys/time.h presence... checking --enable-cscope argument... yes
checking --enable-workshop argument... no
checking --disable-netbeans argument... no
checking --disable-channel argument... no
checking for socket in -lsocket... yes
checking for sys/time.h... yes
yes
checking termio.h presence... checking sys/types.h usability... yes
checking for termio.h... yes
checking iconv.h usability... checking --enable-cscope argument... yes
checking --enable-workshop argument... no
checking --disable-netbeans argument... no
checking --disable-channel argument... no
checking for socket in -lsocket... no
checking for gethostbyname in -lnsl... yes
checking sys/types.h presence... yes
checking for sys/types.h... yes
yes
checking iconv.h presence... no
checking for gethostbyname in -lnsl... checking termio.h usability... yes
checking for iconv.h... yes
checking inttypes.h usability... yes
checking whether compiling with process communication is possible... yes
checking termio.h presence... yes
checking for termio.h... yes
yes
checking whether compiling with process communication is possible... yes
checking inttypes.h presence... checking iconv.h usability... yes
checking for inttypes.h... yes
checking langinfo.h usability... yes
checking iconv.h presence... yes
yes
checking for iconv.h... checking --enable-multibyte argument... yes
yes
checking --enable-hangulinput argument... no
checking --enable-xim argument... yes
checking --enable-fontset argument... no
checking for xmkmf... no
checking for X... checking inttypes.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking math.h usability... yes
checking --enable-multibyte argument... yes
checking --enable-hangulinput argument... no
checking --enable-xim argument... yes
checking --enable-fontset argument... no
checking for xmkmf... no
checking for X... yes
checking inttypes.h presence... yes
checking for inttypes.h... yes
checking langinfo.h usability... yes
checking math.h presence... yes
checking for math.h... yes
libraries , headers 
yes
checking langinfo.h presence... checking unistd.h usability... yes
checking for langinfo.h... yes
checking math.h usability... libraries , headers 
yes
checking unistd.h presence... checking for gethostbyname... yes
checking for unistd.h... yes
checking stropts.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking for gethostbyname... checking unistd.h usability... yes
checking stropts.h presence... yes
checking for connect... yes
checking for stropts.h... yes
checking errno.h usability... yes
checking unistd.h presence... yes
checking for connect... yes
checking for unistd.h... yes
checking stropts.h usability... yes
checking for remove... yes
checking errno.h presence... yes
checking for errno.h... yes
checking sys/resource.h usability... yes
checking stropts.h presence... yes
checking for remove... yes
checking for stropts.h... yes
checking errno.h usability... yes
checking for shmat... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking sys/systeminfo.h usability... yes
checking for shmat... yes
checking errno.h presence... yes
checking for errno.h... yes
checking sys/resource.h usability... yes
checking for IceConnectionNumber in -lICE... no
checking sys/systeminfo.h presence... no
checking for sys/systeminfo.h... no
checking locale.h usability... yes
checking for IceConnectionNumber in -lICE... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking sys/systeminfo.h usability... yes
checking if X11 header files can be found... yes
checking locale.h presence... yes
checking for locale.h... yes
yes
checking sys/stream.h usability... checking if X11 header files can be found... no
checking sys/systeminfo.h presence... no
checking for sys/systeminfo.h... no
checking locale.h usability... yes
checking for _XdmcpAuthDoIt in -lXdmcp... no
checking sys/stream.h presence... no
checking for sys/stream.h... no
checking termios.h usability... yes
checking for _XdmcpAuthDoIt in -lXdmcp... yes
checking locale.h presence... yes
checking for locale.h... yes
checking sys/stream.h usability... yes
checking for IceOpenConnection in -lICE... yes
checking termios.h presence... yes
checking for termios.h... yes
checking libc.h usability... yes
checking for IceOpenConnection in -lICE... no
checking sys/stream.h presence... no
checking for sys/stream.h... no
checking termios.h usability... yes
checking for XpmCreatePixmapFromData in -lXpm... no
checking libc.h presence... no
checking for libc.h... no
checking sys/statfs.h usability... yes
checking for XpmCreatePixmapFromData in -lXpm... yes
checking termios.h presence... yes
checking for termios.h... yes
checking libc.h usability... yes
checking if X11 header files implicitly declare return values... yes
checking sys/statfs.h presence... yes
checking for sys/statfs.h... yes
checking poll.h usability... yes
checking if X11 header files implicitly declare return values... no
checking libc.h presence... no
checking size of wchar_t is 2 bytes... no
checking for libc.h... no
checking sys/statfs.h usability... no
checking size of wchar_t is 2 bytes... yes
checking poll.h presence... yes
checking for poll.h... yes
yes
checking sys/statfs.h presence... checking sys/poll.h usability... yes
checking for sys/statfs.h... yes
checking poll.h usability... no
checking --enable-gui argument... yes
checking sys/poll.h presence... GTK+ 2.x GUI support
checking --disable-gtktest argument... gtk test enabled
checking for pkg-config... /usr/bin/pkg-config
no
checking --enable-gui argument... yes
checking for sys/poll.h... yes
GTK+ 3.x GUI support
checking --disable-gtktest argument... gtk test enabled
checking for pkg-config... /usr/bin/pkg-config
checking pwd.h usability... checking for GTK - version >= 2.2.0... yes
checking poll.h presence... checking for GTK - version >= 3.0.0... yes
checking for poll.h... yes
checking sys/poll.h usability... yes
checking pwd.h presence... yes
checking sys/poll.h presence... yes
checking for pwd.h... yes
yes
checking for sys/poll.h... yes
checking utime.h usability... checking pwd.h usability... yes
checking utime.h presence... yes
checking for utime.h... yes
yes
checking pwd.h presence... checking sys/param.h usability... yes
checking for pwd.h... yes
checking utime.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking libintl.h usability... yes
checking utime.h presence... yes
checking for utime.h... yes
checking sys/param.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking libgen.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking libintl.h usability... yes
checking libgen.h presence... yes
checking for libgen.h... yes
checking util/debug.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking libgen.h usability... no
checking util/debug.h presence... no
checking for util/debug.h... no
checking util/msg18n.h usability... yes
checking libgen.h presence... yes
checking for libgen.h... yes
checking util/debug.h usability... no
checking util/msg18n.h presence... no
checking for util/msg18n.h... no
checking frame.h usability... no
checking util/debug.h presence... yes; found version 2.24.31
checking version of Gdk-Pixbuf... OK.
checking for glib-compile-resources... /usr/bin/glib-compile-resources
checking glib-compile-resources... usable.
checking --disable-icon-cache-update argument... not set
checking for gtk-update-icon-cache... /usr/bin/gtk-update-icon-cache
checking --disable-desktop-database-update argument... not set
checking for update-desktop-database... no
not found in PATH.
checking X11/SM/SMlib.h usability... no
checking for util/debug.h... no
checking util/msg18n.h usability... no
checking frame.h presence... yes
checking X11/SM/SMlib.h presence... no
checking for frame.h... no
checking sys/acl.h usability... yes
checking for X11/SM/SMlib.h... yes
no
checking util/msg18n.h presence... checking X11/xpm.h usability... no
checking for util/msg18n.h... no
checking frame.h usability... yes; found version 3.22.6
checking version of Gdk-Pixbuf... OK.
checking for glib-compile-resources... /usr/bin/glib-compile-resources
checking glib-compile-resources... usable.
checking --disable-icon-cache-update argument... not set
checking for gtk-update-icon-cache... /usr/bin/gtk-update-icon-cache
checking --disable-desktop-database-update argument... not set
checking for update-desktop-database... no
not found in PATH.
checking X11/SM/SMlib.h usability... yes
checking sys/acl.h presence... yes
checking for sys/acl.h... yes
yes
checking X11/xpm.h presence... no
checking frame.h presence... checking sys/access.h usability... no
checking for frame.h... no
checking sys/acl.h usability... yes
checking X11/SM/SMlib.h presence... yes
checking for X11/xpm.h... yes
checking X11/Sunkeysym.h usability... yes
checking for X11/SM/SMlib.h... yes
checking X11/xpm.h usability... no
checking sys/access.h presence... yes
checking X11/Sunkeysym.h presence... yes
checking sys/acl.h presence... yes
checking for X11/Sunkeysym.h... yes
no
checking for sys/access.h... no
checking sys/sysinfo.h usability... checking for XIMText in X11/Xlib.h... yes
checking for sys/acl.h... yes
yes
checking X11/xpm.h presence... checking sys/access.h usability... yes
checking for CYGWIN or MSYS environment... no
checking whether toupper is broken... yes
checking for X11/xpm.h... yes
checking X11/Sunkeysym.h usability... no
checking sys/access.h presence... yes
checking X11/Sunkeysym.h presence... yes
checking sys/sysinfo.h presence... no
checking for sys/access.h... no
yes
checking for X11/Sunkeysym.h... yes
checking sys/sysinfo.h usability... checking for XIMText in X11/Xlib.h... yes
checking for sys/sysinfo.h... yes
no
checking whether __DATE__ and __TIME__ work... checking wchar.h usability... yes
checking for CYGWIN or MSYS environment... no
checking whether toupper is broken... yes
checking sys/sysinfo.h presence... yes
checking whether __attribute__((unused)) is allowed... yes
checking for sys/sysinfo.h... yes
yes
checking wchar.h presence... checking wchar.h usability... yes
checking for wchar.h... yes
yes
checking elf.h usability... checking wctype.h usability... no
checking whether __DATE__ and __TIME__ work... yes
checking wchar.h presence... yes
checking elf.h presence... yes
checking for wchar.h... yes
yes
checking for elf.h... yes
checking for main in -lelf... yes
checking wctype.h usability... checking whether __attribute__((unused)) is allowed... yes
checking wctype.h presence... yes
checking for wctype.h... yes
checking for sys/ptem.h... yes
checking elf.h usability... no
checking for dirent.h that defines DIR... no
checking for sys/sysctl.h... yes
checking wctype.h presence... yes
checking for wctype.h... yes
yes
checking for sys/ptem.h... checking for library containing opendir... yes
checking elf.h presence... yes
checking for elf.h... yes
checking for main in -lelf... yes
checking for pthread_np.h... no
checking for sys/sysctl.h... none required
no
checking strings.h usability... checking stdint.h usability... no
yes
checking for dirent.h that defines DIR... checking for pthread_np.h... yes
yes
checking strings.h presence... checking for library containing opendir... yes
checking stdint.h presence... no
yes
checking for strings.h... yes
checking strings.h usability... checking if strings.h can be included after string.h... yes
checking for stdint.h... yes
checking stdlib.h usability... yes
checking whether gcc needs -traditional... yes
checking strings.h presence... none required
yes
checking stdlib.h presence... no
checking for an ANSI C-conforming const... checking stdint.h usability... yes
checking for strings.h... yes
checking if strings.h can be included after string.h... yes
checking for stdlib.h... yes
checking string.h usability... yes
checking for working volatile... yes
checking whether gcc needs -traditional... yes
checking stdint.h presence... no
checking for an ANSI C-conforming const... yes
checking for stdint.h... yes
yes
checking for mode_t... checking stdlib.h usability... yes
checking string.h presence... yes
checking for working volatile... yes
checking for string.h... yes
yes
checking stdlib.h presence... checking sys/select.h usability... yes
checking for mode_t... yes
checking for stdlib.h... yes
checking string.h usability... yes
checking sys/select.h presence... yes
checking for off_t... yes
checking for sys/select.h... yes
yes
checking string.h presence... checking sys/utsname.h usability... yes
checking for string.h... yes
checking sys/select.h usability... yes
checking sys/utsname.h presence... yes
checking for off_t... yes
checking for sys/utsname.h... yes
yes
checking sys/select.h presence... checking termcap.h usability... yes
checking for pid_t... yes
checking for sys/select.h... yes
checking sys/utsname.h usability... no
checking termcap.h presence... yes
checking sys/utsname.h presence... no
checking for termcap.h... no
checking fcntl.h usability... yes
checking for sys/utsname.h... yes
yes
checking for pid_t... checking termcap.h usability... yes
checking for size_t... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
no
checking termcap.h presence... checking sgtty.h usability... no
checking for termcap.h... no
checking fcntl.h usability... yes
checking for size_t... yes
checking sgtty.h presence... yes
checking fcntl.h presence... yes
checking for sgtty.h... yes
yes
checking for fcntl.h... yes
checking sys/ioctl.h usability... checking sgtty.h usability... yes
checking for uid_t in sys/types.h... yes
checking for uint32_t... yes
checking sgtty.h presence... yes
checking sys/ioctl.h presence... yes
checking for sgtty.h... yes
yes
checking for sys/ioctl.h... yes
checking sys/ioctl.h usability... checking sys/time.h usability... yes
checking for uid_t in sys/types.h... yes
checking whether time.h and sys/time.h may both be included... yes
checking for uint32_t... yes
checking sys/ioctl.h presence... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/types.h usability... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking for ino_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking sys/types.h presence... yes
checking for sys/types.h... yes
yes
checking sys/time.h presence... yes
checking for ino_t... checking termio.h usability... yes
checking for sys/time.h... yes
checking sys/types.h usability... yes
checking for dev_t... yes
checking termio.h presence... yes
checking for termio.h... yes
yes
checking sys/types.h presence... checking iconv.h usability... yes
checking for sys/types.h... yes
checking termio.h usability... yes
checking for dev_t... yes
checking iconv.h presence... yes
checking termio.h presence... yes
checking for iconv.h... yes
yes
checking for termio.h... yes
checking inttypes.h usability... yes
checking whether byte ordering is bigendian... checking iconv.h usability... yes
checking inttypes.h presence... yes
checking iconv.h presence... yes
checking for iconv.h... yes
yes
checking for inttypes.h... yes
checking inttypes.h usability... yes
checking whether byte ordering is bigendian... checking langinfo.h usability... yes
checking inttypes.h presence... yes
checking langinfo.h presence... no
checking for inline... yes
checking for inttypes.h... yes
yes
checking for langinfo.h... yes
checking langinfo.h usability... checking math.h usability... inline
checking for rlim_t... yes
checking for stack_t... yes
checking langinfo.h presence... yes
checking whether stack_t has an ss_base field... yes
checking math.h presence... no
checking for inline... yes
checking for langinfo.h... yes
checking math.h usability... yes
checking for math.h... yes
inline
checking for rlim_t... no
checking --with-tlib argument... empty: automatic terminal library selection
checking unistd.h usability... checking for tgetent in -ltinfo... yes
checking for stack_t... yes
checking whether stack_t has an ss_base field... yes
checking math.h presence... yes
checking unistd.h presence... yes
checking for unistd.h... yes
yes
checking for math.h... yes
no
checking --with-tlib argument... empty: automatic terminal library selection
checking stropts.h usability... checking unistd.h usability... checking for tgetent in -ltinfo... yes
yes
checking stropts.h presence... yes
checking unistd.h presence... yes
checking for stropts.h... yes
yes
checking errno.h usability... yes
checking for unistd.h... yes
checking stropts.h usability... checking whether we talk terminfo... yes
checking errno.h presence... yes
checking for errno.h... yes
yes
checking stropts.h presence... checking sys/resource.h usability... yes
checking for stropts.h... yes
checking whether we talk terminfo... checking errno.h usability... yes
checking sys/resource.h presence... yes
checking what tgetent() returns for an unknown terminal... yes
checking for sys/resource.h... yes
yes
checking errno.h presence... checking sys/systeminfo.h usability... yes
checking for errno.h... yes
checking sys/resource.h usability... yes
checking what tgetent() returns for an unknown terminal... no
checking sys/systeminfo.h presence... no
checking for sys/systeminfo.h... no
yes
checking sys/resource.h presence... zero
checking whether termcap.h contains ospeed... checking locale.h usability... yes
checking for sys/resource.h... yes
checking sys/systeminfo.h usability... no
checking whether ospeed can be extern... zero
checking whether termcap.h contains ospeed... yes
checking locale.h presence... no
checking whether ospeed can be extern... yes
checking for locale.h... yes
checking sys/stream.h usability... no
checking sys/systeminfo.h presence... no
checking for sys/systeminfo.h... no
checking locale.h usability... yes
checking whether termcap.h contains UP, BC and PC... yes
no
checking whether UP, BC and PC can be extern... no
checking sys/stream.h presence... checking whether termcap.h contains UP, BC and PC... no
checking for sys/stream.h... no
checking termios.h usability... yes
checking locale.h presence... no
checking whether UP, BC and PC can be extern... yes
checking for locale.h... yes
checking sys/stream.h usability... yes
yes
checking termios.h presence... checking whether tputs() uses outfuntype... yes
checking for termios.h... yes
checking libc.h usability... yes
checking whether tputs() uses outfuntype... no
checking sys/stream.h presence... no
checking whether sys/select.h and sys/time.h may both be included... no
checking for sys/stream.h... no
checking termios.h usability... no
checking whether sys/select.h and sys/time.h may both be included... yes
checking for /dev/ptc... no
checking for SVR4 ptys... no
checking libc.h presence... yes
checking for /dev/ptc... no
checking for SVR4 ptys... no
checking for libc.h... no
checking sys/statfs.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking libc.h usability... yes
checking for ptyranges... yes
checking sys/statfs.h presence... don't know
checking default tty permissions/group... yes
checking for ptyranges... yes
checking for sys/statfs.h... yes
checking poll.h usability... don't know
checking default tty permissions/group... no
checking libc.h presence... no
checking for libc.h... no
checking sys/statfs.h usability... yes
checking poll.h presence... yes
checking for poll.h... yes
checking sys/poll.h usability... yes
checking sys/statfs.h presence... yes
checking for sys/statfs.h... yes
can't determine - assume ptys are world accessible
world
checking return type of signal handlers... checking poll.h usability... can't determine - assume ptys are world accessible
world
checking return type of signal handlers... yes
checking sys/poll.h presence... void
checking for struct sigcontext... yes
checking for sys/poll.h... yes
void
checking pwd.h usability... checking for struct sigcontext... yes
checking poll.h presence... yes
checking for poll.h... yes
checking sys/poll.h usability... yes
checking getcwd implementation is broken... yes
checking getcwd implementation is broken... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking utime.h usability... yes
checking sys/poll.h presence... yes
checking for sys/poll.h... yes
checking pwd.h usability... no
checking for fchdir... no
checking for fchdir... yes
checking utime.h presence... yes
checking for utime.h... yes
checking sys/param.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking utime.h usability... yes
checking for fchown... yes
checking for fchown... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
yes
checking utime.h presence... checking libintl.h usability... yes
checking for utime.h... yes
checking sys/param.h usability... yes
checking for fsync... yes
checking for fsync... yes
checking libintl.h presence... yes
checking for libintl.h... yes
yes
checking sys/param.h presence... checking libgen.h usability... yes
checking for sys/param.h... yes
checking libintl.h usability... yes
yes
checking for getcwd... checking for getcwd... yes
checking libgen.h presence... yes
checking for libgen.h... yes
checking util/debug.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking libgen.h usability... yes
yes
checking for getpseudotty... checking for getpseudotty... no
checking util/debug.h presence... no
checking for util/debug.h... no
checking util/msg18n.h usability... yes
checking libgen.h presence... yes
checking for libgen.h... yes
checking util/debug.h usability... no
checking for getpwent... no
no
checking util/msg18n.h presence... checking for getpwent... no
checking for util/msg18n.h... no
checking frame.h usability... no
checking util/debug.h presence... no
checking for util/debug.h... no
checking util/msg18n.h usability... yes
yes
no
checking frame.h presence... checking for getpwnam... checking for getpwnam... no
checking for frame.h... no
checking sys/acl.h usability... no
checking util/msg18n.h presence... no
checking for util/msg18n.h... no
checking frame.h usability... yes
checking sys/acl.h presence... yes
yes
checking for getpwuid... checking for getpwuid... yes
checking for sys/acl.h... yes
checking sys/access.h usability... no
checking frame.h presence... no
checking for frame.h... no
checking sys/acl.h usability... no
checking sys/access.h presence... yes
yes
checking for getrlimit... checking for getrlimit... no
checking for sys/access.h... no
checking sys/sysinfo.h usability... yes
checking sys/acl.h presence... yes
checking for sys/acl.h... yes
checking sys/access.h usability... yes
checking sys/sysinfo.h presence... yes
yes
yes
checking for sys/sysinfo.h... yes
checking for gettimeofday... checking for gettimeofday... checking wchar.h usability... no
checking sys/access.h presence... no
checking for sys/access.h... no
checking sys/sysinfo.h usability... yes
checking wchar.h presence... yes
yes
yes
checking for getwd... checking for wchar.h... yes
checking for getwd... checking wctype.h usability... yes
checking sys/sysinfo.h presence... yes
checking for sys/sysinfo.h... yes
checking wchar.h usability... yes
checking wctype.h presence... yes
checking for wctype.h... yes
yes
yes
checking for sys/ptem.h... checking for lstat... checking for lstat... yes
checking wchar.h presence... no
checking for sys/sysctl.h... yes
checking for wchar.h... yes
checking wctype.h usability... yes
checking for pthread_np.h... yes
yes
checking for memset... checking for memset... yes
checking wctype.h presence... no
checking strings.h usability... yes
checking for wctype.h... yes
checking for sys/ptem.h... no
checking for sys/sysctl.h... yes
yes
yes
checking strings.h presence... checking for mkdtemp... checking for mkdtemp... yes
checking for strings.h... yes
checking if strings.h can be included after string.h... yes
checking for pthread_np.h... yes
checking whether gcc needs -traditional... no
checking strings.h usability... yes
no
checking for an ANSI C-conforming const... yes
checking for nanosleep... checking for nanosleep... yes
checking for working volatile... yes
checking strings.h presence... yes
checking for strings.h... yes
checking if strings.h can be included after string.h... yes
checking for mode_t... yes
yes
checking for opendir... checking for opendir... yes
checking whether gcc needs -traditional... no
checking for an ANSI C-conforming const... yes
checking for working volatile... yes
yes
checking for putenv... checking for putenv... yes
checking for off_t... yes
checking for mode_t... yes
yes
checking for qsort... checking for qsort... yes
checking for pid_t... yes
yes
yes
checking for off_t... checking for readlink... checking for readlink... yes
yes
checking for select... checking for select... yes
checking for size_t... yes
checking for pid_t... yes
yes
checking for setenv... checking for setenv... yes
checking for uid_t in sys/types.h... yes
checking for uint32_t... yes
yes
yes
checking for size_t... checking for setpgid... checking for setpgid... yes
checking whether time.h and sys/time.h may both be included... yes
yes
checking for setsid... checking for setsid... yes
checking for ino_t... yes
checking for uid_t in sys/types.h... yes
checking for uint32_t... yes
yes
checking for sigaltstack... checking for sigaltstack... yes
checking whether time.h and sys/time.h may both be included... yes
checking for dev_t... yes
checking for ino_t... yes
yes
checking for sigstack... checking for sigstack... yes
yes
yes
checking whether byte ordering is bigendian... checking for sigset... checking for sigset... yes
checking for dev_t... yes
yes
checking for sigsetjmp... checking for sigsetjmp... no
checking for inline... inline
checking for rlim_t... yes
checking whether byte ordering is bigendian... yes
checking for stack_t... no
checking for sigaction... no
checking for sigaction... yes
checking whether stack_t has an ss_base field... no
checking --with-tlib argument... empty: automatic terminal library selection
checking for tgetent in -ltinfo... yes
yes
checking for sigprocmask... checking for sigprocmask... no
checking for inline... inline
checking for rlim_t... yes
yes
checking for stack_t... yes
yes
checking for sigvec... checking for sigvec... yes
checking whether stack_t has an ss_base field... no
checking --with-tlib argument... empty: automatic terminal library selection
checking for tgetent in -ltinfo... checking whether we talk terminfo... no
no
checking for strcasecmp... checking for strcasecmp... yes
yes
yes
checking for strerror... checking for strerror... yes
checking what tgetent() returns for an unknown terminal... checking whether we talk terminfo... yes
yes
checking for strftime... checking for strftime... zero
checking whether termcap.h contains ospeed... no
checking whether ospeed can be extern... yes
yes
yes
checking what tgetent() returns for an unknown terminal... checking for stricmp... checking for stricmp... yes
checking whether termcap.h contains UP, BC and PC... no
checking whether UP, BC and PC can be extern... no
no
checking for strncasecmp... zero
checking whether termcap.h contains ospeed... checking for strncasecmp... no
checking whether ospeed can be extern... yes
checking whether tputs() uses outfuntype... no
checking whether sys/select.h and sys/time.h may both be included... yes
yes
checking for strnicmp... checking for strnicmp... yes
checking whether termcap.h contains UP, BC and PC... yes
checking for /dev/ptc... no
checking for SVR4 ptys... no
checking whether UP, BC and PC can be extern... no
no
checking for strpbrk... checking for strpbrk... yes
checking for ptyranges... don't know
checking default tty permissions/group... yes
checking whether tputs() uses outfuntype... no
checking whether sys/select.h and sys/time.h may both be included... yes
yes
checking for strtol... checking for strtol... yes
checking for /dev/ptc... no
checking for SVR4 ptys... can't determine - assume ptys are world accessible
world
checking return type of signal handlers... yes
yes
checking for tgetent... checking for tgetent... yes
checking for ptyranges... void
checking for struct sigcontext... don't know
checking default tty permissions/group... yes
checking getcwd implementation is broken... yes
yes
checking for towlower... checking for towlower... can't determine - assume ptys are world accessible
world
checking return type of signal handlers... no
checking for fchdir... yes
yes
checking for towupper... checking for towupper... void
checking for struct sigcontext... yes
yes
checking getcwd implementation is broken... checking for fchown... yes
yes
checking for iswupper... checking for iswupper... yes
no
checking for fchdir... checking for fsync... yes
yes
checking for usleep... checking for usleep... yes
yes
yes
checking for fchown... checking for getcwd... yes
checking for utime... checking for utime... yes
yes
yes
checking for fsync... yes
checking for utimes... checking for getpseudotty... checking for utimes... yes
yes
checking for _LARGEFILE_SOURCE value needed for large files... yes
checking for getcwd... no
checking for getpwent... checking for _LARGEFILE_SOURCE value needed for large files... yes
yes
no
checking for getpseudotty... checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... checking for getpwnam... 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 st_blksize... yes
no
64
checking for getpwuid... checking for st_blksize... checking for getpwent... yes
checking whether stat() ignores a trailing slash... yes
checking whether stat() ignores a trailing slash... yes
yes
checking for getrlimit... checking for getpwnam... no
checking for iconv_open()... no
checking for iconv_open()... yes
yes
checking for gettimeofday... checking for getpwuid... yes
checking for nl_langinfo(CODESET)... yes
yes
yes
checking for getwd... checking for getrlimit... checking for nl_langinfo(CODESET)... yes
checking for strtod in -lm... yes
yes
yes
checking for strtod in -lm... checking for gettimeofday... checking for lstat... yes
checking for strtod() and other floating point functions... yes
checking for strtod() and other floating point functions... yes
yes
checking for getwd... checking for memset... yes
yes
yes
checking for isinf()... checking for lstat... checking for mkdtemp... yes
checking for isinf()... yes
yes
checking for memset... checking for nanosleep... yes
checking for isnan()... yes
checking for isnan()... yes
yes
checking for opendir... checking for mkdtemp... yes
checking --disable-acl argument... no
checking for acl_get_file in -lposix1e... yes
checking --disable-acl argument... no
checking for acl_get_file in -lposix1e... yes
yes
checking for putenv... no
checking for acl_get_file in -lacl... checking for nanosleep... no
checking for acl_get_file in -lacl... yes
yes
checking for fgetxattr in -lattr... yes
checking for qsort... checking for opendir... yes
checking for fgetxattr in -lattr... yes
checking for POSIX ACL support... yes
yes
yes
checking for POSIX ACL support... checking for putenv... checking for readlink... yes
checking for acl_get in -lsec... yes
yes
yes
checking for qsort... checking for select... checking for acl_get in -lsec... no
checking for Solaris ACL support... no
checking for Solaris ACL support... no
checking for AIX ACL support... yes
yes
checking for setenv... checking for readlink... no
checking for AIX ACL support... no
checking --disable-gpm argument... yes
checking --disable-sysmouse argument... no
checking for sysmouse... no
checking --disable-gpm argument... no
checking for gpm... no
checking for FD_CLOEXEC... yes
yes
checking for select... checking for setpgid... yes
checking for rename... yes
checking --disable-sysmouse argument... no
checking for sysmouse... yes
yes
no
checking for FD_CLOEXEC... checking for setenv... checking for setsid... yes
checking for sysctl... yes
checking for rename... not usable
checking for sysinfo... yes
yes
checking for sigaltstack... checking for setpgid... yes
checking for sysinfo.mem_unit... yes
checking for sysctl... yes
checking for sysconf... yes
yes
not usable
checking for sigstack... checking for sysinfo... checking for setsid... yes
checking size of int... yes
checking for sysinfo.mem_unit... yes
yes
checking for sysconf... yes
checking for sigaltstack... checking for sigset... yes
checking size of int... 4
checking size of long... yes
yes
checking for sigstack... checking for sigsetjmp... 4
checking size of long... yes
no
checking for sigset... checking for sigaction... 4
checking size of time_t... yes
yes
checking for sigsetjmp... checking for sigprocmask... 4
checking size of time_t... 4
checking size of off_t... yes
no
checking for sigvec... checking for sigaction... 4
checking size of off_t... yes
no
8
checking for strcasecmp... checking for sigprocmask... checking uint32_t is 32 bits... yes
yes
ok
checking for sigvec... checking whether memmove handles overlaps... checking for strerror... 8
checking uint32_t is 32 bits... yes
no
checking for strcasecmp... checking for strftime... ok
checking whether memmove handles overlaps... yes
checking whether X_LOCALE needed... yes
yes
checking for stricmp... checking for strerror... yes
checking for _xpg4_setrunelocale in -lxpg4... no
checking whether Xutf8SetWMProperties() can be used... yes
no
no
checking how to create tags... checking for strncasecmp... checking for strftime... ctags
checking how to run man with a section nr... man
checking --disable-nls argument... no
checking for msgfmt... msgfmt
checking for NLS... yes
checking for _xpg4_setrunelocale in -lxpg4... yes
yes
gettext() works
checking for stricmp... checking for strnicmp... checking for bind_textdomain_codeset... no
checking how to create tags... ctags
checking how to run man with a section nr... man
checking --disable-nls argument... no
checking for msgfmt... msgfmt
checking for NLS... no
no
yes
checking for strncasecmp... checking for _nl_msg_cat_cntr... checking for strpbrk... gettext() works
checking dlfcn.h usability... yes
yes
yes
checking dlfcn.h usability... checking for strnicmp... checking for strtol... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for dlopen()... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for dlopen()... yes
no
checking for tgetent... no
checking for dlopen() in -ldl... checking for strpbrk... no
checking for dlopen() in -ldl... yes
yes
checking for dlsym()... yes
checking for towlower... checking for strtol... yes
checking for dlsym()... yes
checking setjmp.h usability... yes
yes
checking for tgetent... checking for towupper... yes
checking setjmp.h presence... yes
checking setjmp.h usability... yes
checking for setjmp.h... yes
checking for GCC 3 or later... yes
checking whether we need -D_FORTIFY_SOURCE=1... yes
checking linker --as-needed support... yes
yes
yes
checking for towlower... checking for iswupper... yes
checking setjmp.h presence... configure: updating cache auto/config.cache
yes
checking for setjmp.h... yes
checking for GCC 3 or later... configure: creating auto/config.status
yes
checking whether we need -D_FORTIFY_SOURCE=1... yes
checking linker --as-needed support... yes
yes
yes
checking for usleep... checking for towupper... configure: updating cache auto/config.cache
configure: creating auto/config.status
config.status: creating auto/config.mk
yes
yes
checking for utime... config.status: creating auto/config.h
checking for iswupper... config.status: creating auto/config.mk
config.status: creating auto/config.h
touch configure-stamp-vim-tiny
dh_testdir
yes
yes
checking for utimes... checking for usleep... yes
checking for _LARGEFILE_SOURCE value needed for large files... yes
checking for utime... touch configure-stamp-vim-basic
dh_testdir
yes
no
checking for utimes... checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... *** DEBIAN *** CONFIGURING VARIANT vim-athena
/usr/bin/make -C src shadow SHADOWDIR=vim-athena
64
make[1]: Entering directory '/<<PKGBUILDDIR>>/src'
mkdir vim-athena
checking for st_blksize... cd vim-athena; ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_res.xml ../toolcheck ../proto ../vimtutor ../gvimtutor ../mkinstalldirs .
yes
checking for _LARGEFILE_SOURCE value needed for large files... mkdir vim-athena/auto
cd vim-athena/auto; ln -s ../../auto/configure .
mkdir vim-athena/po
cd vim-athena/po; ln -s ../../po/*.po ../../po/*.mak ../../po/*.vim ../../po/Makefile .
cd vim-athena; rm -f auto/link.sed
*** DEBIAN *** CONFIGURING VARIANT vim-nox
/usr/bin/make -C src shadow SHADOWDIR=vim-nox
cp Makefile configure vim-athena
rm -f vim-athena/auto/config.mk vim-athena/config.mk.dist
cp config.mk.dist vim-athena/auto/config.mk
cp config.mk.dist vim-athena
mkdir vim-athena/xxd
make[1]: Entering directory '/<<PKGBUILDDIR>>/src'
cd vim-athena/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* .
mkdir vim-nox
cd vim-nox; ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_res.xml ../toolcheck ../proto ../vimtutor ../gvimtutor ../mkinstalldirs .
if test -d os_mac_rsrc; then \
	cd vim-athena; \
	ln -s ../infplist.xml .; \
	ln -s ../os_mac_rsrc ../os_mac.rsr.hqx ../dehqx.py .; \
fi
mkdir vim-athena/testdir
cd vim-athena/testdir; ln -s ../../testdir/Makefile \
			 ../../testdir/Make_all.mak \
			 ../../testdir/README.txt \
			 ../../testdir/*.in \
			 ../../testdir/*.vim \
			 ../../testdir/*.py \
			 ../../testdir/python* \
			 ../../testdir/sautest \
			 ../../testdir/samples \
			 ../../testdir/test83-tags? \
			 ../../testdir/*.ok .
mkdir vim-nox/auto
cd vim-nox/auto; ln -s ../../auto/configure .
yes
mkdir vim-nox/po
checking whether stat() ignores a trailing slash... cd vim-nox/po; ln -s ../../po/*.po ../../po/*.mak ../../po/*.vim ../../po/Makefile .
cd vim-nox; rm -f auto/link.sed
cp Makefile configure vim-nox
rm -f vim-nox/auto/config.mk vim-nox/config.mk.dist
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src'
if test -f src/auto/config.cache; then make distclean; fi
cp config.mk.dist vim-nox/auto/config.mk
cd src/vim-athena && LDFLAGS="-Wl,-z,relro -Wl,-z,now" CPPFLAGS="-Wdate-time" CFLAGS="-g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security" ./configure --prefix=/usr --mandir='${prefix}'/share/man --without-local-dir --with-modified-by="pkg-vim-maintainers@lists.alioth.debian.org" --with-compiledby="pkg-vim-maintainers@lists.alioth.debian.org" --enable-fail-if-missing --enable-cscope --enable-gpm --enable-selinux --disable-smack --with-features=huge --enable-multibyte --enable-acl --with-x --enable-xim --enable-gui=athena --disable-gtk2-check --disable-gtk3-check --disable-gnome-check --disable-motif-check --enable-athena-check --enable-fontset --enable-luainterp --disable-mzschemeinterp --enable-perlinterp --enable-python3interp --with-python3-config-dir=/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf --disable-pythoninterp --enable-rubyinterp --enable-tclinterp --with-tclsh=/usr/bin/tclsh
cp config.mk.dist vim-nox
mkdir vim-nox/xxd
cd vim-nox/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* .
if test -d os_mac_rsrc; then \
	cd vim-nox; \
	ln -s ../infplist.xml .; \
	ln -s ../os_mac_rsrc ../os_mac.rsr.hqx ../dehqx.py .; \
fi
mkdir vim-nox/testdir
cd vim-nox/testdir; ln -s ../../testdir/Makefile \
			 ../../testdir/Make_all.mak \
			 ../../testdir/README.txt \
			 ../../testdir/*.in \
			 ../../testdir/*.vim \
			 ../../testdir/*.py \
			 ../../testdir/python* \
			 ../../testdir/sautest \
			 ../../testdir/samples \
			 ../../testdir/test83-tags? \
			 ../../testdir/*.ok .
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src'
if test -f src/auto/config.cache; then make distclean; fi
cd src/vim-nox && LDFLAGS="-Wl,-z,relro -Wl,-z,now" CPPFLAGS="-Wdate-time" CFLAGS="-g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security" ./configure --prefix=/usr --mandir='${prefix}'/share/man --without-local-dir --with-modified-by="pkg-vim-maintainers@lists.alioth.debian.org" --with-compiledby="pkg-vim-maintainers@lists.alioth.debian.org" --enable-fail-if-missing --enable-cscope --enable-gpm --enable-selinux --disable-smack --with-features=huge --enable-multibyte --enable-acl --without-x --enable-gui=no --enable-luainterp --disable-mzschemeinterp --enable-perlinterp --enable-python3interp --with-python3-config-dir=/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf --disable-pythoninterp --enable-rubyinterp --enable-tclinterp --with-tclsh=/usr/bin/tclsh
no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for iconv_open()... 64
checking for st_blksize... yes
checking whether stat() ignores a trailing slash... yes
checking for nl_langinfo(CODESET)... no
checking for iconv_open()... yes
checking for strtod in -lm... configure: creating cache auto/config.cache
checking whether make sets $(MAKE)... configure: creating cache auto/config.cache
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
yes
checking for gcc... gcc
checking whether the C compiler works... checking whether the C compiler works... yes
checking for strtod() and other floating point functions... yes
checking for nl_langinfo(CODESET)... yes
checking for C compiler default output file name... a.out
yes
checking for suffix of executables... checking for C compiler default output file name... a.out
checking for suffix of executables... yes
checking for isinf()... yes
checking for strtod in -lm... 

checking whether we are cross compiling... checking whether we are cross compiling... yes
checking for strtod() and other floating point functions... no
no
checking for suffix of object files... checking for suffix of object files... yes
checking for isnan()... o
checking whether we are using the GNU C compiler... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... yes
checking for gcc option to accept ISO C89... yes
checking for isinf()... yes
checking --disable-acl argument... no
checking for acl_get_file in -lposix1e... none needed
checking how to run the C preprocessor... none needed
checking how to run the C preprocessor... gcc -E
gcc -E
no
checking for acl_get_file in -lacl... checking for grep that handles long lines and -e... checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep
checking for egrep... /bin/grep -E
/bin/grep -E
checking for fgrep... yes
/bin/grep -F
checking for library containing strerror... checking for fgrep... checking for isnan()... /bin/grep -F
checking for library containing strerror... yes
checking for fgetxattr in -lattr... none required
checking for gawk... no
checking for mawk... none required
mawk
checking for strip... checking for gawk... strip
no
checking for ANSI C header files... checking for mawk... mawk
checking for strip... strip
checking for ANSI C header files... yes
checking --disable-acl argument... no
checking for acl_get_file in -lposix1e... yes
checking for POSIX ACL support... no
checking for acl_get_file in -lacl... yes
checking for acl_get in -lsec... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for fgetxattr in -lattr... no
checking for Solaris ACL support... yes
yes
checking --enable-fail-if-missing argument... yes
checking --enable-fail-if-missing argument... yes
checking for recent clang version... checking for recent clang version... no
configure: checking for buggy tools...
no
configure: checking for buggy tools...
checking for BeOS... checking for BeOS... no
checking for QNX... no
checking for QNX... no
checking for Darwin (Mac OS X)... no
checking for Darwin (Mac OS X)... no
checking AvailabilityMacros.h usability... no
checking AvailabilityMacros.h usability... no
checking for AIX ACL support... yes
checking for POSIX ACL support... no
checking AvailabilityMacros.h presence... no
no
checking AvailabilityMacros.h presence... checking for pango_shape_full... no
checking for AvailabilityMacros.h... no
checking --with-local-dir argument... no
checking --with-vim-name argument... Defaulting to vim
checking --with-ex-name argument... Defaulting to ex
checking --with-view-name argument... Defaulting to view
no
checking for AvailabilityMacros.h... checking --with-global-runtime argument... no
no
checking --with-modified-by argument... checking --with-local-dir argument... pkg-vim-maintainers@lists.alioth.debian.org
no
checking --with-vim-name argument... Defaulting to vim
checking --with-ex-name argument... Defaulting to ex
checking --with-view-name argument... Defaulting to view
checking --with-global-runtime argument... no
checking if character set is EBCDIC... checking --with-modified-by argument... pkg-vim-maintainers@lists.alioth.debian.org
checking if character set is EBCDIC... no
no
checking --disable-smack argument... yes
checking --disable-selinux argument... no
checking for is_selinux_enabled in -lselinux... checking --disable-smack argument... yes
checking --disable-selinux argument... no
checking for is_selinux_enabled in -lselinux... yes
checking for acl_get in -lsec... no
checking for Solaris ACL support... yes
checking --with-features argument... huge
yes
checking --with-features argument... checking --with-compiledby argument... huge
pkg-vim-maintainers@lists.alioth.debian.org
checking --disable-xsmp argument... checking --with-compiledby argument... pkg-vim-maintainers@lists.alioth.debian.org
no
checking --disable-xsmp-interact argument... checking --disable-xsmp argument... no
checking --enable-luainterp argument... no
yes
checking --disable-xsmp-interact argument... no
checking --enable-luainterp argument... yes
checking --with-lua-prefix argument... checking --with-lua-prefix argument... no
no
checking LUA_PREFIX environment var... not set, default to /usr
checking --with-luajit... no
checking LUA_PREFIX environment var... checking for lua... not set, default to /usr
checking --with-luajit... no
/usr/bin/lua
checking Lua version... checking for lua... /usr/bin/lua
checking Lua version... 5.2
checking if lua.h can be found in /usr/include... no
checking if lua.h can be found in /usr/include/lua5.2... yes
checking if link with -L/usr/lib -llua5.2 is sane... 5.2
checking if lua.h can be found in /usr/include... no
checking if lua.h can be found in /usr/include/lua5.2... yes
checking if link with -L/usr/lib -llua5.2 is sane... no
checking for AIX ACL support... no
yes
yes
checking for pango_shape_full... checking --enable-mzschemeinterp argument... no
checking --enable-mzschemeinterp argument... no
checking --enable-perlinterp argument... yes
checking --enable-perlinterp argument... yes
checking for perl... /usr/bin/perl
checking for perl... checking Perl version... /usr/bin/perl
checking Perl version... OK
OK
checking if compile and link flags for Perl are sane... checking if compile and link flags for Perl are sane... yes
checking --disable-gpm argument... no
checking for gpm... yes
yes
checking --enable-pythoninterp argument... no
checking --enable-python3interp argument... yes
checking --enable-pythoninterp argument... no
checking for python3... /usr/bin/python3
checking Python version... checking --enable-python3interp argument... yes
checking for python3... /usr/bin/python3
checking Python version... 3.5
checking Python is 3.0 or better... 3.5
checking Python is 3.0 or better... yep
checking Python's abiflags... yes
checking --disable-sysmouse argument... no
checking for sysmouse... yep
checking Python's abiflags... no
checking for FD_CLOEXEC... yes
m
checking Python's install prefix... checking for rename... m
checking Python's install prefix... /usr
checking Python's execution prefix... /usr
checking Python's execution prefix... /usr
/usr
yes
checking for sysctl... checking Python's configuration directory... (cached) /usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf
checking Python's configuration directory... (cached) /usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf
yes
checking --disable-gpm argument... no
checking for gpm... not usable
checking for sysinfo... checking Python3's dll name... libpython3.5m.so.1.0
checking if -pthread should be used... checking Python3's dll name... libpython3.5m.so.1.0
checking if -pthread should be used... yes
checking for sysinfo.mem_unit... yes
checking --disable-sysmouse argument... no
checking for sysmouse... yes
yes
checking for sysconf... checking if compile and link flags for Python 3 are sane... yes
checking if compile and link flags for Python 3 are sane... no
checking for FD_CLOEXEC... yes
checking size of int... yes
checking for rename... yes
checking if -fPIE can be added for Python3... yes
checking if -fPIE can be added for Python3... yes
checking for sysctl... 4
checking size of long... yes
checking --enable-tclinterp argument... yes
checking --with-tclsh argument... /usr/bin/tclsh
checking for /usr/bin/tclsh... no
checking for tclsh... /usr/bin/tclsh
checking Tcl version... yes
checking --enable-tclinterp argument... yes
checking --with-tclsh argument... /usr/bin/tclsh
checking for /usr/bin/tclsh... no
checking for tclsh... /usr/bin/tclsh
checking Tcl version... not usable
checking for sysinfo... 8.6 - OK
8.6 - OK
checking for location of Tcl include... /usr/include/tcl8.6/tcl.h
checking for location of tclConfig.sh script... checking for location of Tcl include... /usr/include/tcl8.6/tcl.h
checking for location of tclConfig.sh script... /usr/lib/tclConfig.sh
/usr/lib/tclConfig.sh
yes
checking for sysinfo.mem_unit... yes
checking for sysconf... 4
checking --enable-rubyinterp argument... yes
checking size of time_t... checking --with-ruby-command argument... defaulting to ruby
checking for ruby... /usr/bin/ruby
checking Ruby version... checking --enable-rubyinterp argument... yes
checking --with-ruby-command argument... defaulting to ruby
checking for ruby... /usr/bin/ruby
checking Ruby version... yes
checking size of int... OK
checking Ruby rbconfig... OK
checking Ruby rbconfig... 4
checking size of off_t... RbConfig
checking Ruby header files... 4
checking size of long... RbConfig
checking Ruby header files... 8
checking uint32_t is 32 bits... /usr/include/ruby-2.3.0
4
checking size of time_t... /usr/include/ruby-2.3.0
ok
checking whether memmove handles overlaps... 4
checking size of off_t... yes
checking whether X_LOCALE needed... 8
checking uint32_t is 32 bits... no
checking whether Xutf8SetWMProperties() can be used... ok
checking whether memmove handles overlaps... yes
checking for _xpg4_setrunelocale in -lxpg4... yes
checking whether X_LOCALE needed... no
checking how to create tags... ctags
checking how to run man with a section nr... man
checking --disable-nls argument... no
checking for msgfmt... msgfmt
checking for NLS... checking --enable-cscope argument... yes
checking --enable-workshop argument... no
checking --disable-netbeans argument... no
checking --disable-channel argument... no
checking for socket in -lsocket... checking --enable-cscope argument... yes
checking --enable-workshop argument... no
checking --disable-netbeans argument... no
checking --disable-channel argument... no
checking for socket in -lsocket... gettext() works
checking for bind_textdomain_codeset... no
checking whether Xutf8SetWMProperties() can be used... no
checking for gethostbyname in -lnsl... no
checking for gethostbyname in -lnsl... yes
checking for _nl_msg_cat_cntr... yes
checking for _xpg4_setrunelocale in -lxpg4... yes
checking whether compiling with process communication is possible... yes
checking whether compiling with process communication is possible... no
checking how to create tags... yes
checking dlfcn.h usability... ctags
checking how to run man with a section nr... man
checking --disable-nls argument... no
checking for msgfmt... msgfmt
checking for NLS... yes
checking --enable-multibyte argument... yes
checking --enable-hangulinput argument... no
checking --enable-xim argument... defaulting to auto
checking --enable-fontset argument... no
yes
checking --enable-multibyte argument... yes
checking --enable-hangulinput argument... no
checking --enable-xim argument... yes
checking --enable-fontset argument... yes
defaulting to: don't HAVE_X11
checking --enable-gui argument... no GUI support
checking for xmkmf... no
checking for X... checking X11/SM/SMlib.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for dlopen()... gettext() works
checking for bind_textdomain_codeset... yes
checking X11/SM/SMlib.h presence... yes
checking for X11/SM/SMlib.h... yes
checking for CYGWIN or MSYS environment... no
checking whether toupper is broken... no
checking for dlopen() in -ldl... yes
checking for _nl_msg_cat_cntr... libraries , headers 
yes
no
checking whether __DATE__ and __TIME__ work... checking for dlsym()... yes
checking dlfcn.h usability... checking for gethostbyname... yes
checking whether __attribute__((unused)) is allowed... yes
checking setjmp.h usability... yes
yes
checking dlfcn.h presence... checking elf.h usability... yes
checking for dlfcn.h... yes
checking for dlopen()... yes
checking for connect... yes
checking elf.h presence... yes
checking setjmp.h presence... yes
checking for setjmp.h... yes
yes
checking for elf.h... yes
checking for main in -lelf... checking for GCC 3 or later... yes
checking whether we need -D_FORTIFY_SOURCE=1... yes
checking linker --as-needed support... yes
no
checking for dlopen() in -ldl... yes
checking for remove... no
checking for dirent.h that defines DIR... configure: updating cache auto/config.cache
configure: creating auto/config.status
yes
yes
checking for library containing opendir... checking for dlsym()... yes
checking for shmat... none required
checking stdint.h usability... yes
checking for IceConnectionNumber in -lICE... config.status: creating auto/config.mk
yes
checking setjmp.h usability... config.status: creating auto/config.h
yes
checking stdint.h presence... yes
checking for stdint.h... yes
yes
checking setjmp.h presence... checking stdlib.h usability... yes
yes
checking for setjmp.h... yes
checking for GCC 3 or later... yes
checking whether we need -D_FORTIFY_SOURCE=1... checking if X11 header files can be found... yes
checking linker --as-needed support... yes
touch configure-stamp-vim-gtk
dh_testdir
yes
checking stdlib.h presence... yes
checking for stdlib.h... yes
checking string.h usability... yes
configure: updating cache auto/config.cache
checking for _XdmcpAuthDoIt in -lXdmcp... configure: creating auto/config.status
yes
checking string.h presence... yes
checking for string.h... yes
checking sys/select.h usability... yes
checking for IceOpenConnection in -lICE... yes
checking sys/select.h presence... config.status: creating auto/config.mk
dh_prep -p vim
yes
checking for sys/select.h... yes
checking sys/utsname.h usability... config.status: creating auto/config.h
yes
checking for XpmCreatePixmapFromData in -lXpm... *** DEBIAN *** BUILDING VARIANT vim-basic
/usr/bin/make -C src/vim-basic
make[1]: Entering directory '/<<PKGBUILDDIR>>/src/vim-basic'
yes
checking sys/utsname.h presence... mkdir -p objects
touch objects/.dirstamp
CC="gcc -Iproto -DHAVE_CONFIG_H   -Wdate-time    " srcdir=. sh ./osdef.sh
yes
checking for sys/utsname.h... yes
checking termcap.h usability... touch configure-stamp-vim-gtk3
creating auto/pathdef.c
dh_testdir
yes
checking if X11 header files implicitly declare return values... no
checking termcap.h presence... no
checking for termcap.h... no
checking fcntl.h usability... no
checking size of wchar_t is 2 bytes... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sgtty.h usability... cd xxd; CC="gcc" CFLAGS="-Wdate-time -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1" LDFLAGS="-Wl,-z,relro -Wl,-z,now -Wl,--as-needed" \
	/usr/bin/make -f Makefile
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-basic/xxd'
gcc -Wdate-time -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -DUNIX -o xxd xxd.c
dh_prep -p vim-tiny
no
checking --enable-gui argument... Athena GUI support
yes
checking sgtty.h presence... checking if Athena header files can be found... yes
checking for sgtty.h... yes
checking sys/ioctl.h usability... *** DEBIAN *** BUILDING VARIANT vim-tiny
/usr/bin/make -C src/vim-tiny
make[1]: Entering directory '/<<PKGBUILDDIR>>/src/vim-tiny'
mkdir -p objects
touch objects/.dirstamp
CC="gcc -Iproto -DHAVE_CONFIG_H   -Wdate-time    " srcdir=. sh ./osdef.sh
yes
yes
checking sys/ioctl.h presence... checking for XShapeQueryExtension in -lXext... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for wslen in -lw... yes
checking for sys/time.h... yes
checking sys/types.h usability... no
checking for dlsym in -ldl... yes
checking sys/types.h presence... yes
checking for sys/types.h... yes
checking termio.h usability... yes
checking for XmuCreateStippledPixmap in -lXmu... yes
checking termio.h presence... yes
checking for termio.h... yes
checking iconv.h usability... creating auto/pathdef.c
yes
checking iconv.h presence... yes
checking for extra X11 defines... yes
checking for iconv.h... yes
no
checking X11/SM/SMlib.h usability... gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/popupmnu.o popupmnu.c
checking inttypes.h usability... yes
checking X11/SM/SMlib.h presence... yes
checking inttypes.h presence... yes
checking for X11/SM/SMlib.h... yes
checking X11/xpm.h usability... yes
checking for inttypes.h... yes
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking X11/xpm.h presence... yes
checking for langinfo.h... yes
checking math.h usability... yes
checking for X11/xpm.h... yes
checking X11/Sunkeysym.h usability... make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-basic/xxd'
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-basic/po'
OLD_PO_FILE_INPUT=yes msgfmt -v -o af.mo af.po
1423 translated messages.
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/quickfix.o quickfix.c
OLD_PO_FILE_INPUT=yes msgfmt -v -o ca.mo ca.po
1697 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o cs.mo cs.po
yes
checking X11/Sunkeysym.h presence... yes
checking math.h presence... yes
checking for X11/Sunkeysym.h... yes
1284 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o de.mo de.po
checking for XIMText in X11/Xlib.h... yes
checking for X11/Xmu/Editres.h... 1701 translated messages.
yes
checking for math.h... yes
OLD_PO_FILE_INPUT=yes msgfmt -v -o en_GB.mo en_GB.po
78 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o eo.mo eo.po
checking unistd.h usability... 1916 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o es.mo es.po
1733 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o fi.mo fi.po
yes
checking unistd.h presence... yes
1902 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o fr.mo fr.po
checking for CYGWIN or MSYS environment... no
checking whether toupper is broken... yes
checking for unistd.h... yes
checking stropts.h usability... 1916 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ga.mo ga.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/regexp.o regexp.c
1914 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o it.mo it.po
1897 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.mo ja.po
yes
checking stropts.h presence... yes
checking for stropts.h... yes
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ko.mo ko.po
checking errno.h usability... no
checking whether __DATE__ and __TIME__ work... 1728 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ko.UTF-8.mo ko.UTF-8.po
1728 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o nb.mo nb.po
yes
checking whether __attribute__((unused)) is allowed... 1668 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o nl.mo nl.po
yes
checking errno.h presence... yes
checking for errno.h... yes
1213 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o no.mo no.po
checking sys/resource.h usability... yes
1668 translated messages.
checking elf.h usability... OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.mo pl.po
1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pt_BR.mo pt_BR.po
1735 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ru.mo ru.po
yes
checking sys/resource.h presence... yes
checking elf.h presence... yes
checking for sys/resource.h... yes
1882 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sk.mo sk.po
checking sys/systeminfo.h usability... yes
checking for elf.h... yes
checking for main in -lelf... 1628 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sv.mo sv.po
1697 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o uk.mo uk.po
no
checking for dirent.h that defines DIR... no
checking sys/systeminfo.h presence... 1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o vi.mo vi.po
no
checking for sys/systeminfo.h... no
checking locale.h usability... 1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.UTF-8.mo zh_CN.UTF-8.po
yes
1634 translated messages, 3 fuzzy translations.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.mo zh_CN.po
checking for library containing opendir... 1633 translated messages, 3 fuzzy translations.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_TW.UTF-8.mo zh_TW.UTF-8.po
1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_TW.mo zh_TW.po
yes
checking locale.h presence... 1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o cs.cp1250.mo cs.cp1250.po
yes
checking for locale.h... yes
checking sys/stream.h usability... 1284 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.sjis.mo ja.sjis.po
none required
checking stdint.h usability... 1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.euc-jp.mo ja.euc-jp.po
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.cp1250.mo pl.cp1250.po
no
checking sys/stream.h presence... yes
checking stdint.h presence... 1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.UTF-8.mo pl.UTF-8.po
no
checking for sys/stream.h... no
yes
checking for stdint.h... yes
checking termios.h usability... checking stdlib.h usability... 1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ru.cp1251.mo ru.cp1251.po
1882 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sk.cp1250.mo sk.cp1250.po
1628 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o uk.cp1251.mo uk.cp1251.po
yes
checking stdlib.h presence... yes
checking termios.h presence... yes
checking for termios.h... yes
1918 translated messages.
yes
checking for stdlib.h... yes
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.cp936.mo zh_CN.cp936.po
checking libc.h usability... checking string.h usability... 1633 translated messages, 3 fuzzy translations.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-basic/po'
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-basic/po'
make[2]: Nothing to be done for 'converted'.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-basic/po'
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/arabic.o arabic.c
yes
checking string.h presence... no
checking libc.h presence... yes
checking for string.h... yes
checking sys/select.h usability... no
checking for libc.h... no
checking sys/statfs.h usability... yes
checking sys/select.h presence... yes
checking sys/statfs.h presence... yes
checking for sys/select.h... yes
yes
checking for sys/statfs.h... yes
checking sys/utsname.h usability... checking poll.h usability... yes
checking sys/utsname.h presence... yes
checking for sys/utsname.h... yes
yes
checking poll.h presence... checking termcap.h usability... yes
checking for poll.h... yes
checking sys/poll.h usability... no
checking termcap.h presence... no
checking for termcap.h... no
yes
checking sys/poll.h presence... checking fcntl.h usability... yes
checking for sys/poll.h... yes
checking pwd.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sgtty.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/buffer.o buffer.c
checking utime.h usability... yes
checking sgtty.h presence... yes
checking for sgtty.h... yes
checking sys/ioctl.h usability... yes
checking utime.h presence... yes
checking for utime.h... yes
checking sys/param.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking libintl.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/types.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
yes
checking sys/types.h presence... checking libgen.h usability... yes
checking for sys/types.h... yes
checking termio.h usability... yes
checking libgen.h presence... yes
checking for libgen.h... yes
yes
checking termio.h presence... checking util/debug.h usability... yes
checking for termio.h... yes
checking iconv.h usability... no
checking util/debug.h presence... yes
checking iconv.h presence... no
checking for util/debug.h... no
checking util/msg18n.h usability... yes
checking for iconv.h... yes
checking inttypes.h usability... no
checking util/msg18n.h presence... yes
checking inttypes.h presence... no
checking for util/msg18n.h... no
checking frame.h usability... yes
checking for inttypes.h... yes
checking langinfo.h usability... no
checking frame.h presence... yes
checking langinfo.h presence... no
checking for frame.h... no
yes
checking for langinfo.h... yes
checking sys/acl.h usability... checking math.h usability... yes
checking sys/acl.h presence... yes
checking for sys/acl.h... yes
yes
checking math.h presence... checking sys/access.h usability... yes
checking for math.h... yes
checking unistd.h usability... no
checking sys/access.h presence... no
checking for sys/access.h... no
checking sys/sysinfo.h usability... yes
checking unistd.h presence... yes
checking for unistd.h... yes
checking stropts.h usability... yes
checking sys/sysinfo.h presence... yes
checking for sys/sysinfo.h... yes
checking wchar.h usability... yes
checking stropts.h presence... yes
checking for stropts.h... yes
checking errno.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
yes
checking errno.h presence... checking wctype.h usability... yes
checking for errno.h... yes
checking sys/resource.h usability... yes
checking wctype.h presence... yes
checking sys/resource.h presence... yes
checking for wctype.h... yes
checking for sys/ptem.h... yes
checking for sys/resource.h... yes
checking sys/systeminfo.h usability... no
checking for sys/sysctl.h... no
checking sys/systeminfo.h presence... yes
checking for pthread_np.h... no
checking for sys/systeminfo.h... no
checking locale.h usability... no
checking strings.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
yes
checking strings.h presence... checking sys/stream.h usability... yes
checking for strings.h... yes
checking if strings.h can be included after string.h... yes
checking whether gcc needs -traditional... no
checking sys/stream.h presence... no
checking for sys/stream.h... no
no
checking for an ANSI C-conforming const... checking termios.h usability... yes
checking for working volatile... yes
checking termios.h presence... yes
checking for mode_t... yes
checking for termios.h... yes
checking libc.h usability... no
checking libc.h presence... no
checking for libc.h... no
checking sys/statfs.h usability... yes
checking for off_t... yes
checking sys/statfs.h presence... yes
checking for sys/statfs.h... yes
checking poll.h usability... yes
checking poll.h presence... yes
yes
checking for poll.h... checking for pid_t... yes
checking sys/poll.h usability... yes
checking sys/poll.h presence... yes
checking for sys/poll.h... yes
checking pwd.h usability... yes
checking for size_t... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking utime.h usability... yes
checking utime.h presence... yes
checking for utime.h... yes
checking sys/param.h usability... yes
checking for uid_t in sys/types.h... yes
checking for uint32_t... yes
checking sys/param.h presence... yes
checking whether time.h and sys/time.h may both be included... yes
checking for sys/param.h... yes
checking libintl.h usability... yes
checking for ino_t... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking libgen.h usability... yes
checking libgen.h presence... yes
checking for dev_t... yes
checking for libgen.h... yes
checking util/debug.h usability... no
checking util/debug.h presence... no
checking for util/debug.h... no
checking util/msg18n.h usability... yes
checking whether byte ordering is bigendian... no
checking util/msg18n.h presence... no
checking for util/msg18n.h... no
checking frame.h usability... no
checking frame.h presence... no
checking for inline... no
checking for frame.h... no
checking sys/acl.h usability... inline
checking for rlim_t... yes
checking for stack_t... yes
checking whether stack_t has an ss_base field... yes
checking sys/acl.h presence... yes
checking for sys/acl.h... yes
checking sys/access.h usability... no
checking --with-tlib argument... empty: automatic terminal library selection
checking for tgetent in -ltinfo... no
checking sys/access.h presence... no
checking for sys/access.h... no
checking sys/sysinfo.h usability... yes
yes
checking sys/sysinfo.h presence... yes
checking for sys/sysinfo.h... yes
checking wchar.h usability... checking whether we talk terminfo... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking wctype.h usability... yes
checking what tgetent() returns for an unknown terminal... yes
checking wctype.h presence... yes
checking for wctype.h... yes
checking for sys/ptem.h... no
checking for sys/sysctl.h... zero
checking whether termcap.h contains ospeed... yes
checking for pthread_np.h... no
checking whether ospeed can be extern... no
checking strings.h usability... yes
checking whether termcap.h contains UP, BC and PC... yes
checking strings.h presence... yes
checking for strings.h... yes
checking if strings.h can be included after string.h... no
checking whether UP, BC and PC can be extern... yes
checking whether gcc needs -traditional... no
checking for an ANSI C-conforming const... yes
checking whether tputs() uses outfuntype... yes
checking for working volatile... no
checking whether sys/select.h and sys/time.h may both be included... yes
checking for mode_t... yes
checking for /dev/ptc... no
checking for SVR4 ptys... yes
checking for ptyranges... yes
checking for off_t... don't know
checking default tty permissions/group... gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/blowfish.o blowfish.c
can't determine - assume ptys are world accessible
yes
checking for pid_t... world
checking return type of signal handlers... void
checking for struct sigcontext... yes
checking getcwd implementation is broken... yes
checking for size_t... no
checking for fchdir... yes
checking for uid_t in sys/types.h... yes
yes
checking for uint32_t... checking for fchown... yes
checking whether time.h and sys/time.h may both be included... yes
checking for fsync... yes
checking for ino_t... gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/charset.o charset.c
yes
checking for getcwd... yes
checking for dev_t... yes
checking for getpseudotty... yes
checking whether byte ordering is bigendian... no
checking for getpwent... yes
checking for getpwnam... no
checking for inline... inline
checking for rlim_t... yes
checking for stack_t... yes
yes
checking whether stack_t has an ss_base field... checking for getpwuid... no
checking --with-tlib argument... empty: automatic terminal library selection
checking for tgetent in -ltinfo... yes
checking for getrlimit... yes
yes
checking for gettimeofday... checking whether we talk terminfo... yes
checking for getwd... yes
checking what tgetent() returns for an unknown terminal... yes
checking for lstat... zero
checking whether termcap.h contains ospeed... yes
checking for memset... no
checking whether ospeed can be extern... yes
checking whether termcap.h contains UP, BC and PC... yes
checking for mkdtemp... no
checking whether UP, BC and PC can be extern... yes
checking for nanosleep... yes
checking whether tputs() uses outfuntype... no
checking whether sys/select.h and sys/time.h may both be included... yes
checking for /dev/ptc... no
checking for SVR4 ptys... yes
checking for opendir... gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/crypt.o crypt.c
yes
checking for ptyranges... yes
don't know
checking default tty permissions/group... checking for putenv... yes
checking for qsort... can't determine - assume ptys are world accessible
world
checking return type of signal handlers... void
checking for struct sigcontext... yes
checking for readlink... yes
checking getcwd implementation is broken... yes
checking for select... no
checking for fchdir... yes
checking for setenv... yes
checking for fchown... gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/crypt_zip.o crypt_zip.c
yes
checking for setpgid... yes
checking for fsync... yes
checking for setsid... yes
checking for getcwd... yes
checking for sigaltstack... yes
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/dict.o dict.c
checking for getpseudotty... yes
checking for sigstack... no
checking for getpwent... yes
checking for sigset... yes
checking for getpwnam... yes
checking for sigsetjmp... yes
checking for getpwuid... no
checking for sigaction... yes
checking for getrlimit... yes
checking for sigprocmask... yes
checking for gettimeofday... yes
checking for sigvec... yes
checking for getwd... gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/diff.o diff.c
no
checking for strcasecmp... yes
checking for lstat... yes
checking for strerror... yes
checking for memset... yes
checking for strftime... yes
checking for mkdtemp... yes
checking for stricmp... yes
checking for nanosleep... no
checking for strncasecmp... yes
checking for opendir... yes
checking for strnicmp... yes
checking for putenv... no
checking for strpbrk... yes
checking for qsort... yes
checking for strtol... yes
checking for readlink... yes
checking for tgetent... yes
checking for select... yes
checking for towlower... yes
checking for setenv... yes
checking for towupper... yes
checking for setpgid... yes
checking for iswupper... yes
checking for setsid... yes
checking for usleep... yes
checking for sigaltstack... yes
checking for utime... yes
checking for sigstack... yes
checking for utimes... yes
checking for sigset... yes
checking for _LARGEFILE_SOURCE value needed for large files... yes
checking for sigsetjmp... gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/digraph.o digraph.c
no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for sigaction... 64
checking for st_blksize... yes
checking for sigprocmask... yes
checking whether stat() ignores a trailing slash... yes
checking for sigvec... no
checking for iconv_open()... no
checking for strcasecmp... yes
checking for nl_langinfo(CODESET)... yes
checking for strerror... yes
checking for strtod in -lm... yes
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/edit.o edit.c
checking for strftime... yes
checking for strtod() and other floating point functions... yes
checking for stricmp... yes
checking for isinf()... no
checking for strncasecmp... yes
checking for isnan()... yes
checking for strnicmp... no
checking for strpbrk... yes
checking --disable-acl argument... no
checking for acl_get_file in -lposix1e... no
checking for acl_get_file in -lacl... yes
checking for strtol... yes
checking for fgetxattr in -lattr... yes
checking for tgetent... yes
checking for POSIX ACL support... yes
checking for towlower... yes
checking for acl_get in -lsec... yes
checking for towupper... no
checking for Solaris ACL support... no
checking for AIX ACL support... yes
checking for iswupper... no
checking --disable-gpm argument... no
checking for gpm... yes
checking for usleep... yes
checking --disable-sysmouse argument... no
checking for sysmouse... no
checking for FD_CLOEXEC... yes
checking for rename... yes
checking for utime... yes
checking for sysctl... yes
checking for utimes... not usable
checking for sysinfo... yes
checking for sysinfo.mem_unit... yes
checking for _LARGEFILE_SOURCE value needed for large files... yes
checking for sysconf... yes
checking size of int... 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 st_blksize... 4
checking size of long... yes
checking whether stat() ignores a trailing slash... no
checking for iconv_open()... 4
checking size of time_t... yes
checking for nl_langinfo(CODESET)... 4
checking size of off_t... yes
checking for strtod in -lm... 8
checking uint32_t is 32 bits... yes
checking for strtod() and other floating point functions... ok
checking whether memmove handles overlaps... yes
checking for isinf()... yes
checking for _xpg4_setrunelocale in -lxpg4... no
checking how to create tags... yes
checking for isnan()... ctags
checking how to run man with a section nr... man
checking --disable-nls argument... no
checking for msgfmt... msgfmt
checking for NLS... gettext() works
checking for bind_textdomain_codeset... yes
checking --disable-acl argument... no
checking for acl_get_file in -lposix1e... no
checking for acl_get_file in -lacl... yes
checking for _nl_msg_cat_cntr... yes
checking for fgetxattr in -lattr... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for POSIX ACL support... yes
checking for dlfcn.h... yes
checking for dlopen()... no
checking for dlopen() in -ldl... yes
checking for acl_get in -lsec... no
checking for Solaris ACL support... yes
checking for dlsym()... no
checking for AIX ACL support... no
checking --disable-gpm argument... no
checking for gpm... yes
checking setjmp.h usability... yes
checking setjmp.h presence... yes
checking --disable-sysmouse argument... no
checking for sysmouse... yes
checking for setjmp.h... yes
checking for GCC 3 or later... yes
checking whether we need -D_FORTIFY_SOURCE=1... yes
checking linker --as-needed support... yes
no
checking for FD_CLOEXEC... yes
checking for rename... configure: updating cache auto/config.cache
configure: creating auto/config.status
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/screen.o screen.c
yes
checking for sysctl... config.status: creating auto/config.mk
not usable
checking for sysinfo... config.status: creating auto/config.h
yes
checking for sysinfo.mem_unit... yes
checking for sysconf... touch configure-stamp-vim-nox
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/eval.o eval.c
yes
checking size of int... 4
checking size of long... 4
checking size of time_t... 4
checking size of off_t... 8
checking uint32_t is 32 bits... ok
checking whether memmove handles overlaps... yes
checking whether X_LOCALE needed... no
checking whether Xutf8SetWMProperties() can be used... yes
checking for _xpg4_setrunelocale in -lxpg4... no
checking how to create tags... ctags
checking how to run man with a section nr... man
checking --disable-nls argument... no
checking for msgfmt... msgfmt
checking for NLS... gettext() works
checking for bind_textdomain_codeset... yes
checking for _nl_msg_cat_cntr... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for dlopen()... no
checking for dlopen() in -ldl... yes
checking for dlsym()... yes
checking setjmp.h usability... yes
checking setjmp.h presence... yes
checking for setjmp.h... yes
checking for GCC 3 or later... yes
checking whether we need -D_FORTIFY_SOURCE=1... yes
checking linker --as-needed support... yes
configure: updating cache auto/config.cache
configure: creating auto/config.status
config.status: creating auto/config.mk
config.status: creating auto/config.h
touch configure-stamp-vim-athena
dh_testdir
dh_prep -p vim-gtk
*** DEBIAN *** BUILDING VARIANT vim-gtk
/usr/bin/make -C src/vim-gtk
make[1]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk'
mkdir -p objects
touch objects/.dirstamp
CC="gcc -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time    " srcdir=. sh ./osdef.sh
creating auto/pathdef.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/popupmnu.o popupmnu.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/quickfix.o quickfix.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/search.o search.c
dh_testdir
dh_prep -p vim-gtk3
*** DEBIAN *** BUILDING VARIANT vim-gtk3
/usr/bin/make -C src/vim-gtk3
make[1]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk3'
mkdir -p objects
touch objects/.dirstamp
CC="gcc -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time    " srcdir=. sh ./osdef.sh
creating auto/pathdef.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/popupmnu.o popupmnu.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/evalfunc.o evalfunc.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/sha256.o sha256.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/spell.o spell.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/quickfix.o quickfix.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/spellfile.o spellfile.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/syntax.o syntax.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/regexp.o regexp.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/tag.o tag.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/term.o term.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/regexp.o regexp.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ui.o ui.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_cmds.o ex_cmds.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/undo.o undo.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/userfunc.o userfunc.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/window.o window.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/json.o json.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/main.o main.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_cmds2.o ex_cmds2.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memfile.o memfile.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/message.o message.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_docmd.o ex_docmd.c
cd xxd; CC="gcc" CFLAGS="-Wdate-time -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1" LDFLAGS="-Wl,-z,relro -Wl,-z,now -Wl,--as-needed" \
	/usr/bin/make -f Makefile
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-tiny/xxd'
gcc -Wdate-time -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -DUNIX -o xxd xxd.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-tiny/xxd'
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/arabic.o arabic.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/buffer.o buffer.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/blowfish.o blowfish.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/charset.o charset.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/screen.o screen.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/crypt.o crypt.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/crypt_zip.o crypt_zip.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/dict.o dict.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/diff.o diff.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/digraph.o digraph.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/edit.o edit.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/screen.o screen.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/eval.o eval.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/evalfunc.o evalfunc.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_eval.o ex_eval.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_cmds.o ex_cmds.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_getln.o ex_getln.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_cmds2.o ex_cmds2.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_docmd.o ex_docmd.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/search.o search.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/farsi.o farsi.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/fileio.o fileio.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_eval.o ex_eval.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/search.o search.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_getln.o ex_getln.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/sha256.o sha256.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/farsi.o farsi.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/spell.o spell.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/fileio.o fileio.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/sha256.o sha256.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/fold.o fold.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/spell.o spell.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/fold.o fold.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/getchar.o getchar.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/getchar.o getchar.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/hardcopy.o hardcopy.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/hashtab.o hashtab.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/if_cscope.o if_cscope.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/spellfile.o spellfile.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/if_xcmdsrv.o if_xcmdsrv.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/list.o list.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/hardcopy.o hardcopy.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/mark.o mark.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memline.o memline.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/hashtab.o hashtab.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/if_cscope.o if_cscope.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/spellfile.o spellfile.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/menu.o menu.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/misc1.o misc1.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/if_xcmdsrv.o if_xcmdsrv.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/list.o list.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/syntax.o syntax.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/mark.o mark.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/misc2.o misc2.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memline.o memline.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/move.o move.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/mbyte.o mbyte.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/syntax.o syntax.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/menu.o menu.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/normal.o normal.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/misc1.o misc1.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/tag.o tag.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ops.o ops.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/term.o term.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/tag.o tag.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1              -o objects/option.o option.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/misc2.o misc2.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ui.o ui.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/term.o term.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/os_unix.o os_unix.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/move.o move.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/undo.o undo.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/pathdef.o auto/pathdef.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/mbyte.o mbyte.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ui.o ui.c
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o vim objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o              objects/json.o objects/main.o objects/memfile.o objects/message.o    -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo  -lselinux -lacl -lattr -ldl           
link.sh: Linked fine
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-tiny'
[ yes != "yes" ] || flock debian /usr/bin/make -j1 -C src/vim-tiny test
make[1]: warning: -jN forced in submake: disabling jobserver mode.
make[1]: Entering directory '/<<PKGBUILDDIR>>/src/vim-tiny'
/usr/bin/make -f Makefile vim
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-tiny'
make[2]: 'vim' is up to date.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-tiny'
if test -n "" -a -f po/Makefile; then \
	cd po; /usr/bin/make -f Makefile check VIM=../vim; \
fi
if test vim != vim -a ! -r vim; then \
	ln -s vim vim; \
fi
cd testdir; /usr/bin/make -f Makefile  VIMPROG=../vim  SCRIPTSOURCE=../../runtime
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-tiny/testdir'
rm -f test.log messages
rm -rf test1.failed test.out X* viminfo tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok benchmark.out wrongtermsize
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test1.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 1133 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/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
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" If columns or lines are too small, create wrongtermsize.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" (Some tests will fail. When columns and/or lines are small)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Write a single line to test.out to check if testing works at all.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cthis is a test[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 15 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! small.vim
[?25l[?1c"small.vim" [New File] 1 line, 1 character written[?25h[?0c[?25l[?1c:[?25h[?0cw! tiny.vim
[?25l[?1c"tiny.vim" [New File] 1 line, 1 character written[?25h[?0c[?25l[?1ce! test.ok
w! test.outqa![?25h[?0c[?25l[?1c:[?25h[?0cw! mbyte.vim
[?25l[?1c"mbyte.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cw! mzscheme.vim
[?25l[?1c"mzscheme.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cw! lua.vim
[?25l[?1c"lua.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +multi_byte feature supported, make mbyte.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("multi_byte") | sp another | w! mbyte.vim | q | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +mzscheme feature supported, make mzscheme.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("mzscheme") | sp another | w! mzscheme.vim | q | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +lua feature supported, make lua.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("lua") | sp another | w! lua.vim | q | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Otherwise write small.vim to skip the test.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif 1 | q! | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! small.vim
[?25l[?1c"small.vim" 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" If +windows feature not supported :sp will fail and tiny.vim will be
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" written to skip the test.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp another
[?25l[?1c"another" [New File]~                                                                               ~                                                                               ~                                                                               another                                                                         qa!test1.in                                                                        [?25h[?0c[?25l[?1c:[?25h[?0cwq! tiny.vim
[?25l[?1c"tiny.vim" 0 lines, 0 characters writtene! test.ok
w! test.outqa!~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0crm -rf X* 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test3.in
[?25h[?8c[?25h[?0c[?25l[?1c"test3.in" 2342 lines, 23089 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c/* vim: set cin ts=4 sw=4 : */[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 125 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 2096 lines, 20188 characters

"test.out" [New File] 2096 lines, 20188 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test3 = test61; then \
#	  if diff test.out test3.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test3.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test3.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test4.in
[?25h[?8c[?25h[?0c[?25l[?1c"test4.in" 34 lines, 960 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
:set fo+=r" issue #57 do not move cursor on <c-o> when autoindent is set
Go# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that changes current buffer on BufEnter event.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 20 lines, 678 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:?startstart?,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 20 lines, 330 characters

"test.out" [New File] 20 lines, 330 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test4 = test61; then \
#	  if diff test.out test4.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test4.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test4.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test5.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that deletes the current buffer on BufLeave event.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 664 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 9 lines, 173 characters

"test.out" [New File] 9 lines, 173 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test5 = test61; then \
#	  if diff test.out test5.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test5.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test5.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test7.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that changes the buffer list, when doing ":ball".[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 508 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 12 lines, 231 characters

"test.out" [New File] 12 lines, 231 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test7 = test61; then \
#	  if diff test.out test7.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test7.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test7.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/userfunc.o userfunc.c
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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test8.in
[?25h[?8c[?25h[?0c[?25l[?1c"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('$')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for BufWritePre autocommand that deletes or unloads the buffer.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1054 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTif 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 7 lines, 76 characters

"test.out" [New File] 7 lines, 76 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test8 = test61; then \
#	  if diff test.out test8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test8.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test9.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Bufleave autocommand that deletes the buffer we are about to edit.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 117 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 2 lines, 42 characters

"test.out" [New File] 2 lines, 42 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test9 = test61; then \
#	  if diff test.out test9.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test9.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test9.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test14.in
[?25h[?8c[?25h[?0c[?25l[?1c"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\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>"
:else
: let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"
:endif
:exe "normal " . tt
:unlet tt
:.w >>test.out[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for "vaBiB", end could be wrong.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 56 lines, 1141 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 */{}}}[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 26 lines, 252 characters

"test.out" [New File] 26 lines, 252 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test14 = test61; then \
#	  if diff test.out test14.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test14.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test14.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test15.in
[?25h[?8c[?25h[?0c[?25l[?1c"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/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :right on text with embedded TAB.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 401 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 111 lines, 2304 characters

"test.out" [New File] 111 lines, 2304 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test15 = test61; then \
#	  if diff test.out test15.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test15.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test15.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test19.in
[?25h[?8c[?25h[?0c[?25l[?1c"test19.in" 33 lines, 692 charactersTests for "r<Tab>" 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![?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 447 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 10 lines, 121 characters

"test.out" [New File] 10 lines, 121 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test19 = test61; then \
#	  if diff test.out test19.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test19.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test19.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test20.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests Blockwise Visual when there are TABs before the text.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 107 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso tiny.vim
[?25l[?1c[?25h[?0c[?25l[?1csome texttest text
test text

Ox^[jAy^[kdd[?25h[?0c[?25l[?1cx[?25h[?0c
[?25l[?1cy[?25h[?0c[?25l[?1cy
Ox^[jAy^[kdd[?25h[?0c[?25l[?1c

2 changes; before #1  0 seconds ago[?25h[?0c
[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       123456
234567
345678test text test tex start here
                some texttest
test textOx^[jAy^[kdd
test20.in                                                                       [?25h[?0c[?25l[?1cx[+][?25h[?0c
[?25l[?1cy[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c1 line less; before #1  0 seconds ago   [?25h[?0c[?25l[?1c:[?25h[?0cquit!
[?25l[?1c: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[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
Ox^[jAy^[kdd[?25h[?0c[?25l[?1c
/[?25h[?0cstart here$
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cs[?25h[?0c[?25l[?1ce[?25h[?0c[?25l[?1ct t[?25h[?0c[?25l[?1cat [?25h[?0c[?25l[?1crt hereextex[?25h[?0c[?25l[?1c/[?25h[?0c456$
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c4
234[?25h[?0c[?25l[?1c5
345[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cstart here56
234start here67
345start here78[?25h[?0c[?25l[?1c:[?25h[?0c/56$/,$-1w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 10 lines, 106 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test20 = test61; then \
#	  if diff test.out test20.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test20.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test20.in; \
#	  fi \
#	fi"
# 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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/normal.o normal.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test22.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for file with some lines ending in CTRL-M, some not^M[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 38 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset ta tx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce!
[?25l[?1c"test22.in" 13 lines, 197 characters[?25h[?0c[?25l[?1c:[?25h[?0c$-3,$w! test.out
[?25l[?1c"test.out" [New File] 4 lines, 79 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test22 = test61; then \
#	  if diff test.out test22.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test22.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test22.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test23.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for complicated + argument to :edit command[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 125 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c$-1w! Xfile1
[?25l[?1c"Xfile1" [New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xfile2
[?25l[?1c"Xfile2" [New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0cedit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 12 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce Xfile1
[?25l[?1c"Xfile1" 1 line, 11 charactersfooPIPEbar
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xfile1" 1 line, 11 characters[?25h[?0c[?25l[?1c:[?25h[?0cw >> test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test23 = test61; then \
#	  if diff test.out test23.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test23.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test23.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test24.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with backslash and other special characters inside [][?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 51 lines, 519 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\x]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text[?25h[?0c[?25l[?1c/[?25h[?0c[\t\]]
[?25l[?1c[?25h[?0c[?25l[?1ctext test tex[?25h[?0c[?25l[?1c/[?25h[?0c[]y]
[?25l[?1c[?25h[?0c[?25l[?1ctest text[?25h[?0c[?25l[?1c/[?25h[?0c[\]]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text[?25h[?0c[?25l[?1c/[?25h[?0c[y^]
[?25l[?1c[?25h[?0c[?25l[?1cst text[?25h[?0c[?25l[?1c/[?25h[?0c[$y]
[?25l[?1c[?25h[?0c[?25l[?1cxt test text[?25h[?0c[?25l[?1c/[?25h[?0c[\x61]
[?25l[?1c[?25h[?0c[?25l[?1cext test text  x61[?25h[?0c[?25l[?1c/[?25h[?0c[\x60-\x64]
[?25l[?1c[?25h[?0c[?25l[?1cext test text  x60-x64[?25h[?0c
[?25l[?1c/[?25h[?0c[\x785]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text  x78 5[?25h[?0c[?25l[?1c/[?25h[?0c[\o143]
[?25l[?1c
testc text test text  o143[?25h[?0c[?25l[?1c text test text  o143[?25h[?0c[?25l[?1c
/[?25h[?0c[\o140-\o144]
[?25l[?1c
tesdt text test text  o140-o144[?25h[?0c[?25l[?1ct text test text  o140-o14[?25h[?0c[?25l[?1c
/[?25h[?0c[\o417]
[?25l[?1c
test7 text test text  o41 7[?25h[?0c[?25l[?1c text test text  o41 7[?25h[?0c[?25l[?1c
/[?25h[?0c\%x42
[?25l[?1c
test text tBest text  \%x42[?25h[?0c[?25l[?1cest text  \%x42[?25h[?0c[?25l[?1c
/[?25h[?0c\%o103
[?25l[?1c
test text teCst text  \%o103[?25h[?0c[?25l[?1cst text  \%o103[?25h[?0c[?25l[?1c
/[?25h[?0c[\x00]
[?25l[?1c
test text ^@test text  [\x00][?25h[?0c[?25l[?1ctest text  [\x00][?25h[?0c[?25l[?1c
test te^@xt t^Dest t^Pext  [\x00-\x10][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\x00-\x10]//g
[?25l[?1c3 substitutions on 1 linext test text  [\x00-\x10][?25h[?0c[?25l[?1c
test \xyztext test text  [\x-z][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\x-z]\+//
[?25l[?1ctext test text  [\x-z][?25h[?0c[?25l[?1c
test text tev\uyst text  [\u-z][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\u-z]\{2,}//
[?25l[?1cst text  [\u-z][?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\+//
[?25l[?1c xx [?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a*\)\+//
[?25l[?1c[?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a*\)*//
[?25l[?1c[?25h[?0c[?25l[?1c
xx aaaaa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\{2,3}/A/
[?25l[?1cAaa xx[?25h[?0c[?25l[?1c
xx aaaaa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\{-2,3}/A/
[?25l[?1cAaaa x[?25h[?0c[?25l[?1c
xx aaa12aa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)*\(12\)\@>/A/
[?25l[?1cAaa xx[?25h[?0c[?25l[?1c
xx foobar xbar xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(foo\)\@<!bar/A/
[?25l[?1cA xx[?25h[?0c[?25l[?1c
xx an file xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(an\_s\+\)\@<=file/A/
[?25l[?1cA xx[?25h[?0c[?25l[?1c
x= 9;[?25h[?0c[?25l[?1c
:[?25h[?0cs/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
[?25l[?1cXX
[?25h[?0c[?25l[?1c
hh= 77;[?25h[?0c[?25l[?1c
:[?25h[?0cs/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
[?25l[?1cYY 77;[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0cs/aaa/xyz/
[?25l[?1cxyz
 [?25h[?0cgcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/undo.o undo.c
[?25l[?1c
xyz[?25h[?0c[?25l[?1c
:[?25h[?0cs/~/bcd/
[?25l[?1cbcd
 [?25h[?0c[?25l[?1c
bcdbcdbcd[?25h[?0c[?25l[?1c
:[?25h[?0cs/~\+/BB/
[?25l[?1cBB[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?start?,$w! test.out
[?25l[?1c"test.out" [New] 32L, 586C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test24 = test61; then \
#	  if diff test.out test24.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test24.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test24.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test26.in
[?25h[?8c[?25h[?0c[?25l[?1c"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")[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for :execute, :while and :if[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 39 lines, 696 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 10 lines, 159 characters

"test.out" [New File] 10 lines, 159 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test26 = test61; then \
#	  if diff test.out test26.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test26.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test26.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test28.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for sourcing a file with CTRL-V's at the end of the line[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 114 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c/firstline/+1,/lastline/-1w! Xtestfile
[?25l[?1c"Xtestfile" [New File] 10 lines, 148 characters written[?25h[?0c[?25l[?1c:[?25h[?0cso Xtestfile
[?25l[?1c[?25h[?0c[?25l[?1c
sd
map __2 asd^[[?25h[?0c[?25l[?1csecond[?25h[?0c[?25l[?1cdsd^[[?25h[?0c[?25l[?1csd^@map __5 asd^@[?25h[?0c[?25l[?1cfifth[?25h[?0c[?25l[?1c
:[?25h[?0c'm,$s/^@/0/g
[?25l[?1c0map __5 asd0fifth[?25h[?0c[?25l[?1c:[?25h[?0c'm,$w! test.out
[?25l[?1c"test.out" [New File] 2 lines, 45 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test28 = test61; then \
#	  if diff test.out test28.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test28.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test28.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test29.in
[?25h[?8c[?25h[?0c[?25l[?1c"test29.in" 230 lines, 4261 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for joining lines and marks in them[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 478 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 97 lines, 3018 characters

"test.out" [New File] 97 lines, 3018 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test29 = test61; then \
#	  if diff test.out test29.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test29.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test29.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test31.in
[?25h[?8c[?25h[?0c[?25l[?1c"test31.in" 95 lines, 1832 charactersTest for commands that close windows and/or buffers:
:quit
:close
:hide
:only
:sall
:all
:ball
:buf
:edit

STARTTEST
:so small.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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for commands that close windows and/or buffers:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 80 lines, 1697 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" test ":q!" and hidden buffer.
:bw! Xtest1 Xtest2 Xtest3 Xtest4
:sp Xtest1
:wincmd w
:bw!
:set modified
:bot sp Xtest2
:set modified
:bot sp Xtest3
:set modified
:wincmd t
:hide
:q!
:w >>test.out
:q!
:w >>test.out
:q!
:call append(line('$'), "Oh, Not finished yet.")
:w >>test.out
:qa!
ENDTEST

testtext[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 14 lines, 176 characters

"test.out" [New File] 14 lines, 176 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test31 = test61; then \
#	  if diff test.out test31.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test31.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test31.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test33.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'lisp'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 63 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 23 lines, 544 characters

"test.out" [New File] 23 lines, 544 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test33 = test61; then \
#	  if diff test.out test33.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test33.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test33.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test34.in
[?25h[?8c[?25h[?0c[?25l[?1c"test34.in" 87 lines, 1833 charactersTest for user functions.
Also test an <expr> 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for user functions.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 78 lines, 1621 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 10 lines, 81 characters

"test.out" [New File] 10 lines, 81 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test34 = test61; then \
#	  if diff test.out test34.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test34.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test34.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test36.in
[?25h[?8c[?25h[?0c[?25l[?1c"test36.in" 108 lines, 2025 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest character classes in regexp using regexpengine 0, 1, 2.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 101 lines, 1850 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTp: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
p:s/\%#=0\%204l^\t...//g
p:s/\%#=1\%205l^\t...//g
p:s/\%#=2\%206l^\t...//g
:/^start-here/+1,$wq! test.out
ENDTEST







:[?25h[?0cs/\%#=0\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\O//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\O//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-7]//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-7]//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c




~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\X//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\X//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=1[^0-9A-Fa-f]//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c





:[?25h[?0cs/\%#=0\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\U//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\U//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Z]//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Z]//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test36 = test61; then \
#	  if diff test.out test36.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test36.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test36.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test37.in
[?25h[?8c[?25h[?0c[?25l[?1c"test37.in" 116 lines, 3262 charactersTest for 'scrollbind'. <eralston@computer.org>   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 --[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below![?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 1498 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 33 lines, 1329 characters

"test.out" [New File] 33 lines, 1329 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test37 = test61; then \
#	  if diff test.out test37.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test37.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test37.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test38.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 407 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTopq 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 13 lines, 107 characters

"test.out" [New File] 13 lines, 107 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test38 = test61; then \
#	  if diff test.out test38.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test38.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test38.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test39.in
[?25h[?8c[?25h[?0c[?25l[?1c"test39.in" 118 lines, 2435 charactersTest Visual block mode commands
And test "U" in Visual mode, also on German sharp S.

#define BO_ALL      0x0001
#define BO_BS0x0002
#define BO_CRSR     0x0004

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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 75 lines, 2061 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:exe ":norm! 2k\<C-V>$gj\<Esc>"
:let cpos=getpos("'>")
:$put ='col:'.cpos[2].' off:'.cpos[3]
:"
:" block_insert when replacing spaces in front of the block with tabs
:set ts=8 sts=4 sw=4
:4,7y
Gp
:exe ":norm! f0\<C-V>2jI\<tab>\<esc>"
:/^the/,$w >> test.out
:qa!
ENDTESTline1line2line3

aaaaaa
bbbbbb
cccccc
dddddd

xaaa[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 63 lines, 662 characters

"test.out" [New File] 63 lines, 662 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test39 = test61; then \
#	  if diff test.out test39.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test39.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test39.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test40.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for "*Cmd" autocommands[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1455 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 11 lines, 107 characters

"test.out" [New File] 11 lines, 107 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test40 = test61; then \
#	  if diff test.out test40.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test40.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test40.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test41.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for writing and reading a file of over 100 Kbyte[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 13 lines, 196 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cThis is the start
This is the leaderThis is the middleThis is the trailerThis is the end[?25h[?0c[?25l[?1c3000 more linestrailer
This is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailer[?25h[?0c[?25l[?1cleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader[?25h[?0c
[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 6005 lines, 117092 characters written[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest
[?25l[?1c"Xtest" 6005 lines, 117092 charactersThis is the start
This is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leader[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 18 characters written[?25h[?0c[?25l[?1cThis 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[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 19 characters appended[?25h[?0c[?25l[?1cThis 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
[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 16 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/window.o window.c
#@/bin/sh -c "if test -f test.out -a test41 = test61; then \
#	  if diff test.out test41.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test41.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test41.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test42.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for writing and reading a file starting with a BOM[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2116 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
utf-8
utf-8
utf-8-err
utf-8~@err
ucs-2
ucs-2le
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c"test.ok" 44 lines, 409 characters

"test.out" [New File] 44 lines, 409 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test42 = test61; then \
#	  if diff test.out test42.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test42.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test42.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test43.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 268 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 11 lines, 137 characters

"test.out" [New File] 11 lines, 137 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test43 = test61; then \
#	  if diff test.out test43.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test43.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test43.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test44.in
[?25h[?8c[?25h[?0c[?25l[?1c"test44.in" 81 lines, 1492 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
f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with multi-byte encoding and various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
:new
:$put =['dog(a', 'cat(']
/(/e+
"ayn:bd!
:$put =''
G"ap
: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
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c"test.ok" 25 lines, 271 characters

"test.out" [New File] 25 lines, 271 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test44 = test61; then \
#	  if diff test.out test44.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test44.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test44.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test45.in
[?25h[?8c[?25h[?0c[?25l[?1c"test45.in" 90 lines, 1953 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("."))[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for folding. vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 73 lines, 1820 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:new
iTest fdm=indent and :move bug END
line2Test fdm=indent STARTline3line4^[
:set fdm=indent
:1m1
2jzc:m0
:%w >> test.out
:qa!
ENDTEST

1 aa
2 bb
3 cc
4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg
8 hh
9 ii
a jj[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 23 lines, 173 characters

"test.out" [New File] 23 lines, 173 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test45 = test61; then \
#	  if diff test.out test45.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test45.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test45.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test48.in
[?25h[?8c[?25h[?0c[?25l[?1c"test48.in" 83 lines, 1658 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 <CR> 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cThis is a test of 'virtualedit'.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 61 lines, 1442 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set display=
:"
:"   Test for ^Y/^E due to bad w_virtcol value, reported by
:"   Roy <royl@netropolis.net>.
^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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 23 lines, 479 characters

"test.out" [New File] 23 lines, 479 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test48 = test61; then \
#	  if diff test.out test48.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test48.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test48.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test51.in
[?25h[?8c[?25h[?0c[?25l[?1c"test51.in" 36 lines, 809 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for ":highlight". vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 31 lines, 747 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 20 lines, 271 characters

"test.out" [New File] 20 lines, 271 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test51 = test61; then \
#	  if diff test.out test51.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test51.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test51.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test53.in
[?25h[?8c[?25h[?0c[?25l[?1c"test53.in" 75 lines, 1763 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()

STARTTEST
:so small.vim
/^start:/
da"
0va'a'rx
02f`da`
0fXdi"
03f'vi'ry
:set quoteescape=+*-
di`
$F"va"oha"i"rz
:"
/^<begin
jfXdit
0fXdit
fXdat
0fXdat[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for string and html text objects. vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1237 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:put =match('abc', '$', 4, 1) " -1
:put =match('abc', '\zs', 0, 1) " 0
:put =match('abc', '\zs', 0, 2) " 1
:put =match('abc', '\zs', 0, 3) " 2
:put =match('abc', '\zs', 0, 4) " 3
:put =match('abc', '\zs', 0, 5) " -1
:put =match('abc', '\zs', 1, 1) " 1
:put =match('abc', '\zs', 2, 1) " 2
:put =match('abc', '\zs', 3, 1) " 3
:put =match('abc', '\zs', 4, 1) " -1
:/^start:/,/^end:/wq! test.out
ENDTEST

start: "wo\"rd\\" foo
'foo' 'bar' 'piep'
bla bla `quote` blah
out " in "noXno"
"'" 'blah' rep 'buh'
bla `s*`d-`+++`l**` b`la
voo "nah" sdf " asdf" sdf " sdf" sd

<begin>
-<b>asdf<i>Xasdf</i>asdf</b>-[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 45 lines, 284 characters

"test.out" [New File] 45 lines, 284 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test53 = test61; then \
#	  if diff test.out test53.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test53.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test53.in; \
#	  fi \
#	fi"
# 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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/userfunc.o userfunc.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test55.in
[?25h[?8c[?25h[?0c[?25l[?1c"test55.in" 586 lines, 12256 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])
:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for List and Dictionary types.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 580 lines, 12170 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =string(l)
: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:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 197 lines, 3821 characters

"test.out" [New File] 197 lines, 3821 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test55 = test61; then \
#	  if diff test.out test55.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test55.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test55.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test56.in
[?25h[?8c[?25h[?0c[?25l[?1c"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 <SID>DoLast()
  call append(line('$'), "last line")
endfun
fun s:DoNothing()
  call append(line('$'), "nothing line")
endfun
nnoremap <buffer> _x    :call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
end:
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for script-local function.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 120 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 2 lines, 23 characters

"test.out" [New File] 2 lines, 23 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test56 = test61; then \
#	  if diff test.out test56.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test56.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test56.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test57.in
[?25h[?8c[?25h[?0c[?25l[?1c"test57.in" 545 lines, 4110 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :sort command.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 33 lines, 920 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:/^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
:/^t28:/+1,/^t29/-1sort b
:/^t29:/+1,/^t30/-1sort b
:/^t30:/+1,/^t31/-1sort f
:/^t01:/,$wq! test.out
ENDTEST

t01: alphebetical
abc
ab
a
a321
a123
a122
b321
b123
c123d[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 501 lines, 3105 characters

"test.out" [New File] 501 lines, 3105 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test57 = test61; then \
#	  if diff test.out test57.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test57.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test57.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test60.in
[?25h[?8c[?25h[?0c[?25l[?1c"test60.in" 601 lines, 13116 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for the exists() and has() functions.  vim: set ft=vim ts=8 sw=2 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 596 lines, 13023 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 206 lines, 1941 characters

"test.out" [New File] 206 lines, 1941 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test60 = test61; then \
#	  if diff test.out test60.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test60.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test60.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test64.in
[?25h[?8c[?25h[?0c[?25l[?1c"test64.in" 654 lines, 27565 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for regexp patterns without multi-byte support.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 621 lines, 27090 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:for pat in [' \ze*', ' \zs*']
:  try
:    let l = matchlist('x x', pat)
:    $put ='E888 NOT detected for ' . pat
:  catch
:    $put ='E888 detected for ' . pat
:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="">Ta 5</Title>
<T="">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 1107 lines, 22167 characters

"test.out" [New File] 1107 lines, 22167 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test64 = test61; then \
#	  if diff test.out test64.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test64.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test64.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test65.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for floating point and logical operators.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 89 lines, 2067 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 73 lines, 430 characters

"test.out" [New File] 73 lines, 430 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test65 = test61; then \
#	  if diff test.out test65.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test65.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test65.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test66.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 234 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 16 lines, 368 characters

"test.out" [New File] 16 lines, 368 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test66 = test61; then \
#	  if diff test.out test66.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test66.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test66.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test67.in
[?25h[?8c[?25h[?0c[?25l[?1c"test67.in" 33 lines, 1110 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#<buffer>: " . exists("#BufEnter#<buffer>"))
:au BufEnter <buffer> let g:entered=1[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest that groups and patterns are tested correctly when calling exists() for[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 999 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
:edit testfile2.test
:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
:e! test.out
:call append(0, results)
:$d
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 10 lines, 190 characters

"test.out" [New File] 10 lines, 190 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test67 = test61; then \
#	  if diff test.out test67.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test67.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test67.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test68.in
[?25h[?8c[?25h[?0c[?25l[?1c"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

{[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for text formatting.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 48 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 77 lines, 281 characters

"test.out" [New File] 77 lines, 281 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test68 = test61; then \
#	  if diff test.out test68.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test68.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test68.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test69.in
[?25h[?8c[?25h[?0c[?25l[?1c"test69.in" 192 lines, 2185 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for multi-byte text formatting.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 2 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c"test.ok" 166 lines, 730 characters

"test.out" [New File] 166 lines, 730 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test69 = test61; then \
#	  if diff test.out test69.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test69.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test69.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test70.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cSmoke test for MzScheme interface and mzeval() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1398 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mzscheme.vim
[?25l[?1c"test.ok" 6 lines, 94 characters

"test.out" [New File] 6 lines, 94 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test70 = test61; then \
#	  if diff test.out test70.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test70.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test70.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test73.in
[?25h[?8c[?25h[?0c[?25l[?1c"test73.in" 169 lines, 3647 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
:"
:" On windows a stale "Xfind" directory may exist, remove it so that
:" we start from a clean state.
:call delete("Xfind", "rf")
:new
:let cwd=getcwd()
:let test_out = cwd . '/test.out'
:call mkdir('Xfind')
:cd Xfind
:set path=
:find
:exec "w! " . test_out
:close[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for find completion.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 164 lines, 3600 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 delete("Xfind", "rf")
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 21 lines, 222 characters

"test.out" [New File] 21 lines, 222 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test73 = test61; then \
#	  if diff test.out test73.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test73.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test73.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test75.in
[?25h[?8c[?25h[?0c[?25l[?1c"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<C-V> is<F4>foo
:vnoremap <script> <buffer> <expr> <silent> bar isbar
:call append('$', maparg('foo<C-V>'))
:call append('$', string(maparg('foo<C-V>', '', 0, 1)))
:call append('$', string(maparg('bar', '', 0, 1)))
:map <buffer> <nowait> foo bar
:call append('$', string(maparg('foo', '', 0, 1)))
:"
:map abc x<char-114>x
:call append('$', maparg('abc'))
:map abc y<S-char-114>y
:call append('$', maparg('abc'))
:"
Go^[:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for maparg().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 34 lines, 919 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" Outside of the range, minimum
:inoremap <Char-0x1040> a
:execute "normal a\u1040\<Esc>"
:" Inside of the range, minimum
:inoremap <Char-0x103f> b
:execute "normal a\u103f\<Esc>"
:" Inside of the range, maximum
:inoremap <Char-0xf03f> c
:execute "normal a\uf03f\<Esc>"
:" Outside of the range, maximum
:inoremap <Char-0xf040> d
:execute "normal a\uf040\<Esc>"
:"
:/^eof/+1,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 7 lines, 384 characters

"test.out" [New File] 7 lines, 384 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test75 = test61; then \
#	  if diff test.out test75.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test75.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test75.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test77.failed test.ok test.out X* viminfo
cp test77.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test77.in
[?25h[?8c[?25h[?0c[?25l[?1c"test77.in" 30 lines, 719 charactersInserts 2 million lines with consecutive integers starting from 1
(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
and writes its cksum to test.out.

We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
up the lines the checksum would differ.

cksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST
:so small.vim
:if !executable("cksum")
: e! test.ok
: w! test.out
: qa!
:endif
:set fileformat=unix undolevels=-1
ggdG
:let i = 1
:while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhileggdd
:w! Xtest[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cInserts 2 million lines with consecutive integers starting from 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 288 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:r !cksum Xtest
:s/\s/ /g
:set fileformat&
:.w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 1 line, 26 characters

"test.out" [New File] 1 line, 26 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test77 = test61; then \
#	  if diff test.out test77.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test77.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test77.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test79.failed test.ok test.out X* viminfo
cp test79.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test79.in
[?25h[?8c[?25h[?0c[?25l[?1c"test79.in" 255 lines, 3381 charactersTest for *sub-replace-special* and *sub-replace-expression* on :substitute.
Test for submatch() on :substitue.
Test for *:s%* on :substitute.
Test for :s replacing \n with  line break.

STARTTEST
:so small.vim
ENDTEST

Results of test71:

STARTTEST
:set magic
:set cpo&
/^TEST/
j:s/A/&&/
j:s/B/\&/
j:s/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
j:s/D/d/
j:s/E/~/
j:s/F/\~/
j:s/G/\ugg/
j:s/H/\Uh\Eh/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for *sub-replace-special* and *sub-replace-expression* on :substitute.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 134 lines, 574 characters

"test.out" [New File] 134 lines, 574 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test79 = test61; then \
#	  if diff test.out test79.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test79.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test79.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test80.failed test.ok test.out X* viminfo
cp test80.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test80.in
[?25h[?8c[?25h[?0c[?25l[?1c"test80.in" 201 lines, 6298 charactersTest for *sub-replace-special* and *sub-replace-expression* on substitute().
Test for submatch() on substitute().
Test for *:s%* on :substitute.

STARTTEST
:so small.vim
ENDTEST

TEST_1:

STARTTEST
:set magic
:set cpo&
:$put =\"\n\nTEST_1:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
:$put =substitute('D', 'D', 'd', '')
:$put =substitute('E', 'E', '~', '')
:$put =substitute('F', 'F', '\~', '')
:$put =substitute('G', 'G', '\ugg', '')
:$put =substitute('H', 'H', '\Uh\Eh', '')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for *sub-replace-special* and *sub-replace-expression* on substitute().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 131 lines, 617 characters

"test.out" [New File] 131 lines, 617 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test80 = test61; then \
#	  if diff test.out test80.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test80.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test80.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test82.failed test.ok test.out X* viminfo
cp test82.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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ops.o ops.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test82.in
[?25h[?8c[?25h[?0c[?25l[?1c"test82.in" 103 lines, 3166 charactersTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
Also test "g~ap".

STARTTEST
:so small.vim
:if !has("multi_byte")
: e! test.ok
: w! test.out
: qa!
:endif
:set enc=utf8
ggdG:
:
:function! Ch(a, op, b, expected)
:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 97 lines, 3055 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:call append(0, printf('%d checks passed', b:passed))
:"
:" test that g~ap changes one paragraph only.
:new
iabcd

defg^[gg0g~ap:let lns = getline(1,3)
:q!
:call append(line('$'), lns)
:"
:wq! test.out
ENDTEST

~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 5 lines, 31 characters

"test.out" [New File] 5 lines, 31 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test82 = test61; then \
#	  if diff test.out test82.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test82.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test82.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test84.failed test.ok test.out X* viminfo
cp test84.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test84.in
[?25h[?8c[?25h[?0c[?25l[?1c"test84.in" 35 lines, 786 charactersTests for curswant not changing when setting an option

STARTTEST
:so small.vim
:/^start target options$/+1,/^end target options$/-1 yank
:let target_option_names = split(@0)
:function TestCurswant(option_name)
:  normal! ggf8j
:  let curswant_before = winsaveview().curswant
:  execute 'let' '&'.a:option_name '=' '&'.a:option_name
:  let curswant_after = winsaveview().curswant
:  return [a:option_name, curswant_before, curswant_after]
:endfunction
:
:new
:put =['1234567890', '12345']
:1 delete _
:let result = []
:for option_name in target_option_names
:  call add(result, TestCurswant(option_name))
:endfor
:
:new[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for curswant not changing when setting an option[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 637 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _
:write test.out
:
:qall!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 3 lines, 43 characters

"test.out" [New File] 3 lines, 43 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test84 = test61; then \
#	  if diff test.out test84.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test84.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test84.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test88.failed test.ok test.out X* viminfo
cp test88.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test88.in
[?25h[?8c[?25h[?0c[?25l[?1c"test88.in" 99 lines, 1449 charactersvim: set ft=vim

Tests for correct display (cursor column position) with +conceal and
tabulators.

STARTTEST
:so small.vim
:if !has('conceal')
   e! test.ok
   wq! test.out
:endif
:" Conceal settings.
:set conceallevel=2
:set concealcursor=nc
:syntax match test /|/ conceal
:" Save current cursor position. Only works in <expr> mode, can't be used
:" with :normal because it moves the cursor to the command line. Thanks to ZyX
:" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
:let positions = []
:nnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
:" Start test.
/^start:
:normal ztj[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cvim: set ft=vim[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 82 lines, 1216 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:normal W
GGk
:normal W
GGk
:normal W
GGk
:normal $
GGk
:" Display result.
:call append('$', 'end:')
:call append('$', positions)
:/^end/,$wq! test.out
ENDTEST

start:
.concealed.     text
|concealed|     text.concealed.     text|concealed|     text

.a.     .b.     .c.     .d.
|a|     |b|     |c|     |d|[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 29 lines, 135 characters

"test.out" [New File] 29 lines, 135 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test88 = test61; then \
#	  if diff test.out test88.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test88.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test88.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test90.failed test.ok test.out X* viminfo
cp test90.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test90.in
[?25h[?8c[?25h[?0c[?25l[?1c"test90.in" 53 lines, 1204 charactersTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :

STARTTEST
:so small.vim
:if !has('cryptv') || !exists('*sha256')
   e! test.ok
   wq! test.out
:endif
:"
:let testcase='test for empty string: '
:if sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for 1 char: '
:if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb'
: let res='ok'
:else[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1114 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for contains non-ascii char: '
:if sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:/^start:/,$wq! test.out
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 6 lines, 143 characters

"test.out" [New File] 6 lines, 143 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test90 = test61; then \
#	  if diff test.out test90.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test90.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test90.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test91.failed test.ok test.out X* viminfo
cp test91.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test91.in
[?25h[?8c[?25h[?0c[?25l[?1c"test91.in" 116 lines, 3240 charactersTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().
vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"
:" Use strings to test for memory leaks.
:" First, check that in an empty window, gettabvar() returns the correct value
:let t:testvar='abcd'
:$put =string(gettabvar(1,'testvar'))
:$put =string(gettabvar(1,'testvar'))
:" Test for getbufvar()
:let b:var_num = '1234'
:let def_num = '5678'
:$put =string(getbufvar(1, 'var_num'))
:$put =string(getbufvar(1, 'var_num', def_num))
:$put =string(getbufvar(1, ''))
:$put =string(getbufvar(1, '', def_num))
:unlet b:var_num
:$put =string(getbufvar(1, 'var_num', def_num))
:$put =string(getbufvar(1, ''))
:$put =string(getbufvar(1, '', def_num))[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 109 lines, 3127 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:tabnext
:3wincmd w
:unlet w:var_dict
:tabrewind
:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:$put =string(gettabwinvar(2, 9, ''))
:$put =string(gettabwinvar(2, 9, '', def_dict))
:$put =string(gettabwinvar(9, 3, ''))
:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict
:$put =string(gettabwinvar(2, 3, '&nux'))
:$put =string(gettabwinvar(2, 3, '&nux', 1))
:tabonly
:"
:/^start/,$wq! test.out
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 50 lines, 530 characters

"test.out" [New File] 50 lines, 530 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test91 = test61; then \
#	  if diff test.out test91.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test91.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test91.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test94.failed test.ok test.out X* viminfo
cp test94.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test94.in
[?25h[?8c[?25h[?0c[?25l[?1c"test94.in" 256 lines, 4824 charactersTest for Visual mode and operators

Tests for the two kinds of operations: Those executed with Visual mode
followed by an operator and those executed via Operator-pending mode. Also
part of the test are mappings, counts, and repetition with the . command.

Test cases:
- Visual modes (v V CTRL-V) followed by an operator; count; repeating
- Visual mode maps; count; repeating
  - Simple
  - With an Ex command (custom text object)
- Operator-pending mode maps
  - Simple
  - With Ex command moving the cursor
  - With Ex command and Visual selection (custom text object)
- Patch 7.3.879: Properly abort Ex command in Operator-pending mode

STARTTEST
:so small.vim
:set enc=utf-8 nocp viminfo+=nviminfo
:
:" User functions
:function MoveToCap()[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Visual mode and operators[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 211 lines, 3837 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTkv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '
:set selection=exclusive
0v3l^[gvcxxx^[
:$put ='---'
:/^start:/+2,$w! test.out
:q!
ENDTEST

start:

apple banana cherry

line 1 line 1
line 2 line 2
line 3 line 3
line 4 line 4
line 5 line 5
line 6 line 6[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 123 lines, 1328 characters

"test.out" [New File] 123 lines, 1328 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test94 = test61; then \
#	  if diff test.out test94.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test94.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test94.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test95.failed test.ok test.out X* viminfo
cp test95.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test95.in
[?25h[?8c[?25h[?0c[?25l[?1c"test95.in" 141 lines, 5827 charactersTest for regexp patterns with multi-byte support, using utf-8.
See test64 for the non-multi-byte tests.

A pattern that gives the expected result produces OK, so that we know it was
actually tried.

STARTTEST
:so small.vim
:so mbyte.vim
:set nocp encoding=utf-8 viminfo+=nviminfo nomore
:" tl is a List of Lists with:
:"    2: test auto/old/new  0: test auto/old  1: test auto/new
:"    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 = []
:
:"""" Multi-byte character tests. These will fail unless vim is compiled
:"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for regexp patterns with multi-byte support, using utf-8.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 131 lines, 5590 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:endif
:      endfor
:      unlet i
:    endif
:  endfor
:endfor
:unlet t tl e l
:
:" check that 'ambiwidth' does not change the meaning of \p
:set regexpengine=1 ambiwidth=single
:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=1 ambiwidth=double
:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=single
:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=double
:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
:
:/\%#=1^Results/,$wq! test.out
ENDTEST

Results of test95:
~                                                                               [?25h[?0c
[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 140 lines, 2022 characters

"test.out" [New File] 140 lines, 2022 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test95 = test61; then \
#	  if diff test.out test95.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test95.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test95.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test98.failed test.ok test.out X* viminfo
cp test98.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test98.in
[?25h[?8c[?25h[?0c[?25l[?1c"test98.in" 43 lines, 908 charactersTest for 'scrollbind' causing an unexpected scroll of one of the windows.
STARTTEST
:so small.vim
:" We don't want the status line to cause problems:
:set laststatus=0
:let g:totalLines = &lines * 20
:let middle = g:totalLines / 2
:wincmd n
:wincmd o
:for i in range(1, g:totalLines)
:    call setline(i, 'LINE ' . i)
:endfor
:exe string(middle)
:normal zt
:normal M
:aboveleft vert new
:for i in range(1, g:totalLines)
:    call setline(i, 'line ' . i)
:endfor
:exe string(middle)
:normal zt
:normal M
:" Execute the following two command at once to reproduce the problem.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'scrollbind' causing an unexpected scroll of one of the windows.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 791 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:setl scb | wincmd p
:setl scb
:wincmd w
:let topLineLeft = line('w0')
:wincmd p
:let topLineRight = line('w0')
:setl noscrollbind
:wincmd p
:setl noscrollbind
:q!
:%del _
:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight))
:w! test.out
:brewind
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 1 line, 51 characters

"test.out" [New File] 1 line, 51 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test98 = test61; then \
#	  if diff test.out test98.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test98.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test98.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test99.failed test.ok test.out X* viminfo
cp test99.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test99.in
[?25h[?8c[?25h[?0c[?25l[?1c"test99.in" 69 lines, 1400 charactersTests for regexp with multi-byte encoding and various magic settings.
Test matchstr() with a count and multi-byte chars.
See test44 for exactly the same test with re=1.

STARTTEST
:so mbyte.vim
:set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
:set re=2
/^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
f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with multi-byte encoding and various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/window.o window.c
[New File] 43 lines, 931 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
: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
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c"test.ok" 23 lines, 264 characters

"test.out" [New File] 23 lines, 264 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test99 = test61; then \
#	  if diff test.out test99.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test99.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test99.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test103.failed test.ok test.out X* viminfo
cp test103.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test103.in
[?25h[?8c[?25h[?0c[?25l[?1c"test103.in" 37 lines, 823 charactersTest for visual mode not being reset causing E315 error.
STARTTEST
:so small.vim
:enew
:let g:msg="Everything's fine."
:function! TriggerTheProblem()
:" At this point there is no visual selection because :call reset it.
:" Let's restore the selection:
:normal gv
:'<,'>del _
:try
:exe "normal \<Esc>"
:catch /^Vim\%((\a\+)\)\=:E315/
:echom 'Snap! E315 error!'
:let g:msg='Snap! E315 error!'
:endtry
:endfunction
:enew
:setl buftype=nofile
:call append(line('$'), 'Delete this line.')
:"
:"
:" NOTE: this has to be done by a call to a function because executing :del the[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for visual mode not being reset causing E315 error.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 723 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"ex-way will require the colon operator which resets the visual mode thus
:"preventing the problem:
:"
GV:call TriggerTheProblem()
:%del _
:call append(line('$'), g:msg)
:w! test.out
:brewind
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 2 lines, 20 characters

"test.out" [New File] 2 lines, 20 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test103 = test61; then \
#	  if diff test.out test103.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test103.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test103.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test104.failed test.ok test.out X* viminfo
cp test104.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test104.in
[?25h[?8c[?25h[?0c[?25l[?1c"test104.in" 30 lines, 698 charactersTests for :let.  vim: set ft=vim ts=8 :

STARTTEST
:so small.vim
:set runtimepath+=./sautest
:" Test to not autoload when assigning.  It causes internal error.
:try
:  let Test104#numvar = function('tr')
:  $put ='OK: ' . string(Test104#numvar)
:catch
:  $put ='FAIL: ' . v:exception
:endtry
:let a = 1
:let b = 2
:for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0
== 1 ? "a" : "b"}']
:  try
:    redir => messages
:    execute 'let' letargs
:    redir END
:    $put ='OK:'
:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')
:  catch[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :let.  vim: set ft=vim ts=8 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 24 lines, 618 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:    $put ='FAIL: ' . v:exception
:    redir END
:  endtry
:endfor
:/^Results/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 13 lines, 244 characters

"test.out" [New File] 13 lines, 244 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test104 = test61; then \
#	  if diff test.out test104.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test104.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test104.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test107.failed test.ok test.out X* viminfo
cp test107.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test107.in
[?25h[?8c[?25h[?0c[?25l[?1c"test107.in" 38 lines, 717 charactersTests for adjusting window and contents     vim: set ft=vim :

STARTTEST
:so small.vim
:new
:call setline(1, range(1,256))
:let r=[]
:func! GetScreenStr(row)
:   let str = ""
:   for c in range(1,3)
:let str .= nr2char(screenchar(a:row, c))
:   endfor
:   return str
:endfunc
:
:exe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
:
:exe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for adjusting window and contents     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 32 lines, 628 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(r, [line("w0"), s3])
:
:exe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 4 lines, 42 characters

"test.out" [New File] 4 lines, 42 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test107 = test61; then \
#	  if diff test.out test107.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test107.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test107.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test108.failed test.ok test.out X* viminfo
cp test108.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test108.in
[?25h[?8c[?25h[?0c[?25l[?1c"test108.in" 88 lines, 1329 charactersTests for backtrace debug commands.     vim: set ft=vim :

STARTTEST
:so small.vim
:lang mess C
:function! Foo()
:   let var1 = 1
:   let var2 = Bar(var1) + 9
:   return var2
:endfunction
:
:function! Bar(var)
:    let var1 = 2 + a:var
:    let var2 = Bazz(var1) + 4
:    return var2
:endfunction
:
:function! Bazz(var)
:    let var1 = 3 + a:var
:    let var3 = "another var"
:    return var1
:endfunction
:new[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for backtrace debug commands.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui.o gui.c
[New File] 83 lines, 1251 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTup
b
echo "fil is not frame or finish, it is file"
fil
echo "\n- relative backtrace movement\n"
fr -1
frame
fra +1
fram
echo "\n- go beyond limits does not crash\n"
fr 100
fra
frame -40
fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 84 lines, 1390 characters

"test.out" [New File] 84 lines, 1390 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test108 = test61; then \
#	  if diff test.out test108.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test108.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test108.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_autocmd_option.failed test.ok test.out X* viminfo
cp test_autocmd_option.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autocmd_option.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_autocmd_option.in" 77 lines, 2954 charactersTest for option autocommand

STARTTEST
:so small.vim
:if !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! test.out | qa! | endif
:fu! AutoCommand(match)
:let c=g:testcase
:let item=remove(g:options, 0)
:let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Scope:
<%s>\n", item[0], item[1], item[2], item[3])
:let c.=printf("Autocmd Option: <%s>,", a:match)
:let c.=printf(" OldVal: <%s>,", v:option_old)
:let c.=printf(" NewVal: <%s>,", v:option_new)
:let c.=printf(" Scope: <%s>\n", v:option_type)
:call setreg('r', printf("%s\n%s", getreg('r'), c))
:endfu
:au OptionSet * :call AutoCommand(expand("<amatch>"))
:let g:testcase="1: Setting number option\n"
:let g:options=[['number', 0, 1, 'global']]
:set nu
:let g:testcase="2: Setting local number option\n"
:let g:options=[['number', 1, 0, 'local']][?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for option autocommand[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 2896 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let g:testcase="13: Setting option backspace through setbufvar()\n"
:let g:options=[['backup', '', '1', 'local']]
: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
:call setbufvar(1, '&l:bk', 1)
: "should trigger, use correct option name
:call setbufvar(1, '&backup', 1)
:let g:testcase="14: Setting number option using setwinvar\n"
:let g:options=[['number', 0, 1, 'local']]
:call setwinvar(0, '&number', 1)
:" Write register now, because next test shouldn't output anything.
:$put r
:let @r=''
:let g:testcase="\n15: Setting key option, shouldn't trigger\n"
:let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
:setlocal key=blah
:setlocal key=
:$put =g:testcase
:$put r
:/^dummy text/,$w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 64 lines, 2700 characters

"test.out" [New File] 64 lines, 2700 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_autocmd_option = test61; then \
#	  if diff test.out test_autocmd_option.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_autocmd_option.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autocmd_option.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autoformat_join.in
[?25h[?8c[?25h[?0c[?25l[?1c"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:[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for setting the '[,'] marks when joining lines.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 9 lines, 265 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 8 lines, 292 characters

"test.out" [New File] 8 lines, 292 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_autoformat_join = test61; then \
#	  if diff test.out test_autoformat_join.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_autoformat_join.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autoformat_join.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_changelist.failed test.ok test.out X* viminfo
cp test_changelist.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_changelist.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_changelist.in" 22 lines, 288 charactersTest changelist position after splitting window
Set 'undolevels' to make changelist for sourced file

STARTTEST
:so small.vim
Gkylp:set ul=100
Gylp:set ul=100
gg
:vsplit
:try
:  normal g;
:  normal ggVGcpass^[
:catch
:  normal ggVGcfail^[
:finally
:  %w! test.out
:endtry
:qa!
ENDTEST

1
2
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest changelist position after splitting window[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 163 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 1 line, 5 characters

"test.out" [New File] 1 line, 5 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_changelist = test61; then \
#	  if diff test.out test_changelist.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_changelist.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_changelist.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_close_count.failed test.ok test.out X* viminfo
cp test_close_count.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_close_count.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_close_count.in" 153 lines, 2665 charactersTests for :[count]close! and :[count]hide     vim: set ft=vim :

STARTTEST
:so small.vim
:let tests = []
:for i in range(5)
:new
:endfor
:4wincmd w
:close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:$close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1wincmd w
:2close![?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :[count]close! and :[count]hide     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 41 lines, 749 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(tests, buffers)
:2wincmd w
:+1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(0, map(copy(tests), 'join(v:val, " ")'))
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:for i in range(5)
:new
:endfor
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:4wincmd w
:.hide[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 23 lines, 183 characters

"test.out" [New File] 23 lines, 183 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_close_count = test61; then \
#	  if diff test.out test_close_count.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_close_count.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_close_count.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_comparators.failed test.ok test.out X* viminfo
cp test_comparators.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_comparators.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_comparators.in" 21 lines, 283 characters" Test for expression comparators.   vim: set ft=vim :


STARTTEST
:so small.vim
:try
:  let oldisident=&isident
:  set isident+=#
:  if 1 is#1
:    $put ='ok'
:  else
:    $put ='ng'
:  endif
:finally
:  let &isident=oldisident
:endtry
:"
:/^marker/+1,$wq! test.out
ENDTEST

marker
~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c" Test for expression comparators.   vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 200 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 1 line, 3 characters

"test.out" [New File] 1 line, 3 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_comparators = test61; then \
#	  if diff test.out test_comparators.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_comparators.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_comparators.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_erasebackword.failed test.ok test.out X* viminfo
cp test_erasebackword.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_erasebackword.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_erasebackword.in" 19 lines, 427 charactersTest for erasing backword

STARTTEST
:so small.vim
:so mbyte.vim
:set encoding=utf-8
G
:/^test/,$w! test.out
:qa!
ENDTEST

test starts here:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for erasing backword[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 12 lines, 362 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 8 lines, 111 characters

"test.out" [New File] 8 lines, 111 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_erasebackword = test61; then \
#	  if diff test.out test_erasebackword.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_erasebackword.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_erasebackword.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_eval.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_eval.in" 247 lines, 6201 charactersTest for various eval features.   vim: set ft=vim :

Note: system clipboard is saved, changed and restored.

clipboard contents
something else

STARTTEST
:so small.vim
:set encoding=latin1
:set noswapfile
:lang C
:fun AppendRegContents(reg)
  call AppendRegParts(a:reg, getregtype(a:reg), getreg(a:reg), string(getreg(a:reg, 0, 1)), getreg(a:reg, 1), string(getreg(a:reg, 1, 1)))
:endfun
:fun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
  call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)', a:reg, a:type, a:cont, a:strcont, a:cont1, a:strcont1))
endfun
:command -nargs=? AR :call AppendRegContents(<q-args>)
:fun SetReg(...)
    call call('setreg', a:000)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for various eval features.   vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 233 lines, 6010 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 362 lines, 11279 characters

"test.out" [New File] 362 lines, 11279 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_eval = test61; then \
#	  if diff test.out test_eval.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_eval.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_eval.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_fixeol.failed test.ok test.out X* viminfo
cp test_fixeol.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_fixeol.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_fixeol.in" 40 lines, 780 charactersTests for 'fixeol'vim: set ft=vim :

STARTTEST
:" use Unix fileformat for consistency
:set ff=unix
:enew!
awith eol^[:w! XXEol
:enew!
:set noeol nofixeol
awithout eol^[:w! XXNoEol
:set eol fixeol
:bwipe XXEol XXNoEol
:"
:" try editing files with 'fixeol' disabled
:e! XXEol
ostays eol^[:set nofixeol
:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol
:w! XXTestNoEol
:bwipe XXEol XXNoEol XXTestEol XXTestNoEol
:set fixeol[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'fixeol'vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 698 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" Append "END" to each file so that we can see what the last written char was.
ggdGaEND^[:w >>XXEol
:w >>XXNoEol
:w >>XXTestEol
:w >>XXTestNoEol
:"
:" Concatenate the results
:e! test.out
a0^[:$r XXEol
:$r XXNoEol
Go1^[:$r XXTestEol
:$r XXTestNoEol
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
stays eol[?25h[?0c[?25l[?1c:[?25h[?0cset nofixeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! XXTestEol
[?25l[?1c"XXTestEol" [New File] 2 lines, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXNoEol
[?25l[?1c"XXNoEol" [Incomplete last line] 1 line, 11 charactersout eol
~                                                                               [?25h[?0c[?25l[?1c
stays without[?25h[?0c[?25l[?1c:[?25h[?0cset nofixeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! XXTestNoEol
[?25l[?1c"XXTestNoEol" [New File][Incomplete last line] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol XXNoEol XXTestEol XXTestNoEol
[?25l[?1cE319: Sorry, the command is not available in this version[?25h[?0c[?25l[?1c:[?25h[?0cset fixeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Append "END" to each file so that we can see what the last written char was.
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cEND[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXEol
[?25l[?1c"XXEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXNoEol
[?25l[?1c"XXNoEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXTestEol
[?25l[?1c"XXTestEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXTestNoEol
[?25l[?1c"XXTestNoEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Concatenate the results
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File][?25h[?0c[?25l[?1c0[?25h[?0c[?25l[?1c:[?25h[?0c$r XXEol
[?25l[?1c"XXEol" 2 lines, 13 characterswith eolEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXNoEol
[?25l[?1c"XXNoEol" 1 line, 15 characterswithout eolEND[?25h[?0c[?25l[?1c
1[?25h[?0c[?25l[?1c:[?25h[?0c$r XXTestEol
[?25l[?1c"XXTestEol" 3 lines, 23 characterswith eolstays eolEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXTestNoEol
[?25l[?1c"XXTestNoEol" 2 lines, 29 characterswithout eolstays withoutEND[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 10 lines, 84 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_fixeol = test61; then \
#	  if diff test.out test_fixeol.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_fixeol.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_fixeol.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_getcwd.failed test.ok test.out X* viminfo
cp test_getcwd.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_getcwd.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_getcwd.in" 96 lines, 2374 charactersTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :

STARTTEST
:so small.vim
:" Do all test in a separate window to avoid E211 when we recursively
:" delete the Xtopdir directory during cleanup
:"
:" This will cause a few errors, do it silently.
:set visualbell
:set nocp viminfo+=nviminfo
:"
:" On windows a swapfile in Xtopdir prevents it from being cleaned up.
:set noswapfile
:"
:function! GetCwdInfo(win, tab)
: let tab_changed = 0
: let mod = ":t"
: if a:tab > 0 && a:tab != tabpagenr()
:   let tab_changed = 1
:   exec "tabnext " . a:tab
: endif
: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)
: if tab_changed[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 90 lines, 2273 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:wincmd W
:lcd Xdir2
:call add(r, GetCwdInfo(0, 0))
:wincmd W
:lcd Xdir3
:call add(r, GetCwdInfo(0, 0))
:call add(r, GetCwdInfo(bufwinnr("x"), 0))
:call add(r, GetCwdInfo(bufwinnr("y"), 0))
:call add(r, GetCwdInfo(bufwinnr("z"), 0))
:let tp_nr = tabpagenr()
:tabrewind
:call add(r, GetCwdInfo(3, tp_nr))
:call add(r, GetCwdInfo(2, tp_nr))
:call add(r, GetCwdInfo(1, tp_nr))
:"
:call writefile(r, test_out, "a")
:q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 18 lines, 192 characters

"test.out" [New File] 18 lines, 192 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_getcwd = test61; then \
#	  if diff test.out test_getcwd.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_getcwd.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_getcwd.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_insertcount.failed test.ok test.out X* viminfo
cp test_insertcount.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_insertcount.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_insertcount.in" 14 lines, 204 charactersTests for repeating insert and replace.

STARTTEST
:so small.vim
:/Second
4gro
:/^First/,$wq! test.out
:" get here when failed and in Insert mode
^[:.wq! test.out
ENDTEST

First line
Second line
Last line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for repeating insert and replace.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 111 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 3 lines, 36 characters

"test.out" [New File] 3 lines, 36 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_insertcount = test61; then \
#	  if diff test.out test_insertcount.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_insertcount.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_insertcount.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listchars.failed test.ok test.out X* viminfo
cp test_listchars.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listchars.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listchars.in" 54 lines, 705 charactersTests for 'listchars' display with 'list' and :list

STARTTEST
:so small.vim
:set ff=unix
:let g:lines = []
:function GetScreenCharsForLine(lnum)
:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val))'), '')
:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\<CR>"
:set listchars+=tab:>-,space:.,trail:<
:set list
:
/^start:/
:normal! jzt
GG
GG
GG
GG
GGH:
:set listchars-=trail:<[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'listchars' display with 'list' and :list[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 431 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTGG
GG
GG
GG
GG:
:put =g:lines
:'[,']w! test.out
ENDTEST[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 16 lines, 178 characters

"test.out" [New File] 16 lines, 178 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listchars = test61; then \
#	  if diff test.out test_listchars.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listchars.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listchars.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listlbr.failed test.ok test.out X* viminfo
cp test_listlbr.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listlbr.in" 119 lines, 2868 charactersTest for linebreak and list option (non-utf8)

STARTTEST
:so small.vim
:if !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |
endif
:10new|:vsp|:vert resize 20
:put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width)
:let c=''
:for j in range(1,4)
:for i in range(1,a:width)
:let c.=nr2char(screenchar(j, i))
:endfor
:let c.="\n"
:endfor
:return c
:endfu
:fu! DoRecordScreen()
:wincmd l
:$put =printf(\"\n%s\", g:test)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for linebreak and list option (non-utf8)[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 114 lines, 2792 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTabcd{ef
ghijklm
no}pqrs^[2k0f{^V^Vc%^[
:"
:let g:test ="Test 11: using block replace mode after wrapping"
:$put =g:test
:set linebreak wrap
Go^[150aa^[yypk147|^Vjr0
:"
:let g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$":set list listchars=space:_,trail:-,tab:>-,eol:$
:$put =g:test
:let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 62 lines, 2030 characters

"test.out" [New File] 62 lines, 2030 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listlbr = test61; then \
#	  if diff test.out test_listlbr.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listlbr.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_search_mbyte.failed test.ok test.out X* viminfo
cp test_search_mbyte.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_search_mbyte.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_search_mbyte.in" 15 lines, 226 charactersTest for search('multi-byte char', 'bce')

STARTTEST
:source small.vim
:source mbyte.vim
:set encoding=utf-8
:/^Test bce:/+1
:$put =search('A', 'bce', line('.'))
:1;/^Results:/,$wq! test.out
ENDTEST

Results:

Test bce:
A
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for search('multi-byte char', 'bce')[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 140 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0csource small.vim
[?25l[?1c"test.ok" 5 lines, 27 characters

"test.out" [New File] 5 lines, 27 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_search_mbyte = test61; then \
#	  if diff test.out test_search_mbyte.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_search_mbyte.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_search_mbyte.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_utf8.failed test.ok test.out X* viminfo
cp test_utf8.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_utf8.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_utf8.in" 46 lines, 1245 charactersTests for Unicode manipulationsvim: set ft=vim :

STARTTEST
:so small.vim
:set encoding=utf-8
:"
:" Visual block Insert adjusts for multi-byte char
:new
:exe ":norm! gg0l\<C-V>jjIx\<Esc>"
:let r = getline(1, '$')
:"
:bwipeout!
:$put=r
:"
:" Test for built-in function strchars()
:$put=strchars(str)
:$put=strchars(str, 0)
:$put=strchars(str, 1)
:endfor
:"
:" Test for customlist completion[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for Unicode manipulationsvim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 1151 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete2(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete3(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 22 lines, 86 characters

"test.out" [New File] 22 lines, 86 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_utf8 = test61; then \
#	  if diff test.out test_utf8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_utf8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_utf8.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_wordcount.failed test.ok test.out X* viminfo
cp test_wordcount.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_wordcount.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_wordcount.in" 126 lines, 2815 charactersTest for wordcount() function

STARTTEST
:so small.vim
:so mbyte.vim
:set enc=utf8
:set selection=inclusive fileformat=unix fileformats=unix
:new
:fu DoRecordWin(...)
:wincmd k
:if exists("a:1")
:call cursor(a:1)
:endif
:let result=[]
:call add(result, g:test)
:call add(result, getline(1, '$'))
:call add(result, wordcount())
:wincmd j
:return result
:endfu
:fu PutInWindow(args)
:wincmd k
:%d _[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for wordcount() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 121 lines, 2753 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:0
v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:let g:test="Test 11: visual mode, single line"
:wincmd k
:set ls=2 stl=%{STL()}
:" start visual mode quickly and select complete buffer
:2
0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:/^RESULT test/,$w! test.out
:qa!
ENDTEST
RESULT test:[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 34 lines, 1905 characters

"test.out" [New File] 34 lines, 1905 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_wordcount = test61; then \
#	  if diff test.out test_wordcount.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_wordcount.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_wordcount.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test11.in
[?25h[?8c[?25h[?0c[?25l[?1c"test11.in" 84 lines, 3366 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for autocommands:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 48 lines, 2298 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:au! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>"))
:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
: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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 61 lines, 1599 characters

"test.out" [New File] 61 lines, 1599 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test11 = test61; then \
#	  if diff test.out test11.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test11.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test11.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test52.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for reading and writing files with conversion for Win32.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 57 lines, 1333 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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

[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c"test.ok" 18 lines, 1374 characters

"test.out" [New File] 18 lines, 1374 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test52 = test61; then \
#	  if diff test.out test52.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test52.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test52.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test85.failed test.ok test.out X* viminfo
cp test85.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test85.in
[?25h[?8c[?25h[?0c[?25l[?1c"test85.in" 85 lines, 1868 charactersTest for Lua interface and luaeval() function

STARTTEST
:so small.vim
:so lua.vim
:set nocompatible viminfo+=nviminfo
:lua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
:lua h = vim.dict(); h.list = l
:call garbagecollect()
/^1
:" change buffer contents
:lua curbuf = vim.buffer()
:lua curline = vim.eval"line('.')"
:lua curbuf[curline] = "1 changed line 1"
:" scalar test
:let tmp_string = luaeval('"string"')
:let tmp_1000 = luaeval('1000')
:if printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
:let scalar_res = "OK"
:else
:let scalar_res = "FAILED"
:endif
:call append(search("^1"), "scalar test " . scalar_res)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Lua interface and luaeval() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 77 lines, 1775 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")
:lua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
:lua d[4] = d[0]
:lua d[5] = d[1]
:lua d[6] = d[2]
:lua d[7] = d[3]
:lua d[3] = nil
:lua d[2] = nil
:lua d[1] = nil
:lua d[0] = nil
:lua d = nil
:$put =string(d)

:?^1?,$w! test.out
:qa!
ENDTEST

1 line 1
2 line 2
3 line 3[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 7 lines, 206 characters

"test.out" [New File] 7 lines, 206 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test85 = test61; then \
#	  if diff test.out test85.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test85.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test85.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test86.failed test.ok test.out X* viminfo
cp test86.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test86.in
[?25h[?8c[?25h[?0c[?25l[?1c"test86.in" 1711 lines, 48481 charactersTests for various python features.     vim: set ft=vim :

NOTE: This will cause errors when run under valgrind.
This would require recompiling Python with:
  ./configure --without-pymalloc
See http://svn.python.org/view/python/trunk/Misc/README.valgrind?view=markup

STARTTEST
:so small.vim
:set encoding=latin1
:set noswapfile
:if !has('python') | e! test.ok | wq! test.out | endif
:lang C
:fun Test()
:py import vim
:py cb = vim.current.buffer
:let l = []
:py l=vim.bindeval('l')
:py f=vim.bindeval('function("strlen")')
:" Extending List directly with different types
:py l.extend([1, "as'd", [1, 2, f, {'a': 1}]])
:$put =string(l)
:$put =string(l[-1])[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for various python features.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1700 lines, 48188 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:   endif
:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 1445 lines, 67439 characters

"test.out" [New File] 1445 lines, 67439 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test86 = test61; then \
#	  if diff test.out test86.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test86.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test86.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test87.failed test.ok test.out X* viminfo
cp test87.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test87.in
[?25h[?8c[?25h[?0c[?25l[?1c"test87.in" 1707 lines, 49069 charactersTests for various python features.     vim: set ft=vim :

STARTTEST
:so small.vim
:set noswapfile
:if !has('python3') | e! test.ok | wq! test.out | endif
:lang C
:fun Test()
:py3 import vim
:py3 cb = vim.current.buffer
:let l = []
:py3 l=vim.bindeval('l')
:py3 f=vim.bindeval('function("strlen")')
:" Extending List directly with different types
:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]
:$put =string(l)
:$put =string(l[-1])
:try
:  $put =string(l[-4])
:catch
:  $put =v:exception[:13]
:endtry
:" List assignment[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for various python features.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1701 lines, 48985 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:/^start:/,$w! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 1445 lines, 77744 characters

"test.out" [New File] 1445 lines, 77744 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test87 = test61; then \
#	  if diff test.out test87.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test87.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test87.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test12.in
[?25h[?8c[?25h[?0c[?25l[?1c"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/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'directory' option.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 965 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 10 lines, 127 characters

"test.out" [New File] 10 lines, 127 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test12 = test61; then \
#	  if diff test.out test12.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test12.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test12.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test25.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 540 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 1 line, 23 characters

"test.out" [New File] 1 line, 23 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test25 = test61; then \
#	  if diff test.out test25.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test25.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test25.in; \
#	  fi \
#	fi"
# 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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1              -o objects/option.o option.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui_gtk.o gui_gtk.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test49.in
[?25h[?8c[?25h[?0c[?25l[?1c"test49.in" 32 lines, 705 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
:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cThis is a test of the script language.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 23 lines, 475 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:endfor
:for v in keys(g:)
:  silent! exe "unlet " . v
:endfor
:unlet v
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 84 lines, 2484 characters

"test.out" [New File] 84 lines, 2484 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test49 = test61; then \
#	  if diff test.out test49.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test49.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test49.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test97.failed test.ok test.out X* viminfo
cp test97.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test97.in
[?25h[?8c[?25h[?0c[?25l[?1c"test97.in" 23 lines, 484 charactersTest whether glob()/globpath() return correct results with certain escaped
characters.

STARTTEST
:so small.vim
:" make sure glob() doesn't use the shell
:set shell=doesnotexist
:" consistent sorting of file names
:set nofileignorecase
:e! test.out
:$put =glob('Xxx\{')
:$put =glob('Xxx\$')
:w! Xxx{
:w! Xxx\$
:$put =glob('Xxx\{')
:$put =glob('Xxx\$')
:"
:$put =string(globpath('sautest/autoload', '*.vim'))
:$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest whether glob()/globpath() return correct results with certain escaped[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 377 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 8 lines, 138 characters

"test.out" [New File] 8 lines, 138 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test97 = test61; then \
#	  if diff test.out test97.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test97.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test97.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listlbr_utf8.failed test.ok test.out X* viminfo
cp test_listlbr_utf8.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr_utf8.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listlbr_utf8.in" 134 lines, 4027 charactersTest for linebreak and list option in utf-8 mode

STARTTEST
:so small.vim
:if !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!
test.out | qa! | endif
:so mbyte.vim
:set encoding=utf8
:if &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
:10new|:vsp|:vert resize 20
:put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width, lines)
:let c=''
:for j in range(1,a:lines)
:for i in range(1,a:width)
:let c.=nr2char(screenchar(j, i))
:endfor
:let c.="\n"
:endfor
:return c
:endfu[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for linebreak and list option in utf-8 mode[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 129 lines, 3948 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set list nolinebreak cc=3
:sign define foo text=^Vuff0b
:sign place 1 name=foo line=50 buffer=2
:norm! 2kztj
:let line1=line('.')
0GGlGGlGGlGGl
:let line2=line('.')
:let attr2=attr
:let attr=[]
0GGlGGlGGlGGl
:redraw!
:let line=ScreenChar(winwidth(0),3)
:call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 57 lines, 1882 characters

"test.out" [New File] 57 lines, 1882 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listlbr_utf8 = test61; then \
#	  if diff test.out test_listlbr_utf8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listlbr_utf8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr_utf8.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test54.failed test.ok test.out X* viminfo
cp test54.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test54.in
[?25h[?8c[?25h[?0c[?25l[?1c"test54.in" 22 lines, 658 charactersSome tests for buffer-local autocommands

STARTTEST
:so small.vim
:e xx
:if has("vms")
: !del test.out.*
: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out
:else
: !rm -f test.out
: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out
:endif
:e somefile" here, autocommand for xx shall write test.out
:" but autocommand shall not apply to buffer named <buffer>:bwipe xx" here, autocommand shall be auto-deleted
:e xx" nothing shall be written
:e somefile" nothing shall be written
:qa!
ENDTEST

start of test file xx
end of test file xx[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cSome tests for buffer-local autocommands[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 15 lines, 555 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 1 line, 29 characters

"test.out" [New File] 1 line, 29 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test54 = test61; then \
#	  if diff test.out test54.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test54.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test54.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test17.in
[?25h[?8c[?25h[?0c[?25l[?1c"test17.in" 135 lines, 2431 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
:"
:if has("unix")
:let $CDIR = "."
/CDIR
:else
:if has("amiga")
:let $TDIR = "/testdir"
:else
:let $TDIR = "."
:endif
/TDIR
:endif[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 564 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 33 lines, 655 characters

"test.out" [New File] 33 lines, 655 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test17 = test61; then \
#	  if diff test.out test17.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test17.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test17.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test30.in
[?25h[?8c[?25h[?0c[?25l[?1c"test30.in" 237 lines, 3762 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=
:/^unix/;/eof/-1w! XXUnix
:/^dos/;/eof/-1w! XXDos
:set bin noeol
:$w! XXMac
Gonoeol^[
:$w! XXEol
:set nobin eol
:enew!
:bwipe XXUnix XXDos XXMac
:" create mixed format files
:if has("vms")
: !copy XXUnix,XXDos XXUxDs.
: !copy XXUnix,XXMac XXUxMac.
: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for a lot of variations of the 'fileformats' option[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 221 lines, 3592 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72
Go8^[:$r XXtt81
:$r XXtt82
Go9^[:$r XXtt91
:$r XXtt92
:$r XXtt93
Go10^[:$r XXUnix
:set nobinary ff&
:w
:qa!
ENDTEST

unix
unix
eof

dos^M
dos^M
eof

mac^Mmac^M[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 130 lines, 786 characters

"test.out" [New File] 130 lines, 786 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test30 = test61; then \
#	  if diff test.out test30.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test30.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test30.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test32.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for insert expansion[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c[?25l[?1c
:so small.vim[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 533 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 15 lines, 175 characters

"test.out" [New File] 15 lines, 175 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test32 = test61; then \
#	  if diff test.out test32.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test32.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test32.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test58.in
[?25h[?8c[?25h[?0c[?25l[?1c"test58.in" 656 lines, 11024 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for spell checking.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2591 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" NOSLITSUGS
:call TestOne('8', '8')
:" Numbers
:call TestOne('9', '9')
:"
:" clean up for valgrind
:delfunc TestOne
:set spl= enc=latin1
:"
gg:/^test output:/,$wq! test.out
ENDTEST

1affstart
SET ISO8859-1


[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 289 lines, 3844 characters

"test.out" [New File] 289 lines, 3844 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test58 = test61; then \
#	  if diff test.out test58.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test58.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test58.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui.o gui.c
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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test59.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 106 lines, 2520 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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


[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 270 lines, 3685 characters

"test.out" [New File] 270 lines, 3685 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test59 = test61; then \
#	  if diff test.out test59.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test59.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test59.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test72.in
[?25h[?8c[?25h[?0c[?25l[?1c"test72.in" 146 lines, 2110 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/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for undo file.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 135 lines, 1913 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:bwipe!
:e Xtestfile
foo2bar
:set key=
/bar
:.w >>test.out
u:.w >>test.out
u:.w >>test.out
u:.w >>test.out
:"
:" Rename the undo file so that it gets cleaned up.
:if has("vms")
: call rename("_un_Xtestfile", "Xtestundo")
:else
: call rename(".Xtestfile.un~", "Xtestundo")
:endif
:qa!
ENDTEST

1111 -----
2222 -----

123456789[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 31 lines, 197 characters

"test.out" [New File] 31 lines, 197 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test72 = test61; then \
#	  if diff test.out test72.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test72.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test72.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test78.failed test.ok test.out X* viminfo
cp test78.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test78.in
[?25h[?8c[?25h[?0c[?25l[?1c"test78.in" 46 lines, 1464 charactersInserts 10000 lines with text to fill the swap file with two levels of pointer
blocks.  Then recovers from the swap file and checks all text is restored.

We need about 10000 lines of 100 characters to get two levels of pointer
blocks.

STARTTEST
:so small.vim
:set nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
:e! Xtest
ggdG
:let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
:let i = 1
:let linecount = 10000
:while i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
:preserve
:" get the name of the swap file
:redir => swapname
:swapname
:redir END
:let swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][:cntrl:]]*$', '\1', '')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cInserts 10000 lines with text to fill the swap file with two levels of pointer[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1208 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set nobin
:new
:only!
:bwipe! Xtest
:call rename('Xswap', swapname)
:recover Xtest
:call delete(swapname)
:new
:call append(0, 'recovery start')
:wincmd w
:let linedollar = line('$')
:if linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected ". linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let linecount = linedollar | endif
:let i = 1
:while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call append(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
:q!
:call append(line('$'), 'recovery end')
:w! test.out
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 3 lines, 29 characters

"test.out" [New File] 3 lines, 29 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test78 = test61; then \
#	  if diff test.out test78.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test78.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test78.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test83.failed test.ok test.out X* viminfo
cp test83.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test83.in
[?25h[?8c[?25h[?0c[?25l[?1c"test83.in" 76 lines, 1273 charactersTests for tag search with !_TAG_FILE_ENCODING.

STARTTEST
:so mbyte.vim
:set enc=utf8
:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
: e! test.ok
: w! test.out
: qa!
:endif
:
:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
:
ggdG:
:
:call setline('.', 'Results of test83')
:
:" case1:
:new
:set tags=Xtags1[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for tag search with !_TAG_FILE_ENCODING.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 58 lines, 1021 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'
:else
: close
: put ='case3: ok'
:endif
:close
:
:wq! test.out
ENDTEST

text for tags1
abcdefghijklmnopqrs

text for tags2
ABC

text for tags3
ABC

tags1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c"test.ok" 4 lines, 48 characters

"test.out" [New File] 4 lines, 48 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test83 = test61; then \
#	  if diff test.out test83.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test83.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test83.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test89.failed test.ok test.out X* viminfo
cp test89.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test89.in
[?25h[?8c[?25h[?0c[?25l[?1c"test89.in" 71 lines, 1514 characters- Some tests for setting 'number' and 'relativenumber'
  This is not all that useful now that the options are no longer reset when
  setting the other.
- Some tests for findfile() function

STARTTEST
:so small.vim
:set hidden nocp nu rnu viminfo+=nviminfo
:redir @a | set nu? rnu? | redir END
:e! xx
:redir @b | set nu? rnu? | redir END
:e! #
:$put ='results:'
:$put a
:$put b
:"
:set nonu nornu
:setglobal nu
:setlocal rnu
:redir @c | setglobal nu? | redir END
:set nonu nornu
:setglobal rnu
:setlocal nu[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c- Some tests for setting 'number' and 'relativenumber'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 63 lines, 1305 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =':set MUST reset the other global value'
:$put g
:$put h
:"
:let cwd=getcwd()
:cd ..
:" Tests may be run from a shadow directory, so an extra cd needs to be done to
:" get above src/
:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
:$put =''
:$put ='Testing findfile'
:$put =''
:set ssl
:$put =findfile('test19.in','src/test*')
:exe "cd" cwd
:cd ..
:$put =findfile('test19.in','test*')
:$put =findfile('test19.in','testdir')
:exe "cd" cwd
:/^results/,$w! test.out
:q!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c"test.ok" 28 lines, 356 characters

"test.out" [New File] 28 lines, 356 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test89 = test61; then \
#	  if diff test.out test89.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test89.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test89.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_arglist.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_arglist.vim" 318 lines, 6653 characters

"test.ok" [New File]

"test.out" [New File] 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_assert.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_assert.vim" 127 lines, 2933 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_autochdir.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_autochdir.vim" 17 lines, 332 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_backspace_opt.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_backspace_opt.vim" 59 lines, 1673 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_breakindent.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_breakindent.vim" 241 lines, 7365 characters

"test.ok" [New File]

"test.out"if test -z "/usr/bin/glib-compile-resources"; then touch auto/gui_gtk_gresources.h; else \
	/usr/bin/glib-compile-resources --target=auto/gui_gtk_gresources.h --sourcedir=../pixmaps --generate --c-name=gui_gtk --manual-register gui_gtk_res.xml; \
fi
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/pty.o pty.c
 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_bufwintabinfo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_bufwintabinfo.vim" 116 lines, 3459 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cdo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cdo.vim" 205 lines, 5116 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_channel.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_channel.vim" 1641 lines, 47075 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_charsearch.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_charsearch.vim" 62 lines, 1475 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cmdline.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cmdline.vim" 243 lines, 7346 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_command_count.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_command_count.vim" 191 lines, 4742 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_crypt.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_crypt.vim" 83 lines, 2590 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cscope.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cscope.vim" 279 lines, 10568 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_diffmode.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_diffmode.vim" 237 lines, 4954 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_digraph.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_digraph.vim" 461 lines, 14928 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_display.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_display.vim" 39 lines, 849 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_farsi.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_farsi.vim" 84 lines, 2881 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fnameescape.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_fnameescape.vim" 21 lines, 467 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fold.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_fold.vim" 97 lines, 3328 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gf.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gf.vim" 33 lines, 1138 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gn.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gn.vim" 93 lines, 2821 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gui.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gui.vim" 36 lines, 838 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hardcopy.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hardcopy.vim" 62 lines, 2001 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hide.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hide.vim" 97 lines, 2443 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_history.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_history.vim" 106 lines, 3567 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hlsearch.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hlsearch.vim" 34 lines, 1013 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_increment.vim" 760 lines, 19011 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment_dbcs.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_increment_dbcs.vim" 30 lines, 604 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_job_fails.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_job_fails.vim" 19 lines, 598 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_json.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_json.vim" 287 lines, 10700 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_langmap.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_langmap.vim" 28 lines, 628 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_man.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_man.vim" 60 lines, 1358 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_marks.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_marks.vim" 26 lines, 775 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_matchadd_conceal.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_matchadd_conceal.vim" 289 lines, 9276 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_mksession.vim" 104 lines, 2315 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_mksession_utf8.vim" 104 lines, 2328 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_nested_function.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_nested_function.vim" 67 lines, 1305 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_netbeans.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_netbeans.vim" 80 lines, 2145 characters

"test.ok" [New File]

"test.out"gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui_gtk_f.o gui_gtk_f.c
 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_normal.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_normal.vim" 2280 lines, 58740 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_packadd.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_packadd.vim" 238 lines, 8288 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_perl.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_perl.vim" 123 lines, 3037 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_profile.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_profile.vim" 146 lines, 6247 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_quickfix.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_quickfix.vim" 1693 lines, 46351 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_ruby.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_ruby.vim" 34 lines, 820 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_search.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_search.vim" 296 lines, 8731 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_signs.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_signs.vim" 199 lines, 6383 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_smartindent.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_smartindent.vim" 14 lines, 376 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_startup.vim" 185 lines, 4581 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_startup_utf8.vim" 64 lines, 1366 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_stat.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_stat.vim" 64 lines, 1598 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_substitute.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_substitute.vim" 41 lines, 1151 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_syntax.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_syntax.vim" 164 lines, 4101 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_system.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_system.vim" 92 lines, 2910 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_textobjects.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_textobjects.vim" 43 lines, 946 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_undo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_undo.vim" 265 lines, 6936 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_usercommands.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_usercommands.vim" 104 lines, 2527 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viminfo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_viminfo.vim" 515 lines, 13496 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viml.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_viml.vim" 1316 lines, 31904 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_visual.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_visual.vim" 25 lines, 506 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_window_id.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_window_id.vim" 103 lines, 2714 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_writefile.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_writefile.vim" 16 lines, 490 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_latin.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot_latin.vim" 7 lines, 280 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot_utf8.vim" 11 lines, 440 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot.vim" 48 lines, 1233 characters

"test.ok" [New File]

"test.out" 0 lines, 0 characters written
[?25h[?0c

Test results:
ALL DONE
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-tiny/testdir'
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/json_test.o json_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui_beval.o gui_beval.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui_gtk.o gui_gtk.c
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o json_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o              objects/memfile.o objects/message.o objects/json_test.o    -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo  -lselinux -lacl -lattr -ldl           
link.sh: Linked fine
./json_test || exit 1; echo  passed;
passed
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memfile_test.o memfile_test.c
/usr/bin/glib-compile-resources --target=auto/gui_gtk_gresources.c --sourcedir=../pixmaps --generate --c-name=gui_gtk --manual-register gui_gtk_res.xml
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/lua5.2 -o objects/if_lua.o if_lua.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/os_unix.o os_unix.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o memfile_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o              objects/json.o objects/message.o objects/memfile_test.o    -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo  -lselinux -lacl -lattr -ldl           
if test -z "/usr/bin/glib-compile-resources"; then touch auto/gui_gtk_gresources.h; else \
	/usr/bin/glib-compile-resources --target=auto/gui_gtk_gresources.h --sourcedir=../pixmaps --generate --c-name=gui_gtk --manual-register gui_gtk_res.xml; \
fi
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/pty.o pty.c
link.sh: Linked fine
./memfile_test || exit 1; echo  passed;
passed
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/message_test.o message_test.c
/usr/bin/perl -e 'unless ( $] >= 5.005 ) { for (qw(na defgv errgv)) { print "#define PL_$_ $_\n" }}' > auto/if_perl.c
/usr/bin/perl /usr/share/perl/5.24/ExtUtils/xsubpp -prototypes -typemap \
    /usr/share/perl/5.24/ExtUtils/typemap if_perl.xs >> auto/if_perl.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui_gtk_f.o gui_gtk_f.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE  -o objects/if_perlsfio.o if_perlsfio.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/pathdef.o auto/pathdef.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/python3.5m -DPYTHON3_HOME='L"/usr"' -pthread -fPIE  -o objects/if_python3.o if_python3.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/popupmnu.o popupmnu.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui_beval.o gui_beval.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/quickfix.o quickfix.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o message_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o              objects/json.o objects/memfile.o objects/message_test.o    -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo  -lselinux -lacl -lattr -ldl           
link.sh: Linked fine
./message_test || exit 1; echo  passed;
passed
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-tiny'
touch build-stamp-vim-tiny
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/tcl8.6  -D_REENTRANT=1  -D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1  -o objects/if_tcl.o if_tcl.c
/usr/bin/glib-compile-resources --target=auto/gui_gtk_gresources.c --sourcedir=../pixmaps --generate --c-name=gui_gtk --manual-register gui_gtk_res.xml
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/lua5.2 -o objects/if_lua.o if_lua.c
/usr/bin/perl -e 'unless ( $] >= 5.005 ) { for (qw(na defgv errgv)) { print "#define PL_$_ $_\n" }}' > auto/if_perl.c
/usr/bin/perl /usr/share/perl/5.24/ExtUtils/xsubpp -prototypes -typemap \
    /usr/share/perl/5.24/ExtUtils/typemap if_perl.xs >> auto/if_perl.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/ruby-2.3.0 -I/usr/include/arm-linux-gnueabihf/ruby-2.3.0 -DRUBY_VERSION=23 -o objects/if_ruby.o if_ruby.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE  -o objects/if_perlsfio.o if_perlsfio.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/regexp.o regexp.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/python3.5m -DPYTHON3_HOME='L"/usr"' -pthread -fPIE  -o objects/if_python3.o if_python3.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/tcl8.6  -D_REENTRANT=1  -D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1  -o objects/if_tcl.o if_tcl.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/netbeans.o netbeans.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/channel.o channel.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/ruby-2.3.0 -I/usr/include/arm-linux-gnueabihf/ruby-2.3.0 -DRUBY_VERSION=23 -o objects/if_ruby.o if_ruby.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/json.o json.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/netbeans.o netbeans.c
dh_testdir
dh_prep -p vim-athena
*** DEBIAN *** BUILDING VARIANT vim-athena
/usr/bin/make -C src/vim-athena
make[1]: Entering directory '/<<PKGBUILDDIR>>/src/vim-athena'
mkdir -p objects
touch objects/.dirstamp
CC="gcc -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time    " srcdir=. sh ./osdef.sh
creating auto/pathdef.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/main.o main.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/popupmnu.o popupmnu.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/quickfix.o quickfix.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/channel.o channel.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memfile.o memfile.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/message.o message.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/regexp.o regexp.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/json.o json.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/main.o main.c
cd xxd; CC="gcc" CFLAGS="-Wdate-time -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1" LDFLAGS="-L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed" \
	/usr/bin/make -f Makefile
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk/xxd'
gcc -Wdate-time -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -DUNIX -o xxd xxd.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk/xxd'
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk/po'
OLD_PO_FILE_INPUT=yes msgfmt -v -o af.mo af.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/screen.o screen.c
1423 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ca.mo ca.po
1697 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o cs.mo cs.po
1284 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o de.mo de.po
1701 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o en_GB.mo en_GB.po
78 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o eo.mo eo.po
1916 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o es.mo es.po
1733 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o fi.mo fi.po
1902 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o fr.mo fr.po
1916 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ga.mo ga.po
1914 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o it.mo it.po
1897 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.mo ja.po
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ko.mo ko.po
1728 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ko.UTF-8.mo ko.UTF-8.po
1728 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o nb.mo nb.po
1668 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o nl.mo nl.po
1213 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o no.mo no.po
1668 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.mo pl.po
1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pt_BR.mo pt_BR.po
1735 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ru.mo ru.po
1882 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sk.mo sk.po
1628 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sv.mo sv.po
1697 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o uk.mo uk.po
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o vi.mo vi.po
1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.UTF-8.mo zh_CN.UTF-8.po
1634 translated messages, 3 fuzzy translations.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.mo zh_CN.po
1633 translated messages, 3 fuzzy translations.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_TW.UTF-8.mo zh_TW.UTF-8.po
1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_TW.mo zh_TW.po
1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o cs.cp1250.mo cs.cp1250.po
1284 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.sjis.mo ja.sjis.po
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.euc-jp.mo ja.euc-jp.po
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.cp1250.mo pl.cp1250.po
1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.UTF-8.mo pl.UTF-8.po
1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ru.cp1251.mo ru.cp1251.po
1882 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sk.cp1250.mo sk.cp1250.po
1628 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o uk.cp1251.mo uk.cp1251.po
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.cp936.mo zh_CN.cp936.po
1633 translated messages, 3 fuzzy translations.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk/po'
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk/po'
make[2]: Nothing to be done for 'converted'.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk/po'
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/arabic.o arabic.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memfile.o memfile.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/buffer.o buffer.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/message.o message.c
cd xxd; CC="gcc" CFLAGS="-Wdate-time -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1" LDFLAGS="-L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed" \
	/usr/bin/make -f Makefile
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk3/xxd'
gcc -Wdate-time -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -DUNIX -o xxd xxd.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/blowfish.o blowfish.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk3/xxd'
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk3/po'
OLD_PO_FILE_INPUT=yes msgfmt -v -o af.mo af.po
1423 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ca.mo ca.po
1697 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o cs.mo cs.po
1284 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o de.mo de.po
1701 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o en_GB.mo en_GB.po
78 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o eo.mo eo.po
1916 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o es.mo es.po
1733 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o fi.mo fi.po
1902 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o fr.mo fr.po
1916 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ga.mo ga.po
1914 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o it.mo it.po
1897 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.mo ja.po
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ko.mo ko.po
1728 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ko.UTF-8.mo ko.UTF-8.po
1728 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o nb.mo nb.po
1668 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o nl.mo nl.po
1213 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o no.mo no.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/charset.o charset.c
1668 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.mo pl.po
1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pt_BR.mo pt_BR.po
1735 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ru.mo ru.po
1882 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sk.mo sk.po
1628 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sv.mo sv.po
1697 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o uk.mo uk.po
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o vi.mo vi.po
1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.UTF-8.mo zh_CN.UTF-8.po
1634 translated messages, 3 fuzzy translations.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.mo zh_CN.po
1633 translated messages, 3 fuzzy translations.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_TW.UTF-8.mo zh_TW.UTF-8.po
1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_TW.mo zh_TW.po
1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o cs.cp1250.mo cs.cp1250.po
1284 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.sjis.mo ja.sjis.po
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.euc-jp.mo ja.euc-jp.po
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.cp1250.mo pl.cp1250.po
1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.UTF-8.mo pl.UTF-8.po
1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ru.cp1251.mo ru.cp1251.po
1882 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sk.cp1250.mo sk.cp1250.po
1628 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o uk.cp1251.mo uk.cp1251.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/search.o search.c
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.cp936.mo zh_CN.cp936.po
1633 translated messages, 3 fuzzy translations.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk3/po'
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk3/po'
make[2]: Nothing to be done for 'converted'.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk3/po'
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/arabic.o arabic.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/buffer.o buffer.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/crypt.o crypt.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/crypt_zip.o crypt_zip.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/screen.o screen.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/dict.o dict.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/sha256.o sha256.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/diff.o diff.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/spell.o spell.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/blowfish.o blowfish.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/digraph.o digraph.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/charset.o charset.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/edit.o edit.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/crypt.o crypt.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/crypt_zip.o crypt_zip.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/dict.o dict.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/search.o search.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/spellfile.o spellfile.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/diff.o diff.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/digraph.o digraph.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/sha256.o sha256.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/eval.o eval.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/edit.o edit.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/spell.o spell.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/syntax.o syntax.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/evalfunc.o evalfunc.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/tag.o tag.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/spellfile.o spellfile.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/eval.o eval.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/term.o term.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ui.o ui.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/syntax.o syntax.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_cmds.o ex_cmds.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/undo.o undo.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/evalfunc.o evalfunc.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/userfunc.o userfunc.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/window.o window.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_cmds2.o ex_cmds2.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/tag.o tag.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_cmds.o ex_cmds.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/term.o term.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_docmd.o ex_docmd.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/netbeans.o netbeans.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/channel.o channel.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ui.o ui.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/undo.o undo.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_cmds2.o ex_cmds2.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/json.o json.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/main.o main.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/userfunc.o userfunc.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memfile.o memfile.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/message.o message.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_docmd.o ex_docmd.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_eval.o ex_eval.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/window.o window.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_getln.o ex_getln.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o vim objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o           objects/netbeans.o objects/channel.o  objects/json.o objects/main.o objects/memfile.o objects/message.o        -lm -ltinfo -lnsl  -lselinux -lacl -lattr -lgpm -ldl           
link.sh: Linked fine
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-basic'
[ yes != "yes" ] || flock debian /usr/bin/make -j1 -C src/vim-basic test
make[1]: warning: -jN forced in submake: disabling jobserver mode.
make[1]: Entering directory '/<<PKGBUILDDIR>>/src/vim-basic'
/usr/bin/make -f Makefile vim
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-basic'
make[2]: 'vim' is up to date.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-basic'
if test -n "yes" -a -f po/Makefile; then \
	cd po; /usr/bin/make -f Makefile check VIM=../vim; \
fi
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-basic/po'
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq af.po
touch af.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ca.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui.o gui.c
touch ca.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.po
touch cs.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq de.po
touch de.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq en_GB.po
touch en_GB.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq eo.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui_athena.o gui_athena.c
touch eo.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq es.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/farsi.o farsi.c
touch es.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fi.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_eval.o ex_eval.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui_x11.o gui_x11.c
touch fi.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fr.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/fileio.o fileio.c
touch fr.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ga.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/pty.o pty.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_getln.o ex_getln.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui_beval.o gui_beval.c
touch ga.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq it.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui_at_sb.o gui_at_sb.c
touch it.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui_at_fs.o gui_at_fs.c
touch ja.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.po
touch ko.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.UTF-8.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/lua5.2 -o objects/if_lua.o if_lua.c
touch ko.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nb.po
touch nb.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nl.po
/usr/bin/perl -e 'unless ( $] >= 5.005 ) { for (qw(na defgv errgv)) { print "#define PL_$_ $_\n" }}' > auto/if_perl.c
/usr/bin/perl /usr/share/perl/5.24/ExtUtils/xsubpp -prototypes -typemap \
    /usr/share/perl/5.24/ExtUtils/typemap if_perl.xs >> auto/if_perl.c
touch nl.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq no.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE  -o objects/if_perlsfio.o if_perlsfio.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/python3.5m -DPYTHON3_HOME='L"/usr"' -pthread -fPIE  -o objects/if_python3.o if_python3.c
touch no.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/fold.o fold.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/farsi.o farsi.c
touch pl.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pt_BR.po
touch pt_BR.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/fileio.o fileio.c
touch ru.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/getchar.o getchar.c
touch sk.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sv.po
touch sv.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/tcl8.6  -D_REENTRANT=1  -D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1  -o objects/if_tcl.o if_tcl.c
touch uk.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq vi.po
touch vi.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.UTF-8.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/ruby-2.3.0 -I/usr/include/arm-linux-gnueabihf/ruby-2.3.0 -DRUBY_VERSION=23 -o objects/if_ruby.o if_ruby.c
touch zh_CN.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/netbeans.o netbeans.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/hardcopy.o hardcopy.c
touch zh_CN.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.UTF-8.po
touch zh_TW.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.po
touch zh_TW.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.cp1250.po
touch cs.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.sjis.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/channel.o channel.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/fold.o fold.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/hashtab.o hashtab.c
touch ja.sjis.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.euc-jp.po
touch ja.euc-jp.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.cp1250.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/if_cscope.o if_cscope.c
touch pl.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.UTF-8.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/getchar.o getchar.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/json.o json.c
touch pl.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.cp1251.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/if_xcmdsrv.o if_xcmdsrv.c
touch ru.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.cp1250.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/main.o main.c
touch sk.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.cp1251.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/list.o list.c
touch uk.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.cp936.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memfile.o memfile.c
touch zh_CN.cp936.ck
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-basic/po'
if test vim != vim -a ! -r vim; then \
	ln -s vim vim; \
fi
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/mark.o mark.c
cd testdir; /usr/bin/make -f Makefile  VIMPROG=../vim  SCRIPTSOURCE=../../runtime
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-basic/testdir'
rm -f test.log messages
rm -rf test1.failed test.out X* viminfo tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok benchmark.out wrongtermsize
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test1.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 1133 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/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
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" If columns or lines are too small, create wrongtermsize.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" (Some tests will fail. When columns and/or lines are small)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Write a single line to test.out to check if testing works at all.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cthis is a test[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 15 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! small.vim
[?25l[?1c"small.vim" [New File] 1 line, 1 character written[?25h[?0c[?25l[?1c:[?25h[?0cw! tiny.vim
[?25l[?1c"tiny.vim" [New File] 1 line, 1 character written[?25h[?0c[?25l[?1ce! test.ok
w! test.outqa![?25h[?0c[?25l[?1c:[?25h[?0cw! mbyte.vim
[?25l[?1c"mbyte.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cw! mzscheme.vim
[?25l[?1c"mzscheme.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cw! lua.vim
[?25l[?1c"lua.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +multi_byte feature supported, make mbyte.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("multi_byte") | sp another | w! mbyte.vim | q | endif
[?25l[?1c"another" [New File]
"mbyte.vim" 0 lines, 0 characters writtene! test.ok[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +mzscheme feature supported, make mzscheme.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("mzscheme") | sp another | w! mzscheme.vim | q | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +lua feature supported, make lua.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("lua") | sp another | w! lua.vim | q | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Otherwise write small.vim to skip the test.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif 1 | q! | endif
[?25l[?1c[?25h[?0crm -rf X* 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test3.in
[?25h[?8c[?25h[?0c[?25l[?1c"test3.in" 2342 lines, 23089 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c/* vim: set cin ts=4 sw=4 : */[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 125 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo modeline
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit                " read modeline
[?25l[?1c"test3.in"2342L, 23089Cif (test)cmd1;cmd2;if (test)cmd1;else[?25h[?0c[?25l[?1c/[?25h[?0cstart of AUTO
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cend of AUTO
[?25l[?1c956 lines to indent...
9500
850
750
650
550
450
350
250
150
50 lines to indent... 
957 lines indented [?25h[?0c[?25l[?1c/^STARTTEST
}break;default:baz();baz();break;
    }
}

/* 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
 */[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 93C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset tw=0 wm=60 columns=80 noai fo=croq
[?25l[?1c}break;default:baz();baz();break;
    }
}

/* 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
 */[?25h[?0c[?25l[?1c/[?25h[?0cserious/e
[?25l[?1c[?25h[?0c[?25l[?1c


-- INSERT --
about life, the
 * universe, and the
 * rest important big[?25h[?0c[?25l[?1c
* comment[?25h[?0c[?25l[?1c
/^STARTTEST
*/
    /* insert " about life, the universe, and the rest" after "serious" */
}

STARTTEST[?25h[?0c[?25l[?1c
:set nocin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6L, 78C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/comments
joabout life^[/happens
jothere^[/below
oline^[/this
Ohello^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nocin
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ccomments
[?25l[?1c{
    /** Testing for comments, without 'cin' set[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
-- INSERT --
about life[?25h[?0c[?25l[?1c
/[?25h[?0chappens
[?25l[?1c/*
* what happens here?[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
-- INSERT --
there[?25h[?0c[?25l[?1c
/[?25h[?0cbelow
[?25l[?1c/*the end of the comment, try inserting a line below */[?25h[?0c[?25l[?1c
-- INSERT --
line[?25h[?0c[?25l[?1c
/[?25h[?0cthis
[?25l[?1c/* how aboutthis one */[?25h[?0c[?25l[?1c
-- INSERT --hello[?25h[?0c[?25l[?1c
this one */[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 18C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/vec2
==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cvec2
[?25l[?1c{
    var = this + that + vec[0] * vec[0]+ vec[1] * vec[1]+ vec2[2] * vec[2];[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5L, 51C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=}4
/testing1
k2==/testing2
k2==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=}4
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ctesting1
[?25l[?1c{asdf asdflkajds f;
    if (tes & ting) {asdf asdf asdf ;asdfa sdf asdf;}
    testing1;[?25h[?0c [?25l[?1c

/[?25h[?0ctesting2
[?25l[?1cif (tes & ting)
    {asdf asdf asdf ;asdfa sdf asdf;}
    testing2;[?25h[?0c [?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4L, 36C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=(0,)20
/main
=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,)20
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cmain
[?25l[?1cmain ( int first_par, /*[?25h[?0c[?25l[?1c
19 lines to indent...
20indented [?25h[?0c[?25l[?1c
* Comment for[?25h[?0c[?25l[?1c
/^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();[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4L, 36C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=es,n0s
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cmain
[?25l[?1c[?25h[?0c[?25l[?1c8 lines to indent...
9indented [?25h[?0c
[?25l[?1c/^STARTTEST
else
    {bar();
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c{[?25h[?0c[?25l[?1c
11 lines to indent...
12indented [?25h[?0c[?25l[?1c
do[?25h[?0c[?25l[?1c
/^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();
    }[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1L, 6C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c


[?25l[?1c8 lines to indent...
9indented [?25h[?0c
   [?25l[?1c/^STARTTEST
n();
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino={s,e-s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0csgcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/hardcopy.o hardcopy.c
et cino={s,e-s
[?25l[?1c[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
7 lines to indent...
8indented     {[?25h[?0c[?25l[?1c
if ( k() )[?25h[?0c[?25l[?1c
/^STARTTEST
{l();} else { /* Start (two words) end */m();}
    n();    /* should be under the if () */
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino={s,fs
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 25C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=/ foo[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino={s,fs
[?25l[?1c[?25h[?0c[?25l[?1cvoid bar(void)
{[?25h[?0c[?25l[?1c
/[?25h[?0c foo
[?25l[?1c30 lines to indent...
31indented     {[?25h[?0c[?25l[?1c/^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 */[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 25C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cwhile
[?25l[?1c[?25h[?0c[?25l[?1c
-- INSERT --
here[?25h[?0c[?25l[?1c
if ( a )
    i[?25h[?0c[?25l[?1c
/^STARTTEST
a;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino= com=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/message.o message.c
3L, 109C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/comment
olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^Mcmd();^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino= com=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ccomment
[?25l[?1ca()
{
label1:/* hmm */// comment[?25h[?0c[?25l[?1c
-- INSERT --label2: b();
label3 /* post */:
/* pre */ label4:f(/*com*/);if (/*com*/)cmd();[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set comments& comments^=s:/*,m:**,ex:*/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 53C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/simple
=5j[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments^=s:/*,m:**,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0csimple
[?25l[?1c/*
  * A simple comment[?25h[?0c[?25l[?1c
5 lines to indent...
6indented * A simple comment[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
/^STARTTEST
/*
** A different comment
*/

STARTTEST[?25h[?0c[?25l[?1c
:set cino=c0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 70C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/*
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=c0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments-=s1:/* comments^=s0:/*
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST
/*********A comment.
    *********/
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=c0,C1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 73C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/*
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=c0,C1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments-=s1:/* comments^=s0:/*
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST
/*********
    A comment.
    *********/
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 17C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s,U1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s,U1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (   c1[?25h[?0c[?25l[?1c
/^STARTTEST
&& (   c2|| c3))foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,w1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,w1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (   c1[?25h[?0c[?25l[?1c
/^STARTTEST
&& (   c2|| c3))foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
c = c1 && ([?25h[?0c[?25l[?1c
/^STARTTEST
c2 ||c3) && c4;
    if (c1 && c2)foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s,m1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s,m1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
c = c1 && ([?25h[?0c[?25l[?1c
/^STARTTEST
c2 ||c3
    ) && c4;
    if (c1 && c2
    )foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=b1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=b1
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
9 lines to indent...
10 lines indented [?25h[?0c[?25l[?1c
switch (x)[?25h[?0c[?25l[?1c
/^STARTTEST
{case 1:a = b;break;default:a = 0;break;
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,W5
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,W5
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
10 lines to indent...
11indented [?25h[?0c[?25l[?1c
invokeme([?25h[?0c[?25l[?1c
/^STARTTEST
argu,ment);
    invokeme(argu,ment);
    invokeme(argu,ment);
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=/6
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=/6
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
3 lines to indent...
4indented [?25h[?0c[?25l[?1c
statement;[?25h[?0c[?25l[?1c
/^STARTTEST
// comment 1// comment 2
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 34C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-12kdd]]/comment 1/+1
==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c==ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
/[?25h[?0ccomment 1/+1
[?25l[?1cstatement;// comment 1
    // comment 2[?25h[?0c[?25l[?1c    // comment 2[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cino=g0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=g0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cclass CAbc
{[?25h[?0c[?25l[?1c
6 lines to indent...
7indented [?25h[?0c[?25l[?1c
int Test() { return FALSE; }[?25h[?0c[?25l[?1c
/^STARTTEST
public: // comment
    void testfall();
protected:
    void testfall();
};

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,gs,hs
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 29C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,gs,hs
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cclass Foo : public Bar
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
public:[?25h[?0c[?25l[?1c
/^STARTTEST
virtual void method1(void) = 0;virtual void method2(int arg1,int arg2,int arg3) = 0;
};

STARTTEST[?25h[?0c[?25l[?1c
:set cino=+20
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 24C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=+20
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid
foo()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (a)[?25h[?0c[?25l[?1c
/^STARTTEST
{
    } elseasdf;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,W2s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,W2s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1c
{[?25h[?0c[?25l[?1c
34 lines to indent...
35indented [?25h[?0c[?25l[?1c
averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd([?25h[?0c[?25l[?1c
/^STARTTEST
dec)->asdfasdfasdf(asdfadsf,asdfasdf,asdfasdf,),func(asdfadf,asdfasdf),asdasdf);
}

STARTTEST
:set cino=M1
2kdd]]=][
ENDTEST

int main ()
{
    if (cond1 &&cond2)foo;
}[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=M1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c4 lines to indent...
5indented [?25h[?0c
   [?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,ts
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,ts
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
7 lines to indent...
8indented [?25h[?0c[?25l[?1c
void func(int a[?25h[?0c[?25l[?1c
/^STARTTEST
#if defined(FOO), int b, int c
#endif)
{
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
void[?25h[?0c[?25l[?1c
/^STARTTEST
func(int a
#if defined(FOO), int b, int c
#endif
    )
{
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 22C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=7][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=7][
ENDTEST[?25h[?0c

[?25l[?1c
69 lines to indent...
50
7indented [?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
/^STARTTEST
int a,int b)
{
}void
func6(int a)
{
}

STARTTEST
:set cino&
:set cino+=l1
2kdd2j=][
ENDTEST

void func(void)
{
    int tab[] =
    {1, 2, 3,4, 5, 6};[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino+=l1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c

[?25l[?1c22 lines to indent...
23indented [?25h[?0c
[?25l[?1c/^STARTTEST
break;case baz: {printf("baz");break;}case quux:printf("But don't break the indentation of this instruction\n");break;
    }
}

STARTTEST
:set cino&
2kdd2j=][
ENDTEST

void func(void)
{
    cout << "a"
    << "b"
    << ") :"
    << "c";
}[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c

[?25l[?1c6 lines to indent...
7indented     << "b"
        << ") :"
        << "c";[?25h[?0c
[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set com=s1:/*,m:*,ex:*/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 38C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]3jofoo();^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset com=s1:/*,m:*,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1cvoid func(void)
{[?25h[?0c[?25l[?1c/** This is a comment.*/[?25h[?0c[?25l[?1c
-- INSERT --
foo();[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cino&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
/^STARTTEST
{
    for (int i = 0; i < 10; ++i)if (i & 1) {foo(1);} elsefoo(0);
    baz();
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=k2s,(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd3j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd3j=][ENDTEST[?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
23 lines to indent...
24indented [?25h[?0c[?25l[?1c
{[?25h[?0c[?25l[?1c
/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(s
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c23 lines to indent...
24indented         && condition2)
        action();    && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(s,U1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c24 lines to indent...
25indented         && condition2)
        action();    && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0,W4
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c29 lines to indent...
30indented         && condition2)
        action();         && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,u2
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c18 lines to indent...
19indented         && condition2)
        action();        && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0,w1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c27 lines to indent...
28indented         && condition2)
        action();         && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2,(s
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c14 lines to indent...
15indented [?25h[?0c
[?25l[?1c/^STARTTEST
if (c1 && (c2 ||c3))foo;
    if (c1 &&(c2 || c3))
    {
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=N-s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 47C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^NAMESPACESTART
=/^NAMESPACEEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=N-s
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^NAMESPACESTART
[?25l[?1cNAMESPACESTART[?25h[?0c[?25l[?1c
/[?25h[?0c^NAMESPACEEND
[?25l[?1c81 lines to indent...
50
82indented [?25h[?0c[?25l[?1c/^STARTTEST
namespace test test2
{
    1111111111111111111;
}
namespace111111111
{
    111111111111111111;
}
NAMESPACEEND


STARTTEST
:set cino=j1,J1
/^JSSTART
=/^JSEND
ENDTEST

JSSTART
var bar = {
foo: {
that: this,
some: ok,
},[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c12 lines to indent...
13indented     foo: {
        that: this,
        some: ok,
    },[?25h[?0c[?25l[?1c/^STARTTEST
"bar":{a : 2,b: "123abc",x: 4,"y": 5
    }
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c5 lines to indent...
6indented [?25h[?0c[?25l[?1c/^STARTTEST
var foo = [
    1,
    2,
    3
];
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c7 lines to indent...
8indented [?25h[?0c[?25l[?1c/^STARTTEST
function bar() {
    var foo = [1,2,3
    ];
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c58 lines to indent...
509indented [?25h[?0c[?25l[?1c/^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: [[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c14 lines to indent...
15indented     $(this).data(class_name+'_public',$.extend({},{
        foo: 'bar',
        bar: 2,
        foobar: [[?25h[?0c[?25l[?1c/^STARTTEST
1,2,3],callback: function(){return true;}
    }, options||{}));
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c16 lines to indent...
17indented [?25h[?0c[?25l[?1c/^STARTTEST
2,3],callback: function(){return true;}}, options||{}));
    }
})(jQuery);
JSEND

STARTTEST
:set cino=j1,J1,+2
/^JSSTART
=/^JSEND
ENDTEST

JSSTART
// Results of JavaScript indent
// 1
(function(){
var a = [
'a',[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 38C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1,+2
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c149 lines to indent...
100
50 lines to indent... 
150 lines indented     var a = [
      'a',[?25h[?0c[?25l[?1c/^STARTTEST
var a,
    b,
    c,
    d,
    e,
    f,
    g,
    h,
    i;
JSEND

STARTTEST
:set cin cino&
/start of define
=/end of define
ENDTEST

/* start of define */
{
}
#define AAA \
BBB\
CCC[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 48C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin cino&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of define
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cend of define
[?25l[?1c11 lines to indent...
12indented     BBB\
    CCC[?25h[?0c[?25l[?1c/^STARTTEST
#define CNT \
    1 + \
    2 + \
    4
/* end of define */

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 61C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c226 fewer lines    c,
    d,
    e,    f,    g,    h,    i;JSEND/* start of define */
{}#define AAA \
    BBB\
    CCC#define CNT \
    1 + \
    2 + \4
/* end of define */[?25h[?0c[?25l[?1c:[?25h[?0c1;/start of AUTO/,$wq! test.out
[?25l[?1c"test.out" [New] 2096L, 20188C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test3 = test61; then \
#	  if diff test.out test3.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test3.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test3.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test4.in
[?25h[?8c[?25h[?0c[?25l[?1c"test4.in" 34 lines, 960 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
:set fo+=r" issue #57 do not move cursor on <c-o> when autoindent is set
Go# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that changes current buffer on BufEnter event.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 20 lines, 678 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:?startstart?,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter Xxx brew
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of
[?25l[?1cstartstart
start of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0c.,/end of/w! Xxx   " write test file Xxx
[?25l[?1c"Xxx" [New] 7L, 124C written[?25h[?0c[?25l[?1c:[?25h[?0cset ai modeline modelines=3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx             " split to Xxx, autocmd will do :brew
[?25l[?1c"Xxx" 7L, 124CTest for autocommand that changes current buffer on BufEnter event.
Check if modelines are interpreted for the correct buffer.STARTTESTo small.vim:set nocompatible viminfo+=nviminfo
:au BufEnter Xxx brew/start of.,/end of/w!" write test file Xxx
:set ai modeline modelines=3:sp Xxx    " split to Xxx, autocmd will do :brew
test4.in                                                                        :set fo+=rssue #57 do not move cursor on <c-o> when autoindent is setGo# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.outqa!ENDTESTstartstart of test file Xxx
test4.in                                                                        test4.in" line 1 of 34 --2%-- col 1[?25h[?0c[?25l[?1c: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[?25h[?0c[?25l[?1c?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --        this should be auto-indented[+][+][?25h[?0c[?25l[?1c
end of test file Xxx[?25h[?0c[?25l[?1c:[?25h[?0c                   " Append text with autoindent to this file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau! BufEnter Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbuf Xxx            " go to Xxx, no autocmd anymore
[?25l[?1c"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         [?25h[?0c[?25l[?1c?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --this should be in column 1[+][?25h[?0c[?25l[?1c:[?25h[?0cwq " append text without autoindent to Xxx
[?25l[?1c"Xxx8L, 151C written: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 aothis should be auto-indented^[
:                   " Append text with autoindent to this file
:au! BufEnter Xxx:buf Xxx            " go to Xxx, no autocmd anymoreG?this is aothis should be in column 1^[:wq " append text without autoindent to XxxG:r Xxx   nclude Xxx in the current file:set fo+=r" issue #57 do not move cursor on <c-o> when autoindent is setGo# abcdef^[2hi^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.out
:qa!ENDTESTstarstart of test file Xxx[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a testthis should be auto-indented
end of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0cr Xxx             " include Xxx in the current file
[?25l[?1c"Xxx" 8L, 151C
start of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0cset fo+=r          " issue #57 do not move cursor on <c-o> when autoindent is 

set
[?25l[?1c:au! BufEnter Xxx[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a test
this should be in column 1
end of test file Xxx
[?25h[?0c[?25l[?1c
-- INSERT --
# abcdef[?25h[?0c[?25l[?1c
-- INSERT --
-- (insert) --
# def[?25h[?0c[?25l[?1cINSERT --defo[?25h[?0cd[?25l[?1c[?25h[?0c[?25l[?1c
-- INSERT --
# abcdef[?25h[?0c[?25l[?1c
-- INSERT --
-- (insert) --[?25h[?0c[?25l[?1c
-- INSERT --def:[?25h[?0cd[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c:[?25h[?0c?startstart?,$w! test.out
[?25l[?1c"test.out" [New] 20L, 330C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test4 = test61; then \
#	  if diff test.out test4.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test4.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test4.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test5.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that deletes the current buffer on BufLeave event.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 664 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufLeave Xxx bwipe
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx               " write test file Xxx
[?25l[?1c"Xxx" [New File] 7 lines, 124 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx                         " split to Xxx
[?25l[?1c"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                                                                             ?start?,$w! test.outWrite current file contentsbwipe test.out      delete alternate bufferau bufleave test5.in bwipebwipe!                         " 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                                                                        [?25h[?0c[?25l[?1c:[?25h[?0cbwipe                          " delete buffer Xxx, now we're back here
[?25l[?1cTest 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 hereG?this is aothis is some more text^[                    Append some text to this file
:?start?,$w! test.outWrite 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 1[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a test
end of test file Xxx[?25h[?0c[?25l[?1c
?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c
this is some more text[?25h[?0c[?25l[?1c
end of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0c                               " Append some text to this file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?start?,$w! test.out           " Write current file contents
[?25l[?1c"test.out" [New File] 8 lines, 147 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe test.out                 " delete alternate buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau bufleave test5.in bwipe
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!                         " delete current buffer, get an empty one
[?25l[?1cError 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[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1cthis is another test line[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 26 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c                               " append an extra line to the output file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test5 = test61; then \
#	  if diff test.out test5.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test5.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test5.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test7.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that changes the buffer list, when doing ":ball".[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 508 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of
[?25l[?1c[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx1   " write test file Xxx1
[?25l[?1c"Xxx1" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx1
[?25l[?1c"Xxx1" 4 lines, 77 charactersstart of test file Xxx1this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx1                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx1
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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 Xxx1[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx2    " write test file Xxx2
[?25l[?1c"Xxx2" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx2
[?25l[?1c"Xxx2" 4 lines, 77 charactersstart of test file Xxx2this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx2                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx2
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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 Xxx2[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx3    " write test file Xxx3
[?25l[?1c"Xxx3" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx3
[?25l[?1c"Xxx3" 4 lines, 77 charactersstart of test file Xxx3this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx3                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx3
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost Xxx2 bwipe
[?25l[?1c[?25h[?0c[?25l[?1c4[?25h[?0c[?25l[?1c:[?25h[?0cball                 " open window for all args, close Xxx2
[?25l[?1c"Xxx1"4 lines, 77 characters

"Xxx2" 4 lines, 77 characters

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c.,$w! test.out          " Write contents of this file
[?25l[?1c"test.out" [New File] 4 lines, 77 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c: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 Xxx4
test7.in [+]                                                                    start of test file Xxx1this is a testthis is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx1                                                                            [?25h[?0c
test7.in [+]                                                                    Xxx1                                                                            [?25l[?1c:[?25h[?0cw >>test.out        " Append contents of second window (Xxx1)
[?25l[?1c"test.out" 4 lines, 77 characters appended[?25h[?0ctest7.in [+]                                                                    Xxx1                                                                            [?25l[?1c:[?25h[?0c/^start of/,$w >>test.out   " Append contents of last window (this file)
[?25l[?1csearch hit BOTTOM, continuing at TOP"test.out" 4 lines, 77 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test7 = test61; then \
#	  if diff test.out test7.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test7.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test7.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test8.in
[?25h[?8c[?25h[?0c[?25l[?1c"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('$')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for BufWritePre autocommand that deletes or unloads the buffer.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1054 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTif 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWritePre Xxx1 bunload
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWritePre Xxx2 bwipe
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of
[?25l[?1c
start of Xxx[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c
:[?25h[?0c.,/end of/w! Xxx1  " write test file Xxx1
[?25l[?1c"Xxx1" [New File] 3 lines, 31 characters written[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx2   " write test file Xxx2
[?25l[?1c"Xxx2" [New File] 3 lines, 31 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! Xxx2                " edit Xxx2
[?25l[?1c"Xxx2" 3 lines, 31 charactersstart of Xxx2
        testend of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbdel test8.in^I^I" delete this file from the buffer list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce Xxx1                 " edit Xxx1
[?25l[?1c"Xxx1" 3 lines, 31 characters1
[?25h[?0c[?25l[?1c:[?25h[?0cw                      " write it, will unload it and give an error msg
[?25l[?1c"Xxx2"3 lines, 31 characters

E203: Autocommands deleted or unloaded buffer to be written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out            " Write contents of this file
[?25l[?1c"test.out" [New File] 3 lines, 31 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! Xxx2                " start editing Xxx2
[?25l[?1c"Xxx2" 3 lines, 31 charactersstart of Xxx2test
end of Xxx"Xxx2" 3 lines, 31 characters[?25h[?0c[?25l[?1c:[?25h[?0cbwipe test.out         " remove test.out from the buffer list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw                      " write it, will delete the buffer and give an error ms

g[?25l[?1c"Xxx1"3 lines, 31 characters
E203: Autocommands deleted or unloaded buffer to be written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out           " Append contents of this file
[?25l[?1c"test.out" 3 lines, 31 characters appended

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau! BufWritePre
[?25l[?1cstart of Xxx1test
end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0cfunc CloseAll()
[?25l[?1c
:  [?25h[?0c  let i = 0

[?25l[?1c:  [?25h[?0c  while i <= bufnr('$')

[?25l[?1c:    [?25h[?0c    if i != bufnr('%') && bufloaded(i)

[?25l[?1c:      [?25h[?0c      exe  i . "bunload"

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let i += 1

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cstart of Xxx1test
end of Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfunc WriteToOut()
[?25l[?1c
:  [?25h[?0c  edit! test.out

[?25l[?1c:  [?25h[?0c  $put ='VimLeave done'

[?25l[?1c:  [?25h[?0c  write

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cstart of Xxx1test
end of Xxx
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset viminfo='100,nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufUnload * call CloseAll()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau VimLeave * call WriteToOut()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce small.vim
[?25l[?1cError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"small.vim" 1 line, 1 character

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0csp mbyte.vim
[?25l[?1c"mbyte.vim" 0 lines, 0 characters~                                                                               ~                                                                               ~                                                                               mbyte.vim                                                                       small.vim                                                                       "mbyte.vim" 0 lines, 0 characters[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1cError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"test.out" 6 lines, 62 characters

"test.out" 7 lines, 76 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test8 = test61; then \
#	  if diff test.out test8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test8.in; \
#	  fi \
#	fi"
# 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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memline.o memline.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test9.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Bufleave autocommand that deletes the buffer we are about to edit.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 117 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufLeave test9.in bwipe yy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce yy
[?25l[?1cE143: Autocommands unexpectedly deleted new buffer yy[?25h[?0c[?25l[?1c:[?25h[?0c/^start of/,$w! test.out      " Write contents of this file
[?25l[?1c"test.out" [New File] 2 lines, 42 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test9 = test61; then \
#	  if diff test.out test9.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test9.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test9.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test14.in
[?25h[?8c[?25h[?0c[?25l[?1c"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\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>"
:else
: let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"
:endif
:exe "normal " . tt
:unlet tt
:.w >>test.out[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for "vaBiB", end could be wrong.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 56 lines, 1141 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 */{}}}[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cStart cursor here
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c{ 
                        cmd;    /* <-- Start cursor here */ 
                        { 
                        } 
                [?25h[?0c[?25l[?1c                cmd; 
                }[?25h[?0c[?25l[?1c


6 fewer lines        }Piece of Java{        tt m1 {                t1;e1[?25h[?0c[?25l[?1c:[?25h[?0c?Bug?,/Piece/-2w! test.out
[?25l[?1c"test.out" [New File] 3 lines, 44 characters written[?25h[?0c[?25l[?1c/[?25h[?0c^- Bug
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cs/u/~u~/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cs/i/~u~/
[?25l[?1cuuun "vPPPP" on this text (Webb):
[?25h[?0c[?25l[?1c:[?25h[?0cs/o/~~~/
[?25l[?1cuuuuuuuuun this text (Webb):
[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 48 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cif has("ebcdic")
[?25l[?1c
:  [?25h[?0c: let tt = "o\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>

"
[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:$put =@/
/^substitute
:keeppatterns s/asdf/xyz/
:$put =@/
/^substitute[?25h[?0c[?25l[?1c:[?25h[?0cexe "normal " . tt
[?25l[?1cABC !a^Og^G8[?25h[?0c[?25l[?1c:[?25h[?0cunlet tt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset vb
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Piece
[?25l[?1c[?25h[?0c[?25l[?1c{A[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1ctt m2 {[?25h[?0c[?25l[?1c{B[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1ct2;} e2tt m3 {[?25h[?0c[?25l[?1c{C[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1c{DC[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c{EA[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c{F[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 3 characters appended[?25h[?0c[?25l[?1c}G e1[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c
[?25l[?1cif (x){t3;}} e3[?25h[?0c[?25l[?1c}H e3[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c[?25l[?1c
}[?25h[?0c[?5h[?5l[?25l[?1c}I[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 3 characters appended[?25h[?0c[?25l[?1c}JH e3[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 8 characters appended[?25h[?0c[?25l[?1c}K e2[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c[?25l[?1c{LF[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^foobar
[?25l[?1cfoobar[?25h[?0c[?25l[?1c
:[?25h[?0clet startline = line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall search('foobar', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0ccall search('^$', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall search('^$', 'bc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ctwo
[?25l[?1csubstitute foo asdf

one two[?25h[?0c[?25l[?1c
:[?25h[?0ccall search('.', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), getline('.')[col('.') - 1:])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cs/foo/bar/
[?25l[?1cbar
[?25h[?0c[?25l[?1c:[?25h[?0c$put =@/
[?25l[?1csearch()
0
1
1
two
foo[?25h[?0c[?25l[?1c
/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0ckeeppatterns s/asdf/xyz/
[?25l[?1cxyz[?25h[?0c[?25l[?1c:[?25h[?0c$put =@/
[?25l[?1c
^substitute[?25h[?0c[?25l[?1c
/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c$put =@0
[?25l[?1c
substitute bar xyz[?25h[?0c[?25l[?1c
/[?25h[?0cbar /e
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =@0
[?25l[?1c
substitute bar xyz[?25h[?0c[?25l[?1c

:[?25h[?0ckeeppatterns /xyz
[?25l[?1c[?25h[?0c[?25l[?1c
/bar /exyz[?25h[?0c[?25l[?1c:[?25h[?0c/^search()/,$w >>test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 9 lines, 58 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test14 = test61; then \
#	  if diff test.out test14.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test14.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test14.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test15.in
[?25h[?8c[?25h[?0c[?25l[?1c"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/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :right on text with embedded TAB.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 401 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=65
[?25l[?1c[?25h[?0c[?25l[?1c
test for :left[?25h[?0c[?25l[?1c
:[?25h[?0c/^\s*test for :left/,/^\s*test for :center/ left
[?25l[?1csearch hit BOTTOM, continuing at TOPtest for :left[?25h[?0c[?25l[?1c:[?25h[?0c/^\s*test for :center/,/^\s*test for :right/ center
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^\s*test for :right/,/^xxx/-1 right
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fo+=tcroql tw=72
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cxxxxxxxx$
[?25l[?1casxa;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[?25h[?0c
[?25l[?1c
 xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xxxx xxxxxxx.
xxxx xxxx.xxxxxxx: xxxx xxxxxxx, xx xxxx xxxxxxx~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" undo/redo here to make the next undo only work on the following changes
[?25l[?1c[?25h[?0c[?25l[?1c1 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/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTESTtest for :leftaafaadfaasdfaaasdfaaxasdfaa
asxxdfaatest for :centeraafaafd asdf[?25h[?0c[?25l[?1c1 line less; after #1  0 seconds agotest for :lefta      afa    adfa      asdfaaasdfa           axasdfaa                test for :center  aa  fa        afd asdf[?25h[?0c
[?25l[?1c:[?25h[?0cmap gg :.,.+2s/^/x/<CR>kk:set tw=3<CR>gqq
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^aa
[?25l[?1casxxdfaaxxxoikeasxa;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[?25h[?0c[?25l[?1c


:.,.+2s/^/x/
3 substitutions on 3 linesxaa aa aa aa
xbb bb bb bb
xcc cc cc cc
[?25h[?0c[?25l[?1c:set tw=3
[?25h[?0c[?25l[?1c


3 more lines
aaaaaa3 more lines[?25h[?0c[?25l[?1c
3 fewer lines; before #2  0 seconds agoaa aa aa aa
bb bb bb bb
cc cc cc cc
~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0c?test for :left?,$w! test.out
[?25l[?1c"test.out"[New] 111L, 2304C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test15 = test61; then \
#	  if diff test.out test15.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test15.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test15.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test19.in
[?25h[?8c[?25h[?0c[?25l[?1c"test19.in" 33 lines, 692 charactersTests for "r<Tab>" 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![?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 447 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset smarttab expandtab ts=8 sw=4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure that backspace works, no matter what termcap is used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset t_kD=^^? t_kb=^^H
[?25l[?1cSTARTTEST
: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
[?25h[?0c[?25l[?1c
/[?25h[?0csome
[?25l[?1cstart textsome test text[?25h[?0c[?25l[?1c    ome test text[?25h[?0c[?25l[?1c
:[?25h[?0cset noexpandtab
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cother
[?25l[?1ctest textother test text[?25h[?0c[?25l[?1c    ther test text[?25h[?0c[?25l[?1c
a cde[?25h[?0c[?25l[?1c
:[?25h[?0c" Test replacing with Tabs and then backspacing to undo it
[?25l[?1c[?25h[?0c
    [?25l[?1c[?25h[?0c[?25l[?1c
f ghi[?25h[?0c[?25l[?1c
:[?25h[?0c" Test replacing with Tabs
[?25l[?1c[?25h[?0c
    [?25l[?1c     hi[?25h[?0c[?25l[?1c
test text[?25h[?0c[?25l[?1c
:[?25h[?0c" Test that copyindent works with expandtab set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset expandtab smartindent copyindent ts=8 sw=8 sts=8
[?25l[?1c[?25h[?0c[?25l[?1c{x[?25h[?0c[?25l[?1c
:[?25h[?0cset nosol
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cSecond line/
[?25l[?1c
Second line beginning with whitespace[?25h[?0c[?25l[?1c
  with whitespace[?25h[?0c[?25l[?1c
:[?25h[?0c?^start?,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 121 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test19 = test61; then \
#	  if diff test.out test19.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test19.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test19.in; \
#	  fi \
#	fi"
# 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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/hashtab.o hashtab.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test20.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests Blockwise Visual when there are TABs before the text.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 107 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso tiny.vim
[?25l[?1c[?25h[?0c[?25l[?1csome texttest text
test text

Ox^[jAy^[kdd[?25h[?0c[?25l[?1cx[?25h[?0c
[?25l[?1cy[?25h[?0c[?25l[?1cy
Ox^[jAy^[kdd[?25h[?0c[?25l[?1c

2 changes; before #1  0 seconds ago[?25h[?0c
[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       123456
234567
345678test text test tex start here
                some texttest
test textOx^[jAy^[kdd
test20.in                                                                       [?25h[?0c[?25l[?1cx[+][?25h[?0c
[?25l[?1cy[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c1 line less; before #1  0 seconds ago   [?25h[?0c[?25l[?1c:[?25h[?0cquit!
[?25l[?1c: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[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
Ox^[jAy^[kdd[?25h[?0c[?25l[?1c
/[?25h[?0cstart here$
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cs[?25h[?0c[?25l[?1ce[?25h[?0c[?25l[?1ct t[?25h[?0c[?25l[?1cat [?25h[?0c[?25l[?1crt hereextex[?25h[?0c[?25l[?1c/[?25h[?0c456$
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c4
234[?25h[?0c[?25l[?1c5
345[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cstart here56
234start here67
345start here78[?25h[?0c[?25l[?1c:[?25h[?0c/56$/,$-1w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 10 lines, 106 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test20 = test61; then \
#	  if diff test.out test20.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test20.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test20.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test22.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for file with some lines ending in CTRL-M, some not^M[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 38 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset ta tx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce!
[?25l[?1c"test22.in" 13 lines, 197 characters[?25h[?0c[?25l[?1c:[?25h[?0c$-3,$w! test.out
[?25l[?1c"test.out" [New File] 4 lines, 79 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test22 = test61; then \
#	  if diff test.out test22.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test22.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test22.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test23.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for complicated + argument to :edit command[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 125 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c$-1w! Xfile1
[?25l[?1c"Xfile1" [New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xfile2
[?25l[?1c"Xfile2" [New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0cedit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w
[?25l[?1c"Xfile1" 1 line, 8 characters

foo|bar

"Xfile1" 1 line, 11 characters written

"Xfile2" 1 line, 8 characters

foo/bar

"Xfile2"cd xxd; CC="gcc" CFLAGS="-Wdate-time -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1" LDFLAGS="-L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed" \
	/usr/bin/make -f Makefile
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-athena/xxd'
gcc -Wdate-time -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -DUNIX -o xxd xxd.c
 1 line, 12 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 12 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce Xfile1
[?25l[?1c"Xfile1" 1 line, 11 charactersfooPIPEbar
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xfile1" 1 line, 11 characters[?25h[?0c[?25l[?1c:[?25h[?0cw >> test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test23 = test61; then \
#	  if diff test.out test23.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test23.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test23.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test24.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with backslash and other special characters inside [][?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 51 lines, 519 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\x]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text[?25h[?0c[?25l[?1c/[?25h[?0c[\t\]]
[?25l[?1c[?25h[?0c[?25l[?1ctext test tex[?25h[?0c[?25l[?1c/[?25h[?0c[]y]
[?25l[?1c[?25h[?0c[?25l[?1ctest text[?25h[?0c[?25l[?1c/[?25h[?0c[\]]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text[?25h[?0c[?25l[?1c/[?25h[?0c[y^]
[?25l[?1c[?25h[?0c[?25l[?1cst text[?25h[?0c[?25l[?1c/[?25h[?0c[$y]
[?25l[?1c[?25h[?0c[?25l[?1cxt test text[?25h[?0c[?25l[?1c/[?25h[?0c[\x61]
[?25l[?1c[?25h[?0c[?25l[?1cext test text  x61[?25h[?0c[?25l[?1c/[?25h[?0c[\x60-\x64]
[?25l[?1c[?25h[?0c[?25l[?1cext test text  x60-x64[?25h[?0c
[?25l[?1c/[?25h[?0c[\x785]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text  x78 5[?25h[?0c[?25l[?1c/[?25h[?0c[\o143]
[?25l[?1c
testc text test text  o143[?25h[?0c[?25l[?1c text test text  o143[?25h[?0c[?25l[?1c
/[?25h[?0c[\o140-\o144]
[?25l[?1c
tesdt text test text  o140-o144[?25h[?0c[?25l[?1ct text test text  o140-o14[?25h[?0c[?25l[?1c
/[?25h[?0c[\o417]
[?25l[?1c
test7 text test text  o41 7[?25h[?0c[?25l[?1c text test text  o41 7[?25h[?0c[?25l[?1c
/[?25h[?0c\%x42
[?25l[?1c
test text tBest text  \%x42[?25h[?0c[?25l[?1cest text  \%x42[?25h[?0c[?25l[?1c
/[?25h[?0c\%o103
[?25l[?1c
test text teCst text  \%o103[?25h[?0c[?25l[?1cst text  \%o103[?25h[?0c[?25l[?1c
/[?25h[?0c[\x00]
[?25l[?1c
test text ^@test text  [\x00][?25h[?0c[?25l[?1ctest text  [\x00][?25h[?0c[?25l[?1c
test te^@xt t^Dest t^Pext  [\x00-\x10][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\x00-\x10]//g
[?25l[?1c3 substitutions on 1 linext test text  [\x00-\x10][?25h[?0c[?25l[?1c
test \xyztext test text  [\x-z][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\x-z]\+//
[?25l[?1ctext test text  [\x-z][?25h[?0c[?25l[?1c
test text tev\uyst text  [\u-z][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\u-z]\{2,}//
[?25l[?1cst text  [\u-z][?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\+//
[?25l[?1c xx [?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a*\)\+//
[?25l[?1c[?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a*\)*//
[?25l[?1c[?25h[?0c[?25l[?1c
xx aaaaa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\{2,3}/A/
[?25l[?1cAaa xx[?25h[?0c[?25l[?1c
xx aaaaa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\{-2,3}/A/
[?25l[?1cAaaa x[?25h[?0c[?25l[?1c
xx aaa12aa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)*\(12\)\@>/A/
[?25l[?1cAaa xx[?25h[?0c[?25l[?1c
xx foobar xbar xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(foo\)\@<!bar/A/
[?25l[?1cA xx[?25h[?0c[?25l[?1c
xx an file xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(an\_s\+\)\@<=file/A/
[?25l[?1cA xx[?25h[?0c[?25l[?1c
x= 9;[?25h[?0c[?25l[?1c
:[?25h[?0cs/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
[?25l[?1cXX
[?25h[?0c[?25l[?1c
hh= 77;[?25h[?0c[?25l[?1c
:[?25h[?0cs/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
[?25l[?1cYY 77;[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0cs/aaa/xyz/
[?25l[?1cxyz
 [?25h[?0c[?25l[?1c
xyz[?25h[?0c[?25l[?1c
:[?25h[?0cs/~/bcd/
[?25l[?1cbcd
 [?25h[?0c[?25l[?1c
bcdbcdbcd[?25h[?0c[?25l[?1c
:[?25h[?0cs/~\+/BB/
[?25l[?1cBB[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?start?,$w! test.out
[?25l[?1c"test.out" [New] 32L, 586C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test24 = test61; then \
#	  if diff test.out test24.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test24.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test24.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test26.in
[?25h[?8c[?25h[?0c[?25l[?1c"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")[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for :execute, :while and :if[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 39 lines, 696 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet i = 0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i < 12
[?25l[?1c
:  [?25h[?0c:  let i = i + 1

[?25l[?1c:  [?25h[?0c:  if has("ebcdic")

[?25l[?1c:    [?25h[?0c:    execute "normal o" . i . "\047"

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    execute "normal o" . i . "\033"

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  if i % 2

[?25l[?1c:    [?25h[?0c:    normal Ax^^[

[?25l[?1c:    [?25h[?0c:    if i == 9

[?25l[?1c:      [?25h[?0c:      break

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if i == 5

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      let j = 9

[?25l[?1c:      [?25h[?0c:      while j > 0

[?25l[?1c:[?25h[?0c:        if has("ebcdic")

[?25l[?1c:[?25h[?0c:          execute "normal" j . "a" . j . "\x27"

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          execute "normal" j . "a" . j . "\x1b"

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:        let j = j - 1

[?25l[?1c:[?25h[?0c:      endwhile

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  if i == 9

[?25l[?1c:    [?25h[?0c:    if has("ebcdic")

[?25l[?1c:      [?25h[?0c:      execute "normal Az\047"

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      execute "normal Az\033"

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endwhile
[?25l[?1c:  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[?25h[?0c[?25l[?1c
:[?25h[?0cunlet i j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c't,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 159 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test26 = test61; then \
#	  if diff test.out test26.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test26.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test26.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test28.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for sourcing a file with CTRL-V's at the end of the line[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 114 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c/firstline/+1,/lastline/-1w! Xtestfile
[?25l[?1c"Xtestfile" [New File] 10 lines, 148 characters written[?25h[?0c[?25l[?1c:[?25h[?0cso Xtestfile
[?25l[?1c[?25h[?0c[?25l[?1c
sd
map __2 asd^[[?25h[?0c[?25l[?1csecond[?25h[?0cd  [?25l[?1csd^[[?25h[?0c^[  [?25l[?1csd^@map __5 asd^@[?25h[?0c[?25l[?1cfifth[?25h[?0c[?25l[?1c
:[?25h[?0c'm,$s/^@/0/g
[?25l[?1c0map __5 asd0fifth[?25h[?0c[?25l[?1c:[?25h[?0c'm,$w! test.out
[?25l[?1c"test.out" [New File] 2 lines, 45 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test28 = test61; then \
#	  if diff test.out test28.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test28.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test28.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test29.in
[?25h[?8c[?25h[?0c[?25l[?1c"test29.in" 230 lines, 4261 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for joining lines and marks in them[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/if_cscope.o if_cscope.c
[New File] 11 lines, 478 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nojoinspaces
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cfirstline/
[?25l[?1c[?25h[?0c
[?25l[?1c/[?25h[?0c^STARTTEST/-1
[?25l[?1c+-1
37 fewer linesSTARTTEST
/^{/+1[?25h[?0c[?25l[?1cmore linesasdfasdf.
asdf[?25h[?0c[?25l[?1casdf
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c
zx cv[?25l[?1cas dfg?
hjkl iop!
ert[?25h[?0c
hjkl i[?25l[?1c. as dfg? hjkl iop! ert
zx cvn.
as dfg?hjkl iop![?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions+=j
[?25l[?1c[?25h[?0c
zx cv
hjkl i[?25l[?1c. as dfg? hjkl iop! ertSTARTTEST[?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j joinspaces
[?25l[?1c[?25h[?0c
[?25l[?1c

37 more linesasdfasdf.
[?25h[?0c[?25l[?1casdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c  asdf[?25h[?0c[?25l[?1c
asdfasdf. [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c
zx cv[?25l[?1cas dfg?
hjkl iop![?25h[?0c
hjkl i[?25l[?1c.  as dfg?  hjkl iop!  ert
zx cvn.
as dfg?[?25h[?0c  er[?25l[?1ct  e[?25h[?0c
zx cv[?25l[?1cen[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c


:[?25h[?0cset cpoptions+=j
[?25l[?1c[?25h[?0c
zx cv[?25l[?1c
hjkl iop![?25h[?0c
hjkl i[?25l[?1c.  as dfg? hjkl iop! ertSTARTTEST[?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c


:[?25h[?0cset cpoptions-=j nojoinspaces compatible
[?25l[?1c[?25h[?0c
[?25l[?1c

37 more linesasdfasdf.
[?25h[?0c[?25l[?1casdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c  asdf[?25h[?0c[?25l[?1c
asdfasdf. [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c[?25l[?1c.  as dfg? hjkl iop! ert[?25h[?0c[?25l[?1ct  a[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c[?25l[?1c
/[?25h[?0cSTARTTmake[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-athena/xxd'
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-athena/po'
OLD_PO_FILE_INPUT=yes msgfmt -v -o af.mo af.po
EST/-2
[?25l[?1c+-2
4 fewer lines[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 147 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set comments=s1:/*,mb:*,ex:*/,://
:set nojoinspaces fo=j
:set backspace=eol,start
:.,+3join
j4J
:.,+2join
j3J
:.,+2join
j3J
:.,+2join
jj3J
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{[?25h[?0c[?25l[?1c
:[?25h[?0cset comments=s1:/*,mb:*,ex:*/,://
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nojoinspaces fo=j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace=eol,start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,+3join
[?25l[?1c/* Make sure the previous comment leader is not removed. */
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c/* Make sure the previous comment leader is not removed. */
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1c// Should the next comment leader be left alone? Yes.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c// Should the next comment leader be left alone? Yes.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.
[?25h[?0c[?25l[?1c
[?25h[?0c1423 translated messages.
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1cif (condition) // Remove the next comment leader! OK, I will.
[?25h[?0c[?25l[?1c
action();[?25h[?0c[?25l[?1c
[?25h[?0cOLD_PO_FILE_INPUT=yes msgfmt -v -o ca.mo ca.po
[?25l[?1cif (condition) // Remove the next comment leader! OK, I will.
[?25h[?0c[?25l[?1c
action();
[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:" Test with backspace set to the non-compatible setting
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 17 lines, 347 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:inoremap <c-u> <left><c-u>
Avim3^U^[
:iunmap <c-u>
Avim4^U^U^[
:" Test with backspace set to the compatible setting
:set backspace= visualbell
A vim5^[A^U^U^[
A vim6^[Azwei^Gu^U^[
:inoremap <c-u> <left><c-u>
A vim7^U^U^[
:set compatible novisualbell
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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" Test with backspace set to the non-compatib1697 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o cs.mo cs.po
le setting
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^\d\+ this
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cp bs=2
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0cd    [?25l[?1cvim2[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <c-u> <left><c-u>
[?25l[?1c[?25h[?0c[?25l[?1cd3[?25h[?0c[?25l[?1c:[?25h[?0ciunmap <c-u>
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0c" Test with backspace set to the compatible setting
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace= visual1284 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o de.mo de.po
bell
[?25l[?1c[?25h[?0c[?25l[?1cvim5[?25h[?0c[?5h[?5l[?5h[?5l[?25l[?1cd vim6[?25h[?0c6    [?25l[?1czwei[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <c-u> <left><c-u>
[?25l[?1c[?25h[?0c[?5h[?5l[?5h[?5l[?25l[?1cvim7[?25h[?0c
[?25l[?1c:[?25h[?0cset compatible novisualbell
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1701 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o en_GB.mo en_GB.po
21 lines, 356 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/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.
 */[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments=sO:*\ -,mO:*\ \ ,exO:*/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments+=s1:/*,mb:*,ex:*/,://
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments+=s1:78 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o eo.mo eo.po
>#,mb:#,ex:#<,:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j joinspaces fo=j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace=eol,start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,+3join
[?25l[?1c/* Make sure the previous comment leader is not removed.  *//* List:
 * - item1
 *   foo bar baz[?25h[?0c
[?25l[?1c/* Make sure the previous comment leader is not removed.  */*   foo bar baz
 * - item2
 *   foo bar baz[?25h[?0c
[?25l[?1c:[?25h[?0c.,+8join
[?25l[?1c/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz *//* List:- item1  foo bar baz
 * - item2[?25h[?0c
[?25l[?1c/* 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?[?25h[?0c
[?25l[?1c:[?25h[?0c.,+2join
[?25l[?1cShould the next comment leader be left alone?  Yes.


// Yes.[?25h[?0c
[?25l[?1c// Should the next comment leader be left alone?  Yes.* Here the comment leader should be left intact. */
// And so should this one.[?25h[?0c
[?25l[?1c


:[?25h[?0c.,+2join
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.* Here the comment leader should be left intact. */[?25h[?0c
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.[?25h[?0c
[?25l[?1c:[?25h[?0c.,+2join
[?25l[?1cif (condition) // Remove the next comment leader!  OK, I will.
[?25h[?0c[?25l[?1c
action();[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cif (condition) // Remove the next comment leader!  OK, I will.
[?25h[?0c[?25l[?1c
action();
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1cint i = 7 /* foo *// 3 // comment
[?25h[?0c[?25l[?1c
;[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cint i = 7 /* foo *// 3 // comment
[?25h[?0c[?25l[?1c
;
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+5join
[?25l[?1c># 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.[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c># 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.[?25h[?0c[?25l[?1c
[?25h[?0c1916 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o es.mo es.po
[?25l[?1cSome code!
// Make sure backspacing does not remove this comment leader.[?25h[?0c
[?25l[?1c// Make sure backspacing does not remove this comment leader.
}[?25h[?0c
[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1733 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o fi.mo fi.po
3 lines, 61 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:?firstline?+1,$w! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c74 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.
}[?25h[?0c[?25l[?1c:[?25h[?0c?firstline?+1,$w! test.out
[?25l[?1c"test.out" 1902 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o fr.mo fr.po
[New File] 97 lines, 3018 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test29 = test61; then \
#	  if diff test.out test29.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test29.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test29.in; \
#	  fi \
#	fi"
# 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.
1916 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ga.mo ga.po
1914 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o it.mo it.po
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test31.in
[?25h[?8c[?25h[?0c[?25l[?1c"test31.in" 95 lines, 1832 charactersTest for commands that close windows and/or buffers:
:quit
:close
:hide
:only
:sall
:all
:ball
:buf
:edit

STARTTEST
:so small.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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for commands that close windows and/or buffers:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1897 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.mo ja.po
[New File] 80 lines, 1697 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" test ":q!" and hidden buffer.
:bw! Xtest1 Xtest2 Xtest3 Xtest4
:sp Xtest1
:wincmd w
:bw!
:set modified
:bot sp Xtest2
:set modified
:bot sp Xtest3
:set modified
:wincmd t
:hide
:q!
:w >>test.out
:q!
:w >>test.out
:q!
:call append(line('$'), "Oh, Not finished yet.")
:w >>test.out
:qa!
ENDTEST

testtext[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c
[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest1
[?25l[?1c"Xtest1" 1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ko.mo ko.po
[New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest2
[?25l[?1c"Xtest2" 1728 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ko.UTF-8.mo ko.UTF-8.po
[New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest3
[?25l[?1c"Xtest3" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0cn! Xtest11728 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o nb.mo nb.po
 Xtest2
[?25l[?1c"Xtest1" 1 line, 11 characterstesttext 1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for working :n when hidden set; write "testtext 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cn
[?25l[?1c"Xtest2" 1 line, 11 characters2[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" test for failing :rew when hidden not set; write "testtext 2 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0crew
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.o1668 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o nl.mo nl.po
1213 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o no.mo no.po
ut
[?25l[?1c"test.out" 1668 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.mo pl.po
1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test for working :rew when hidden set; write "testtext 1 1"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0crew
[?25l[?1c"Xtest1" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)1 1
[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test for :all keeping a buffer when it's modified; write "testtext 1 1 1"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0csp
[?25l[?1cXtest1 [+]                                                                      testtext 1 1 1Xtest1 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cn X1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pt_BR.mo pt_BR.po
test2 Xtest3
[?25l[?1c"Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)2 22[?25h[?0c[?25l[?1c:[?25h[?0call
[?25l[?1c"Xtest3" 1 line, 11 characterstesttext 1 1 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1cXtest1 [+]                                                                      Xtest2 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test abandoning changed buffer, should be unloaded even when 'hidden' set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 2 2" twice
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c1 1[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1ctesttext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1735 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ru.mo ru.po
1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cunhide
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":hide" hides anyway when 'hidden' not set; write "testtext 3"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0chide
[?25l[?1c3~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1882 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sk.mo sk.po
1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":edit" failing in modified buffer when 'hidden' not set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 31628 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sv.mo sv.po
 3"
[?25l[?1c[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1

"[?25l[?1ctesttext 3 3[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
1697 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o uk.mo uk.po
[?25l[?1c"Xtest1" 1 line, 11 characters1[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":close" not hiding when 'hidden' not set i1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o vi.mo vi.po
n modified buffer;
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 3 3 3"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest3
[?25l[?1c"Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)3 3Xtest3 [+]                                                                      testtext 1Xtest1                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":close!" does hide when 'hidden' not set in modified buffer;
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 1"
[?25l[?1c[?25h[?0c[?25l[?1c3 3[?25h[?0c[?25l[?1c:[?25h[?0cclose!
[?25l[?1c1~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.UTF-8.mo zh_CN.UTF-8.po
w >>test.out
[?25l[?1c"test.out" 1634 translated messages, 3 fuzzy translations.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.mo zh_CN.po
1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test ":all!" hides changed buffer; write "testtext 2 2 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest4
[?25l[?1c"Xtest4" [New File]Xtest4                                                                          testtext 1Xtest1                                                                          [?25h[?0c[?25l[?1c 4[+][?25h[?0c[?25l[?1c:[?25h[?0call!
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1ctesttext 2 2 2
~                                                                               Xtest2 [+]                                                                      testtext 3 3 3 3~                                                                               3 [+][?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1633 translated messages, 3 fuzzy translations.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_TW.UTF-8.mo zh_TW.UTF-8.po
1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test ":q!" and hidden buffer.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbw! Xtest1 Xtest2 Xtest3 Xt1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_TW.mo zh_TW.po
est4
[?25l[?1c"test31.in"95 lines, 1832 characters

4 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest1
[?25l[?1c"Xtest1" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               Xtest1                                                                          :w >>test.out:q!:w >>test.out:q!:call append(line('$'), "Oh, Not finished yet."):w >>test.out:qa!ENDTESTtesttexttest31.in "Xtest1" 1 line, 11 characters[?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1cXtest1                                                                          test31.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cbw!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbot sp Xtest2
[?25l[?1c"Xtest2" 1 line, 11 charactersXtest1 [+]                                                                      testtext 2Xtest2                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cbot sp Xtest3
[?25l[?1c"Xtest3" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cwincmd t
[?25l[?1cXtest1 [+]                                                                      Xtest3 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0chide
[?25l[?1ctesttext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c3~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o cs.cp1250.mo cs.cp1250.po
1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1cE37: No write since last change

E162: No write since last change for buffer "Xtest1"

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1284 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.sjis.mo ja.sjis.po
1 line, 11 characters appended

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test31 = test61; then \
#	  if diff test.out test31.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test31.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test31.in; \
#	  fi \
#	fi"
# 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.
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.euc-jp.mo ja.euc-jp.po
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.cp1250.mo pl.cp1250.po
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test33.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'lisp'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.UTF-8.mo pl.UTF-8.po
[New File] 5 lines, 63 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset lisp
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^(defun
[?25l[?1c[?25h[?0c[?25l[?1c22 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[?25h[?0c[?25l[?1c:[?25h[?0c/^(defun/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ru.cp1251.mo ru.cp1251.po
[New File] 23 lines, 544 characters written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test33 = test61; then \
#	  if diff test.out test33.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test33.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test33.in; \
#	  fi \
#	fi"
# 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
1882 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sk.cp1250.mo sk.cp1250.po
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.
1628 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o uk.cp1251.mo uk.cp1251.po
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test34.in
[?25h[?8c[?25h[?0c[?25l[?1c"test34.in" 87 lines, 1833 charactersTest for user functions.
Also test an <expr> 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for user functions.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
1918 translated messages.
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.cp936.mo zh_CN.cp936.po
[New File] 78 lines, 1621 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c

:1633 translated messages, 3 fuzzy translations.
so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0csomake[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-athena/po'
 small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction Table(title, ...)
[?25l[?1c
:  [?25h[?0c:  let ret = a:title

[?25l[?1c:  [?25h[?0c:  let idx = 1

[?25l[?1c:  [?25h[?0c:  while idx <= a:0

[?25l[?1c:    [?25h[?0c:    exe "let ret = ret . a:" . idx

[?25l[?1c:    [?25h[?0c:    let idx = idx + 1

[?25l[?1c:    [?25h[?0c:  endwhile

[?25l[?1c:  [?25h[?0c:  return ret

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c: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[?25h[?0c[?25l[?1c

:[?25h[?0cfunction Compute(n1, make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-athena/po'
n2, dimake[2]: Nothing to be done for 'converted'.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-athena/po'
vname)
[?25l[?1c
:gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/arabic.o arabic.c
  [?25h[?0c:  if a:n2 == 0

[?25l[?1c:    [?25h[?0c:    return "fail"

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  exe "let g:" . a:divname . " = ". a:n1 / a:n2

[?25l[?1c:  [?25h[?0c:  return "ok"

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c: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))[?25h[?0c[?25l[?1c

:[?25h[?0cfunc Expr1()
[?25l[?1c
:  [?25h[?0c:  normal! v

[?25l[?1c:  [?25h[?0c:  return "111"

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc Expr2()
[?25l[?1c
:  [?25h[?0c:  call search('XX', 'b')

[?25l[?1c:  [?25h[?0c:  return "222"

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc ListItem()
[?25l[?1c
:  [?25h[?0c:  let g:counter += 1

[?25l[?1c:  [?25h[?0c:  return g:counter . '. '

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc ListReset()
[?25l[?1c
:  [?25h[?0c:  let g:counter = 0

[?25l[?1c:  [?25h[?0c:  return ''

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc FuncWithRef(a)
[?25l[?1c
:  [?25h[?0c:  unlet g:FuncRef

[?25l[?1c:  [?25h[?0c:  return a:a

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0clet g:FuncRef=function("FuncWithRef")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet counter = 0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <expr> ( ListItem()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <expr> [ ListReset()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cimap <expr> + Expr1()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cimap <expr> * Expr2()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet retval = "nop"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^here
[?25l[?1c[?25h[?0c[?25l[?1cher$=[?25h[?0cTable("xxx", 4, "asdf")
[?25l[?1c=[?25h[?0cCompute(45, 0, "retval")
[?25l[?1c=[?25h[?0cretval
[?25l[?1c=[?25h[?0cCompute(45, 5, "retval")
[?25l[?1c=[?25h[?0cretval
[?25l[?1c=[?25h[?0cg:FuncRef(333)

[?25l[?1cError detected while processing function Expr1:

line    1:

E523: Not allowed here

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:    $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. two[?25h[?0c[?25l[?1c1. one again[?25h[?0c[?25l[?1c
:[?25h[?0ccall append(line('$'), max([1, 2, 3]))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall extend(g:, {'max': function('min')})
[?25l[?1cE704: Funcref variable name must start with a capital: max[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), max([1, 2, 3]))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:    " Regression: the first line below used to throw ?E110: Missing ')'?

[?25l[?1c:  [?25h[?0c:    " Second is here just to prove that this line is correct when not skipp

ing

[?25l[?1c:  [?25h[?0c:    " rhs of &&.

[?25l[?1c:  [?25h[?0c:    $put =(0&&(function('tr'))(1, 2, 3))

[?25l[?1c:  [?25h[?0c:    $put =(1&&(function('tr'))(1, 2, 3))

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:    $put ='!!! Unexpected exception:'

[?25l[?1c:  [?25h[?0c:    $put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c:    $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[?25h[?0c[?25l[?1c
:[?25h[?0c$-9,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 81 characters written[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Table
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Compute
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Expr1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Expr2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc ListItem
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc ListReset
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cunlet retval counter
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test34 = test61; then \
#	  if diff test.out test34.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test34.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test34.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test36.in
[?25h[?8c[?25h[?0c[?25l[?1c"test36.in" 108 lines, 2025 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest character classes in regexp using regexpengine 0, 1, 2.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 101 lines, 1850 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTp: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
p:s/\%#=0\%204l^\t...//g
p:s/\%#=1\%205l^\t...//g
p:s/\%#=2\%206l^\t...//g
:/^start-here/+1,$wq! test.out
ENDTEST







:[?25h[?0cs/\%#=0\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\O//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\O//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-7]//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-7]//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c




~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\X//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\X//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=1[^0-9A-Fa-f]//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c





:[?25h[?0cs/\%#=0\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^A-Za-zgcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/menu.o menu.c
_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\U//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\U//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Z]//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Z]//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test36 = test61; then \
#	  if diff test.out test36.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test36.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test36.in; \
#	  fi \
#	fi"
# 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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/buffer.o buffer.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test37.in
[?25h[?8c[?25h[?0c[?25l[?1c"test37.in" 116 lines, 3262 charactersTest for 'scrollbind'. <eralston@computer.org>   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 --[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below![?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 1498 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt=ver,jump
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrolloff=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nowrap
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noequalalways
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset splitbelow
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST using two windows open to one buffer, one extra empty window
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c^WtH3k^WtHyybp^Wt^Wjyy^Wbp:
:" ***** done with tests *****
:w! test.out    " Write contents of this file
:qa!ENDTESTstart of window 1. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02test37.in                                                                       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!ENDTESTstart of window 11122
test37.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c:w! test.out             " Write contents of this file
:qa!ENDTESTtest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name][?25h[?0ctest37.in                                                                       [No Name]                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cresize 8
[?25l[?1c:" ***** done with tests *****w! test.out             " Write contents of this file
:qa!ENDTESTstart of window 1
. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
test37.in                                                                       :" ***** done with tests *****:w! test.out             " Write contents of this fileqa!ENDTESTstart of window 1[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 1$/
[?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0ctest37.in                                                                       test37.in                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cresize 7
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 2$/
[?25l[?1cend of window 1start of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03[?25h[?0c[?25l[?1c
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" -- start of tests --
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling down
[?25l[?1c[?25h[?0c

[?25l[?1c. 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 09[?25h[?0ctest37.in                                                                       [No Name]                                                                       [?25l[?1c
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[+][?25h[?0c[?25l[?1c0[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?25h[?0c[?25l[?1c1[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   


[?25l[?1c. 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 15[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c2[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling up
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08440505060607070808090900[?25h[?0ctest37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?25h[?0c[?25l[?1c4[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?25h[?0c[?25l[?1c5[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1cstart 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
[?25h[?0ctest37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?25h[?0c[?25l[?1c6[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c7[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST horizontal scrolling
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt+=hor
[?25l[?1c[?25h[?0c[?25l[?1c05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c4 line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
5 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0656789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1cUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415UTSRQPONMLKJIHGREDCBA9876543210 09101112131415[?25h[?0c[?25l[?1c. 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 15[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   
test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt-=hor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" ****** tests using two different buffers *****
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       test37.in                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cstart of window 20000000000[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of window 2$/,/^end of window 2$/y
[?25l[?1c18 lines yanked[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1ctest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name][?25h[?0ctest37.in                                                                       [No Name]                                                                       test37.in                                                                       [No Name]                                                                       [?25l[?1c4 more lines[+][?25h[?0c


[?25l[?1c18 more linesstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c/[?25h[?0c^start of window 1$/
[?25l[?1csearch hit BOTTOM, continuing at TOPENDTESTstart of window 1010102020303[?25h[?0c[?25l[?1c
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 2$/
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" -- start of tests --
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling down
[?25l[?1c[?25h[?0c


[?25l[?1c. 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[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
[?25h[?0c[?25l[?1c0[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
[?25h[?0c[?25l[?1c1[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   

[?25l[?1c. 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 16[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
[?25h[?0c[?25l[?1c2[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling up
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c440505060607070808090900. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?25h[?0c[?25l[?1c4[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?25h[?0c[?25l[?1c5[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1cstart 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
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?25h[?0c[?25l[?1c6[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c7[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST horizontal scrolling
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt+=hor
[?25l[?1c[?25h[?0c[?25l[?1c05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
46 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
56 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06UTSRQPONMLKJIHGREDCBA9876543210 07[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1cUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415

UTSRQPONMLKJIHGREDCBA9876543210 0910111213141516[?25h[?0c[?25l[?1c. 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[?25h[?0c[?25l[?1c[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   
test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt-=hor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST syncbind
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below!
STARTTEST:so small.vim:set noscrollbind:set scrollopt=ver,jump:set scrolloff=2:set nowrap[?25h[?0c


test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cstart of window 201010202[?25h[?0c[?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0c[?25l[?1c. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1czt::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] [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0csyncbind
[?25l[?1c[?25h[?0c[?25l[?1c/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
:set scrollbind
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below!
STARTTEST
:so small.vimset noscrollbindset scrollopt=ver,jump
:set scrolloff=2set nowrap[?25h[?0c


test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0c[?25l[?1c. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1czt::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] [+]                                                                   [?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0csyncbind
[?25l[?1c[?25h[?0c[?25l[?1c/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
:set scrollbind
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1czt:
:set scrollbind
^Wj:
:resize 7. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
^Wj:
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" ***** done with tests *****
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out             " Write contents of this file
[?25l[?1c"test.out" [New File] 33 lines, 1329 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test37 = test61; then \
#	  if diff test.out test37.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test37.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test37.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test38.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 407 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTopq 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure that backspace works, no matter what termcap is used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset t_kD=^^? t_kb=^^H
[?25l[?1c^[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
[?25h[?0c[?25l[?1cTest 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[?25h[?0c[?25l[?1c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c
abcdefghijk      lmn    opq rstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0cset ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bs=2
[?25l[?1c[?25h[?0c[?25l[?1c 1
 A BCDEFGHIJ    KL        MNOPQR[?25h[?0c[?25l[?1c:[?25h[?0cka
[?25l[?1c[?25h[?0c[?25l[?1cabcdefghijk      lmn    opq rstuvwxyz[?25h[?0c
[?25l[?1c 1[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1cab      cdefghi jkl[?25h[?0c
[?25l[?1cAB......CDEFGHI.J[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cabcdefghijklmnopqrst[?25h[?0c
[?25l[?1cAB      IJKLMNO QR[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 13 lines, 107 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test38 = test61; then \
#	  if diff test.out test38.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test38.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test38.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test39.in
[?25h[?8c[?25h[?0c[?25l[?1c"test39.in" 118 lines, 2435 charactersTest Visual block mode commands
And test "U" in Visual mode, also on German sharp S.

#define BO_ALL      0x0001
#define BO_BS0x0002
#define BO_CRSR     0x0004

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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 75 lines, 2061 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:exe ":norm! 2k\<C-V>$gj\<Esc>"
:let cpos=getpos("'>")
:$put ='col:'.cpos[2].' off:'.cpos[3]
:"
:" block_insert when replacing spaces in front of the block with tabs
:set ts=8 sts=4 sw=4
:4,7y
Gp
:exe ":norm! f0\<C-V>2jI\<tab>\<esc>"
:/^the/,$w >> test.out
:qa!
ENDTESTline1line2line3

aaaaaa
bbbbbb
cccccc
dddddd

xaaa[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This only works when 'encoding' is "latin1", don't depend on the environment
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c:exe ":norm! 2k\<C-V>$gj\<Esc>"
:let cpos=getpos("'>")
:$put ='col:'.cpos[2].' off:'.cpos[3]
:"
:" block_insert when replacing spaces in front of the block with tabs
:set ts=8 sts=4 sw=4
:4,7y
Gp
:exe ":norm! f0\<C-V>2jI\<tab>\<esc>"
:/^the/,$w >> test.out
:qa!
ENDTESTline1line2line3

aaaaaa
bbbbbb
cccccc
dddddd

xaaa[?25h[?0c[?25l[?1c/[?25h[?0c^abcde
[?25l[?1cbbbb
cccc
dddd

yaaa
bbb

A23
4567

B23
4567

C23
4567

abcdefghijklm[?25h[?0c[?25l[?1c
:[?25h[?0c" Test shift-right of a block
[?25l[?1c[?25h[?0c[?25l[?1c
abcdefghijklm[?25h[?0cabcd[?25l[?1c[?25h[?0c[?25l[?1c
e
abcdefghijklm
abcd[?25h[?0c[?25l[?1c
e
abcdefghijklm
abcd[?25h[?0c[?25l[?1c
3 lines >ed 1 time        efghijklm
abcd        efghijklm
abcd        efghijklm[?25h[?0c     ef[?25l[?1c[?25h[?0c[?25l[?1cg[?25h[?0c[?25l[?1chg[?25h[?0c[?25l[?1cih[?25h[?0c[?25l[?1cji[?25h[?0c[?25l[?1c        ghijklm        ghijklm[?25h[?0c[?25l[?1c:[?25h[?0c" Test shift-left of a block
[?25l[?1c[?25h[?0c[?25l[?1c
abcdefghijklm[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci[?25h[?0c[?25l[?1c [?25h[?0c[?25l[?1c


3 lines <ed 1 timeef    efghijklmi[?25h[?0c[?25l[?1c:[?25h[?0c" Test block-insert
[?25l[?1c[?25h[?0c
a[?25l[?1c[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1c
ab
ab
abxyzbcdefghijklm
axyzbcd
axyzbcd
axyzbcd[?25h[?0c
a[?25l[?1c:[?25h[?0c" Test block-replace
[?25l[?1c[?25h[?0c


abcd[?25l[?1c[?25h[?0c[?25l[?1ce[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cbccf[?25h[?0c[?25l[?1ccddg[?25h[?0c[?25l[?1cd  h[?25h[?0c[?25l[?1cqqqq
axyzqqqq
axyzqqqq
abcdqqqq[?25h[?0c
axyz[?25l[?1c:[?25h[?0c" Test block-change
[?25l[?1c[?25h[?0c

[?25l[?1c[?25h[?0c[?25l[?1cj[?25h[?0c[?25l[?1ci[?25h[?0c[?25l[?1c     ghijkl[?25h[?0c[?25l[?1cef  gkl[?25h[?0c[?25l[?1cmnomnomno[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$w! test.out
[?25l[?1c"test.out" [New File] 5 lines, 108 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Test block-insert using cursor keys for movement
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^aaaa/
[?25l[?1csearch hit BOTTOM, continuing at TOPaaaaaa
bbbbbb
cccccc
ddddddsearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>jjjlllI\<Right>\<Right>  \<Esc>"
[?25l[?1c  aaa
bbb  bbb
ccc  ccc
ddd  ddd[?25h[?0c[?25l[?1c:[?25h[?0c/^aa/,/^$/w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 37 characters appended[?25h[?0c[?25l[?1c/[?25h[?0cxaaa$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-V>jjjI<>\<Left>p\<Esc>"
[?25l[?1c<p>xaaa
<p>bbbb
<p>cccc
<p>dddd[?25h[?0c[?25l[?1c:[?25h[?0c/xaaa$/,/^$/w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 33 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the last <C-v>$
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^A23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$Aab\<Esc>"
[?25l[?1cab
4567ab[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 14 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the middle <C-v>$ (1)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^B23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$hAab\<Esc>"
[?25l[?1cab
4567ab[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the middle <C-v>$ gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/if_xcmdsrv.o if_xcmdsrv.c
(2)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^C23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$hhAab\<Esc>"
[?25l[?1cab
456ab7[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 14 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block insert when virtualedit=all and utf-8 encoding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all enc=utf-8
[?25l[?1caaa  aaa
bbb  bbb
ccc  ccc
ddd  ddd

<p>xaaa
<p>bbbb
<p>cccc
<p>dddd

yaaa
<bf><bf><bf>
bbb

A23ab
4567ab

B23 ab
4567ab

C23ab
456ab7[?25h[?0c[?25l[?1c


:[?25h[?0c/\t\tline
[?25l[?1csearch hit BOTTOM, continuing at TOPline1line2line3search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 07l\<C-V>jjIx\<Esc>"
[?25l[?1cxxx[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 4 lines, 49 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block append when virtualedit=all
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 012l\<C-v>jjAx\<Esc>"
[?25l[?1cx   line1x   line2x   line3[?25h[?0c[?25l[?1c:[?25h[?0cset ve= enc=latin1
[?25l[?1cx     x   line1x     x   line2x     x   line3

aaa  aaa
bbb  bbb
ccc  ccc
ddd  ddd

<p>xaaa
<p>bbbb
<p>cccc
<p>dddd

yaaa
bbb

A23ab
4567ab

B23 ab
456ab7

axyzbcdefghijklm
axyzqqqq   mnoghijklm
axyzqqqqef mnoghijklm
axyzqqqqefgmnoklm
abcdqqqqijklm[?25h[?0c[?25l[?1c
the [?25l[?1c
:[?25h[?0c" VU must uppercase a whole line
[?25l[?1c[?25h[?0c[?25l[?1c
[?25l[?1c
:[?25h[?0c" same, when it's the last line in the buffer
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
[?25l[?1c
:[?25h[?0c" Uppercase two lines
[?25l[?1c[?25h[?0c[?25l[?1c
blah didoh dut[?25h[?0c[?25l[?1c
doh dut [?25h[?0c[?25l[?1cblah di t[?25h[?0c[?25l[?1c
BLAH DIDOH DUT[?25h[?0c[?25l[?1c
:[?25h[?0c" Uppercase part of two lines
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c
333the yo[?25h[?0c[?25l[?1cut[?25h[?0c[?25l[?1cUTUSSEUU END
333THE YOUTU[?25h[?0c[?25l[?1c

:[?25h[?0c" visual replace using Enter or NL
[?25l[?1c[?25h[?0c
[?25l[?1c123456789
123456789
123456789[?25h[?0c
12345[?25l[?1c[?25h[?0c[?25l[?1c66[?25h[?0c[?25l[?1c789[?25h[?0c[?25l[?1c789
12345
789
[?25h[?0c[?25l[?1c98765
98765
98765[?25h[?0c
98[?25l[?1c[?25h[?0c[?25l[?1c7
987
98[?25h[?0c[?25l[?1c^M65
98^M65
98^M65[?25h[?0c
98
[?25l[?1c123456789
123456789
123456789[?25h[?0c
12345[?25l[?1c[?25h[?0c[?25l[?1c66[?25h[?0c[?25l[?1c789[?25h[?0c[?25l[?1c789
12345
789
[?25h[?0c[?25l[?1c98765
98765
98765[?25h[?0c
98[?25l[?1c[?25h[?0c[?25l[?1c7
987
98[?25h[?0c[?25l[?1c^@65
98^@65
98^@65[?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test cursor position. When ve=block and Visual block mode and $gj
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=block
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 2k\<C-V>$gj\<Esc>"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet cpos=getpos("'>")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='col:'.cpos[2].' off:'.cpos[3]
[?25l[?1c
col:4 off:0[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" block_insert when replacing spaces in front of the block with tabs
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ts=8 sts=4 sw=4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c4,7y
[?25l[?1c4 lines yanked[?25h[?0c[?25l[?1c
4 more lines
4 more lines[?25h[?0c[?25l[?1c
#define BO_ALL      0x0001[?25h[?0c[?25l[?1c
:[?25h[?0cexe ":norm! f0\<C-V>2jI\<tab>\<esc>"
[?25l[?1c    0x0001
#define BO_BS0x0002
#define BO_CRSR0x0004[?25h[?0c[?25l[?1c


:[?25h[?0c/^the/,$w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 31 lines, 322 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test39 = test61; then \
#	  if diff test.out test39.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test39.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test39.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test40.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for "*Cmd" autocommands[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1455 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start/,$w! Xxx^I^I" write lines below to Xxx
[?25l[?1c"Xxx" [New File] 3 lines, 32 characters written[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadCmd XtestA 0r Xxx|$del
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce XtestA^I^I^I" will read text of Xxd instead
[?25l[?1c"Xxx" 3 lines, 32 charactersstart of Xxx        test40end of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau BufWriteCmd XtestA call append(line("$"), "write")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw^I^I^I^I" will append a line to the file
[?25l[?1cwrite[?25h[?0c[?25l[?1c:[?25h[?0cr XtestA^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestA[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" now we have:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileReadCmd XtestB '[r Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2r XtestB^I^I^I" will read Xxx below line 2 instead
[?25l[?1c"Xxx" 3 lines, 32 charactersstart of Xxxtest40
end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWriteCmd XtestC '[,']copy $
[?25l[?1c[?25h[?0c[?25l[?1ctest401[?25h[?0c[?25l[?1c:[?25h[?0c4,5w XtestC^I^I^I" will copy lines 4 and 5 to the end
[?25l[?1c        test401end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0cr XtestC^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestC[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 8^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 9^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FILEAppendCmd XtestD '[,']w! test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>XtestD^I^I^I" will write all lines to test.out
[?25l[?1c"test.out" [New File] 9 lines, 91 characters written[?25h[?0c[?25l[?1c:[?25h[?0c$r XtestD^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestD[?25h[?0c[?25l[?1c:[?25h[?0c$w >>test.out^I^I^I" append "end of Xxx" to test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadCmd XtestE 0r test.out|$del
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp XtestE^I^I^I" split window with test.out
[?25l[?1c"test.out" 10 lines, 102 charactersend of XxxXtestE                                                                          end of Xxxwrite        test401end of XxxXtestA                                                                          [?25h[?0c[?25l[?1casdf[+][?25h[?0cXtestE [+]                                                                      XtestA                                                                          [?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWriteCmd XtestE w! test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwall^I^I^I^I" will write other window to test.out
[?25l[?1c"test.out" 11 lines, 107 characters written   [?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iasdf
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 8^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 9^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 10^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 11^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test40 = test61; then \
#	  if diff test.out test40.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test40.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test40.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test41.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for writing and reading a file of over 100 Kbyte[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 13 lines, 196 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cThis is the start
This is the leaderThis is the middleThis is the trailerThis is the end[?25h[?0c[?25l[?1c3000 more linestrailer
This is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailer[?25h[?0c[?25l[?1cleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader[?25h[?0c
[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 6005 lines, 117092 characters written[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest
[?25l[?1c"Xtest" 6005 lines, 117092 charactersThis is the start
This is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leader[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 18 characters written[?25h[?0c[?25l[?1cThis 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[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 19 characters appended[?25h[?0c[?25l[?1cThis 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
[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 16 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test41 = test61; then \
#	  if diff test.out test41.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test41.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test41.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test42.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for writing and reading a file starting with a BOM[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2116 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
utf-8
utf-8
utf-8-err
utf-8~@err
ucs-2
ucs-2le
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1c: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
<fe><fe>latin-1
utf-8
<feff>utf-8
utf-8-err
<feff>utf-8<80>err
ucs-2
<fe><ff>^@u^@c^@s^@-^@2^@
ucs-2le
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?25h[?0c[?25l[?1c:[?25h[?0cset fileencodings=ucs-bom,latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix ffs=unix           " This changes the file for DOS and MAC
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Write the test files
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^latin-1$/+1w! Xtest0
[?25l[?1c"Xtest0" [New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^utf-8$/+1w! Xtest1
[?25l[?1c"Xtest1" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^utf-8-err$/+1w! Xtest2
[?25l[?1c"Xtest2" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-2$/+1w! Xtest3
[?25l[?1c"Xtest3" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-2le$/+1w! Xtest4
[?25l[?1c"Xtest4" [New File] 1 line, 17 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Need to add a NUL byte after the NL byte
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest4                      " Ignore change from setting 'ff'
[?25l[?1c"Xtest4" 1 line, 17 characters<ff><fe>u^@c^@s^@-^@2^@l^@e^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c^@[?25h[?0c[?25l[?1c:[?25h[?0cset noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtest4" [Incomplete last line] 2 lines, 18 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset ffs& nobinary              " Allow default test42.in format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce #
[?25l[?1c"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-1utf-8utf-8utf-8-errutf-8<80>errucs-2þÿ^@u^@c^@s^@-^@2^@ucs-2leÿþu^@c^@s^@-^@2^@l^@e^@ucs-4[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix                    " Format for files to write
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-4$/+1w! Xtest5
[?25l[?1c"Xtest5" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/misc1.o misc1.c
[converted][New File] 1 line, 30 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-4le$/+1w! Xtest6
[?25l[?1c"Xtest6" [converted][New File] 1 line, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Need to add three NUL bytes after the NL byte
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest6                      " ! for when setting 'ff' is a change
[?25l[?1c"Xtest6" 1 line, 33 characters<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c
~   [?25l[?1c
^@^@^@[?25h[?0c[?25l[?1c:[?25h[?0cset noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtest6" [Incomplete last line] 2 lines, 36 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset nobin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce #
[?25l[?1c"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-1utf-8utf-8utf-8-errutf-8<80>errucs-2þÿ^@u^@c^@s^@-^@2^@ucs-2leÿþu^@c^@s^@-^@2^@l^@e^@ucs-4[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check that editing a latin-1 file doesn't see a BOM
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest0
[?25l[?1c"Xtest0" [converted] 1 line, 12 charactersþþlatin-1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0credir! >test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=latin1

nobomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cþþlatin-1
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 12 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset bomb fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest0x
[?25l[?1c"Xtest0x" [converted][New File] 1 line, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest1
[?25l[?1c"Xtest1" 1 line, 9 charactersutf-8[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-8

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cutf-8
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest1x
[?25l[?1c"Xtest1x" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check utf-8 with an error (will fall back to latin-1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest2
[?25l[?1c"Xtest2" [converted] 1 line, 17 charactersutf-8<80>err
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=latin1

nobomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cutf-8<80>err
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 17 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest2x
[?25l[?1c"Xtest2x" [New File] 1 line, 17 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest3
[?25l[?1c"Xtest3" [converted] 1 line, 8 charactersucs-2[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-16

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-2
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest3x
[?25l[?1c"Xtest3x" [converted][New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-2le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest4
[?25l[?1c"Xtest4" [converted] 1 line, 10 charactersle
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-16le

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-2le
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 8 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-2le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest4x
[?25l[?1c"Xtest4x" [converted][New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest5
[?25l[?1c"Xtest5" [converted] 1 line, 10 characters4[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=ucs-4

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-4
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest5x
[?25l[?1c"Xtest5x" [converted][New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-4le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest6
[?25l[?1c"Xtest6" [converted] 1 line, 12 charactersle
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=ucs-4le

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-4le
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 8 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-4le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest6x
[?25l[?1c"Xtest6x" [converted][New File] 1 line, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check the files written with BOM
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 35 lines, 275 characters  fileencoding=latin1nobomb<fe><fe>latin-1  fileencoding=utf-8  bombutf-8  fileencoding=latin1nobomb<feff>utf-8<80>err  fileencoding=utf-16  bombucs-2  fileencoding=utf-16le[?25h[?0c[?25l[?1c:[?25h[?0c$r Xtest0x
[?25l[?1c"Xtest0x" 1 line, 10 charactersbomb
ucs-2lefileencoding=ucs-4
  bomb
ucs-4fileencoding=ucs-4le
  bomb
ucs-4le
<fe><fe>latin-1[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest1x
[?25l[?1c"Xtest1x" 1 line, 9 characters
<feff>utf-8[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest2x
[?25l[?1c"Xtest2x" 1 line, 17 characters
utf-8<80>err[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest3x
[?25l[?1c"Xtest3x" 1 line, 14 characters
<fe><ff>^@u^@c^@s^@-^@2^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest4x
[?25l[?1c"Xtest4x" [Incomplete last line] 2 lines, 18 characters
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest5x
[?25l[?1c"Xtest5x" 1 line, 28 characters^@
^@^@<fe><ff>^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest6x
[?25l[?1c"Xtest6x" [Incomplete last line] 2 lines, 36 characters
<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?25h[?0c[?25l[?1c
:[?25h[?0cset nobin ff&               " Write the file in default format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" 44 lines, 409 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test42 = test61; then \
#	  if diff test.out test42.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test42.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test42.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test43.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 268 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^1
[?25l[?1c
1 a aa abb abbccc[?25h[?0c[?25l[?1c
/[?25h[?0ca*b\{2}c\+/e
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\Md\*e\{2}f\+/e
[?25l[?1c
2 d dd dee deefff[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cg\*h\{2}i\+/e
[?25l[?1c
3 g gg ghh ghhiii[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\mj*k\{2}l\+/e
[?25l[?1c
4 j jj jkk jkklll[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\vm*n{2}o+/e
[?25l[?1c
5 m mm mnn mnnooo[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\V^aa$
[?25l[?1c
6 x ^aa$ x[?25h[?0c[?25l[?1caa$ x[?25h[?0c[?25l[?1c
:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\v(a)(b)\2\1\1/e
[?25l[?1c
7 (a)(b) abbaa[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\V[ab]\(\[xy]\)\1
[?25l[?1c
8 axx [ab]xx[?25h[?0c[?25l[?1cab]x[?25h[?0c[?25l[?1c
:[?25h[?0c$
[?25l[?1c9 foobar[?25h[?0c[?25l[?1c
:[?25h[?0cset undolevels=100
[?25l[?1c[?25h[?0c[?25l[?1c?[?25h[?0cbar?
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

1 more line; before #2  0 seconds agobar[?25h[?0c[?25l[?1c
9 foo
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?^1?,$w! test.out
[?25l[?1c"test.out" [New] 11L, 137C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test43 = test61; then \
#	  if diff test.out test43.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test43.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test43.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test44.in
[?25h[?8c[?25h[?0c[?25l[?1c"test44.in" 81 lines, 1492 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
f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with multi-byte encoding and various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
:new
:$put =['dog(a', 'cat(']
/(/e+
"ayn:bd!
:$put =''
G"ap
: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
:new
:$put =['dog(a', 'cat(']
/(/e+
"ayn:bd!
:$put =''
G"ap
: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
:[?25h[?0c" Test \%u, [\u] and friends
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" c
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%u20ac
[?25l[?1c
:[?25h[?0c" d
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\u4f7f\u5929]\+
[?25l[?1c
:[?25h[?0c" e
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%U12345678
[?25l[?1c
:[?25h[?0c" f
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\U1234abcd\u1234\uabcd]
[?25l[?1c
:[?25h[?0c" g
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%d21879b
[?25l[?1c
:[?25h[?0c" j Test backwards search from a multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cx
[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" l Test what 7.3.192 fixed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^l
[?25l[?1c
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
g abb
test.out [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0c$put =['dog(a', 'cat(']
[?25l[?1cdog(acat([+][?25h[?0c[?25l[?1c/[?25h[?0c(/e+
[?25l[?1c/(/e+1
[?25h[?0c[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cbd!
[?25l[?1c1 a aa abb abbcc
2 d dd dee deeff
3 g gg ghh ghhii
e y
[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1c
cat(
[?25h[?0c[?25l[?1c
:[?25h[?0cw!
[?25l[?1c"test.out" 25L, 271C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test44 = test61; then \
#	  if diff test.out test44.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test44.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test44.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test45.in
[?25h[?8c[?25h[?0c[?25l[?1c"test45.in" 90 lines, 1953 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("."))[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for folding. vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 73 lines, 1820 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:new
iTest fdm=indent and :move bug END
line2Test fdm=indent STARTline3line4^[
:set fdm=indent
:1m1
2jzc:m0
:%w >> test.out
:qa!
ENDTEST

1 aa
2 bb
3 cc
4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg
8 hh
9 ii
a jj[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" We also need the +syntax feature here.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("syntax")
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   w! test.out

[?25l[?1c:  [?25h[?0c   qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:new
iTest fdm=indent and :move bug END
line2Test fdm=indent START[?25h[?0c[?25l[?1c:[?25h[?0c" basic test if a fold can be created, opened, moving to the end and closed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^1
[?25l[?1c[?25h[?0c[?25l[?1c+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "manual " . getline(foldclosed(".")))
[?25l[?1c[?25h[?0c[?25l[?1c1 aa2 bb3 cc4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg
8 hh
9 ii
a jj[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldclosed("."))
[?25l[?1c[?25h[?0c

[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline(foldclosed(".")))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test folding with markers.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=marker fdl=1 fdc=3
[?25l[?1c   :new
   iTest fdm=indent and :move bug END
   line2
           Test fdm=indent START
           line3
           line4^[
   :set fdm=indent
   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa   2 bb   3 cc-  4 dd {{{
|- 5 ee {{{ }}}
|  6 ff }}}
   7 gg
   8 hh
   9 ii
   a jj[?25h[?0c[?25l[?1c/[?25h[?0c^5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "marker " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c{{ |  6 ff }}}[?25h[?0c[?25l[?1c-{|
|
|
|[?25h[?0c[?25l[?1c


:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c6 ff }}}
 7 gg
 8 hh[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test folding with indent
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=indent sw=2
[?25l[?1c-++---  3 lines: Test fdm=indent START-----------------------------------------:set fdm=indent:1m12jzc:m0%w >> test.out:qa!ENDTEST1 aa2 bb3 cc4 dd {{{5 ee {{{ }}}
 {{{  6 ff }}}  6 ff }}}
  7 gg 8 hh9 iia jj[?25h[?0c[?25l[?1c/[?25h[?0c^2 b
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c
-  2 bb[?25h[?0c[?25l[?1c
|-    3 cc[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "indent " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test syntax folding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=syntax fdl=0
[?25l[?1c          Test fdm=indent START        line3        line4^[:set fdm=indent1m12jzc:m0:%w >> test.out:qa!ENDTEST
   1 aa  2 bb    3 cc4 dd {{{5 ee {{{ }}}{{{6 ff }}}6 ff }}}7 gg8 hh[?25h[?0c[?25l[?1c:[?25h[?0csyn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
[?25l[?1c++--  8 lines: 4 dd ----------------------------------------------------------a jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd1 start="ee" end="ff" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd2 start="gg" end="hh" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd3 start="commentstart" end="commentend" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c   1 aa
   marker 2
   1
   1
   0
   indent 2
   1[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "folding " . getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c
--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[?25h[?0c[?25l[?1c commentend- 
|-

| 
  
  
  
  
  
  [?25h[?0c[?25l[?1c:[?25h[?0cset fdl=1
[?25l[?1c++---  3 lines: 5 ee --------------------------------------------------------- 6 ff }}}++---  2 lines: 7 gg----------------------------------------------------------9 ii  a jj
  b kk
 lastmanual 1 aa-13 cc1 aamarker 21[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdl=0
[?25l[?1c++--  8 lines: 4 dd commentstart  commentend----------------------------------  a jj b kk  last manual 1 aa-13 cc1 aarker 2110indent[?25h[?0c[?25l[?1c
-4 dd {{{commentstart  commentend|-5 ee {{{ }}}
||{{{||6 ff }}}
|6 ff }}}|-7 gg
||8 hh
|9 iia jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c   :1m1
   2jzc:m0
   :%w >> test.out
   :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[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test expression folding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun Flvl()
[?25l[?1c
:  [?25h[?0c  let l = getline(v:lnum)

[?25l[?1c:  [?25h[?0c  if l =~ "bb$"

[?25l[?1c:    [?25h[?0c    return 2

[?25l[?1c:    [?25h[?0c  elseif l =~ "gg$"

[?25l[?1c:    [?25h[?0c    return "s1"

[?25l[?1c:    [?25h[?0c  elseif l =~ "ii$"

[?25l[?1c:    [?25h[?0c    return ">2"

[?25l[?1c:    [?25h[?0c  elseif l =~ "kk$"

[?25l[?1c:    [?25h[?0c    return "0"

[?25l[?1c:    [?25h[?0c  endif

[?25l[?1c:  [?25h[?0c  return "="

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa
     2 bb
       3 cc
-  4 dd {{{commentstart  commentend
|- 5 ee {{{ }}}
|| {{{[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=expr fde=Flvl()
[?25l[?1c++-- 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---------------------------------------------------~                                                                            ~                                                                            [?25h[?0c[?25l[?1c/[?25h[?0cbb$
[?25l[?1csearch 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[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "expr " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0chh$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cii$
[?25l[?1c-9 ii||a jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ckk$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^last/+1,$w! test.out
[?25l[?1c"test.out" [New File] 18 lines, 96 characters written[?25h[?0c[?25l[?1c:[?25h[?0cdelfun Flvl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c  
  
  
  ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            [No Name]                                                                       5 ee {{{ }}}{{{6 ff }}}|6 ff }}}|7 gg 8 hh
|-9 ii
||a jjb kklast
test45.in [+]                                                                   [?25h[?0c[?25l[?1cTest fdm=indent and :move bug ENDline2        Test fdm=indent START        line3        line4[+][?25h[?0c[?25l[?1c:[?25h[?0cset fdm=indent
[?25l[?1c++--  3 lines: Test fdm=indent START------------------------------------------~                                                                            ~                                                                            [?25h[?0c[?25l[?1c:[?25h[?0c1m1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cm0
[?25l[?1c3 lines moved++--  3 lines: Test fdm=indent START------------------------------------------Test fdm=indent and :move bug END
 line2[?25h[?0c[?25l[?1c:[?25h[?0c%w >> test.out
[?25l[?1c"test.out" 5 lines, 77 characters appendedtest.out [+] [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test45 = test61; then \
#	  if diff test.out test45.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test45.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test45.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test48.in
[?25h[?8c[?25h[?0c[?25l[?1c"test48.in" 83 lines, 1658 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 <CR> 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cThis is a test of 'virtualedit'.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 61 lines, 1442 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set display=
:"
:"   Test for ^Y/^E due to bad w_virtcol value, reported by
:"   Roy <royl@netropolis.net>.
^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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswf
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c65 fewer linesthis is a test
"r"
"r"
a^Vb^Msd
abcv6efi.him0kl


~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               65 fewer lines[?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Insert "keyword keyw", ESC, C CTRL-N, shows "keyword ykeyword".
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    Repeating CTRL-N fixes it. (Mary Ellen Foster)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cw
[?25l[?1c[?25h[?0c[?25l[?1c$Scanning tags.
The only matchword[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Using "C" then then <CR> moves the last remaining character to the next
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    line.  (Mary Ellen Foster)
[?25l[?1c[?25h[?0c
[?25l[?1c/[?25h[?0care
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c$are belong to vim
1 2 3 4 5 6
'i
'C
'a
'A
'D'this is a test

"r"     
a^Vb^Msdabcv6efi.him0kl[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   When past the end of a line that ends in a single character "b" skips
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    that word.
[?25l[?1c[?25h[?0c
[?25l[?1c$7[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'i' works
[?25l[?1c[?25h[?0c
'i'   [?25l[?1c<-- should be 3 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'C' works
[?25l[?1c[?25h[?0c
'C'   [?25l[?1c$<-- should be 3 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'a' works
[?25l[?1c[?25h[?0c
'a'   [?25l[?1c <-- should be 4 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'A' works
[?25l[?1c[?25h[?0c
'A'   [?25l[?1c<-- should be 0 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'D' works
[?25l[?1c[?25h[?0c
'D'   [?25l[?1c<-- 'D' should be intact[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test for yank bug reported by Mark Waggoner.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=block
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1caaablock of 4 lines yanked[?25h[?0c[?25l[?1c3 more linesa
aa [?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test "r" beyond the end of the line
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^"r"
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c"r"    [?25l[?1cx[?25h[?0c[?25l[?1cx<-- should be 'x'[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test "r" on a tab
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Note that for this test, 'ts' must be 8 (the default).
[?25l[?1c[?25h[?0c
"r"  [?25l[?1cx[?25h[?0c[?25l[?1cx  <-- should be '  x  '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test to make sure 'x' can delete control characters
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset display=uhex
[?25l[?1c<16>b<0d>sd[?25h[?0c
[?25l[?1c<16>b<0d>sd[?25h[?0c[?25l[?1cb<0d>sd[?25h[?0c[?25l[?1c<0d>sd[?25h[?0c[?25l[?1csd[?25h[?0c[?25l[?1cd[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[This line should contain only the text between the brackets.][?25h[?0c[?25l[?1c:[?25h[?0cset display=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test for ^Y/^E due to bad w_virtcol value, reported by
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Roy <royl@netropolis.net>.
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c   [?25l[?1cv[?25h[?0cv   [?25l[?1ci[?25h[?0ci   [?25l[?1cm   <-- should show the name of a noted text editor[?25h[?0c
[?25l[?1c[?25h[?0c    [?25l[?1c6[?25h[?0c6   [?25l[?1c.[?25h[?0c.   [?25l[?1c0   <-- and its version number[?25h[?0c[?25l[?1c
[?25h[?0c
    [?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for yanking and pasting using the small delete register
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^foo
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c, bar[?25h[?0c, [?25l[?1c[?25h[?0c[?25l[?1cba[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cfoo[?25h[?0c
keyw[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 23 lines, 479 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test48 = test61; then \
#	  if diff test.out test48.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test48.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test48.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test51.in
[?25h[?8c[?25h[?0c[?25l[?1c"test51.in" 36 lines, 809 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for ":highlight". vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 31 lines, 747 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" basic test if ":highlight" doesn't crash
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chighlight
[?25l[?1c
SpecialKey     xxx term=bold cterm=bold ctermfg=4 guifg=Cyan

EndOfBuffer    xxx links to NonText

NonTextxxx term=bold cterm=bold ctermfg=4 gui=bold guifg=Blue

Directory      xxx term=bold cterm=bold ctermfg=6 guifg=Cyan

ErrorMsgxxx term=standout cterm=bold ctermfg=7 ctermbg=1 guifg=White

guibg=Red

IncSearch      xxx term=reverse cterm=reverse gui=reverse

Searchxxx term=reverse ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

MoreMsgxxx term=bold cterm=bold ctermfg=2 gui=bold guifg=SeaGreen

ModeMsgxxx term=bold cterm=bold gui=bold

LineNrxxx term=underline cterm=bold ctermfg=3 guifg=Yellow

CursorLineNr   xxx term=bold cterm=bold ctermfg=3 gui=bold guifg=Yellow

Questionxxx term=standout cterm=bold ctermfg=2 gui=bold guifg=Green

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 cterm=bold ctermfg=5 gui=bold guifg=Magenta

Visualxxx term=reverse cterm=reverse guibg=DarkGrey

VisualNOS      xxx cleared

WarningMsg     xxx term=standout cterm=bold ctermfg=1 guifg=Red

WildMenuxxx term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

Foldedxxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=DarkGrey

FoldColumn     xxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=Grey

DiffAddxxx term=bold ctermbg=4 guibg=DarkBlue

DiffChange     xxx term=bold ctermbg=5 guibg=DarkMagenta

DiffDelete     xxx term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=Blue

guibg=DarkCyan

DiffTextxxx term=reverse cterm=bold ctermbg=1 gui=bold guibg=Red

SignColumn     xxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=Grey

Concealxxx ctermfg=7 ctermbg=0 guifg=LightGrey guibg=DarkGrey

SpellBadxxx term=reverse ctermbg=1 gui=undercurl guisp=Red

SpellCapxxx term=reverse ctermbg=4 gui=undercurl guisp=Blue

SpellRare      xxx term=reverse ctermbg=5 gui=undercurl guisp=Magenta

SpellLocal     xxx term=underline ctermbg=6 gui=undercurl guisp=Cyan

Pmenuxxx ctermfg=0 ctermbg=5 guibg=Magenta

PmenuSelxxx cterm=bold ctermfg=0 ctermbg=0 guibg=DarkGrey

PmenuSbar      xxx ctermbg=7 guibg=Grey

PmenuThumb     xxx ctermbg=7 guibg=White

TabLinexxx term=underline cterm=bold,underline ctermfg=7 ctermbg=0

gui=underline guibg=DarkGrey

TabLineSel     xxx term=bold cterm=bold gui=bold

TabLineFill    xxx term=reverse cterm=reverse gui=reverse

CursorColumn   xxx term=reverse ctermbg=0 guibg=Grey40

CursorLine     xxx term=underline cterm=underline guibg=Grey40

ColorColumn    xxx term=reverse ctermbg=1 guibg=DarkRed

MatchParen     xxx term=reverse ctermbg=6 guibg=DarkCyan

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Search
[?25l[?1c
Searchxxx term=reverse ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c" test setting colors.
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0c" test clearing one color and all doesn't generate error or warning
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi NewGroup term=bold cterm=italic ctermfg=DarkBlue ctermbg=Grey gui= guifg=#0

0ff00 guibg=Cyan
[?25l[?1cE418: Illegal value: guifg=#00ff00Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2 term= cterm=
[?25l[?1cE418: Illegal value: cterm=

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group3 term=underline cterm=bold
[?25l[?1c:hi NewGroup
:hi Group2[?25h[?0c[?25l[?1c
:[?25h[?0credir! >test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi NewGroup
[?25l[?1c
NewGroupxxx term=bold cterm=italic ctermfg=4 ctermbg=7

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group3
[?25l[?1c
Group3xxx term=underline cterm=bold

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi clear NewGroup
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup
:hi NewGroup
:hi Group2[?25h[?0c[?25l[?1c
:[?25h[?0chi NewGroup
[?25l[?1c
NewGroupxxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2 NONE
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup[?25h[?0c[?25l[?1c
:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi clear
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0chi Group3
[?25l[?1c
Group3xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Crash term='asdf
[?25l[?1cE475: Invalid argument: term='asdf

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3[?25h[?0c[?25l[?1c
:[?25h[?0c" filter ctermfg and ctermbg, the numbers depend on the terminal
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 20 lines, 289 charactersNewGroup       xxx term=bold cterm=italic ctermfg=4 ctermbg=7Group2         xxx clearedGroup3         xxx term=underline cterm=boldNewGroup       xxx clearedGroup2         xxx clearedGroup2         xxx clearedGroup3         xxx clearedE475: Invalid argument: term='asdf
~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c%s/ctermfg=\d*/ctermfg=2/
[?25l[?1c2
[?25h[?0c[?25l[?1c:[?25h[?0c%s/ctermbg=\d*/ctermbg=3/
[?25l[?1c3
[?25h[?0c[?25l[?1c:[?25h[?0c" filter out possibly translated error message
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c%s/E475: [^:]*:/E475:/
[?25l[?1cterm='asdf[?25h[?0c[?25l[?1c:[?25h[?0c" fix the fileformat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq!
[?25l[?1c"test.out" 20 lines, 271 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test51 = test61; then \
#	  if diff test.out test51.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test51.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test51.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test53.in
[?25h[?8c[?25h[?0c[?25l[?1c"test53.in" 75 lines, 1763 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()

STARTTEST
:so small.vim
/^start:/
da"
0va'a'rx
02f`da`
0fXdi"
03f'vi'ry
:set quoteescape=+*-
di`
$F"va"oha"i"rz
:"
/^<begin
jfXdit
0fXdit
fXdat
0fXdat[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for string and html text objects. vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1237 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:put =match('abc', '$', 4, 1) " -1
:put =match('abc', '\zs', 0, 1) " 0
:put =match('abc', '\zs', 0, 2) " 1
:put =match('abc', '\zs', 0, 3) " 2
:put =match('abc', '\zs', 0, 4) " 3
:put =match('abc', '\zs', 0, 5) " -1
:put =match('abc', '\zs', 1, 1) " 1
:put =match('abc', '\zs', 2, 1) " 2
:put =match('abc', '\zs', 3, 1) " 3
:put =match('abc', '\zs', 4, 1) " -1
:/^start:/,/^end:/wq! test.out
ENDTEST

start: "wo\"rd\\" foo
'foo' 'bar' 'piep'
bla bla `quote` blah
out " in "noXno"
"'" 'blah' rep 'buh'
bla `s*`d-`+++`l**` b`la
voo "nah" sdf " asdf" sdf " sdf" sd

<begin>
-<b>asdf<i>Xasdf</i>asdf</b>-[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c[?25h[?0c[?25l[?1cfo[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c'foo'[?25h[?0c[?25l[?1c 'bar'[?25h[?0c[?25l[?1c
xxxxxxxxxxxx
[?25h[?0c
[?25l[?1cblah[?25h[?0c
[?25l[?1c"[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c' rep[?25h[?0c[?25l[?1cyyyyy[?25h[?0c[?25l[?1c:[?25h[?0cset quoteescape=+*-
[?25l[?1c[?25h[?0c[?25l[?1c` b`la[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c" sdf"[?25h[?0c[?25l[?1c" [?25h[?0c[?25l[?1c"[?25h[?0c[?25l[?1c asdf" sdf [?25h[?0c[?25l[?1cah" sdf "
voo "[?25h[?0c[?25l[?1czzzzzzzzzzzzzzzzzzzzzzzzzzzz
voo "[?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^<begin
[?25l[?1c[?25h[?0c
[?25l[?1c</i>asdf</b>-[?25h[?0c[?25l[?1c
-<b>asdX<i>a<i />sdf</i>asdf</b>-[?25h[?0c
[?25l[?1c</b>-[?25h[?0c[?25l[?1c
-<b>asdf<i>Xasdf</i>asdf</b>-
-<b>[?25h[?0c[?25l[?1casdf</b>-[?25h[?0c[?25l[?1c
-<b>asdX<i>as<b />df</i>asdf</b>-[?25h[?0c
[?25l[?1c
--[?25h[?0c[?25l[?1c
-<b>
-[?25h[?0c[?25l[?1c<b></b>[?25h[?0c[?25l[?1c
</begin>[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =matchstr(\"abcd\", \".\", 0, 2) " b
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \"..\", 0, 2) " bc
[?25l[?1c
bc[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)
[?25l[?1c
c[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \".\", 0, -1) " a
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0cput =match(\"abcd\", \".\", 0, 5) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match(\"abcd\", \".\", 0, -1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 2) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 3) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 4) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 1, 1) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 2, 1) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 3, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 0, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 0, 2) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 1, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 2, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 3, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 4, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 2) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 3) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 4) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 5) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 1, 1) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 2, 1) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 3, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 4, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0c/^start:/,/^end:/wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 45 lines, 284 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test53 = test61; then \
#	  if diff test.out test53.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test53.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test53.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test55.in
[?25h[?8c[?25h[?0c[?25l[?1c"test55.in" 586 lines, 12256 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])
:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for List and Dictionary types.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 580 lines, 12170 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =string(l)
: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:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun Test(...)
[?25l[?1c
:  [?25h[?0c:lang C

[?25l[?1c:  [?25h[?0c:" Creating List directly with different types

[?25l[?1c:  [?25h[?0c:let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:$put =string(l[-1])

[?25l[?1c:  [?25h[?0c:$put =string(l[-4])

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =string(l[-5])

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:" List slices

[?25l[?1c:  [?25h[?0c:$put =string(l[:])

[?25l[?1c:  [?25h[?0c:$put =string(l[1:])

[?25l[?1c:  [?25h[?0c:$put =string(l[:-2])

[?25l[?1c:  [?25h[?0c:$put =string(l[0:8])

[?25l[?1c:  [?25h[?0c:$put =string(l[8:-1])

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" List identity

[?25l[?1c:  [?25h[?0c:let ll = l

[?25l[?1c:  [?25h[?0c:let lx = copy(l)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =(l == ll) . (l isnot ll) . (l is ll) . (l == lx) . (l is lx) . (l

isnot lx)

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Creating Dictionary directly with different types

[?25l[?1c:  [?25h[?0c:let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},}

[?25l[?1c:  [?25h[?0c:$put =string(d) . d.1

[?25l[?1c:  [?25h[?0c:$put =string(sort(keys(d)))

[?25l[?1c:  [?25h[?0c:$put =string (values(d))

[?25l[?1c:  [?25h[?0c:for [key, val] in items(d)

[?25l[?1c:    [?25h[?0c:  $put =key . ':' . string(val)

[?25l[?1c:    [?25h[?0c:  unlet key val

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c:call extend  (d, {3:33, 1:99})

[?25l[?1c:  [?25h[?0c:call extend(d, {'b':'bbb', 'c':'ccc'}, "keep")

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  call extend(d, {3:333,4:444}, "error")

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:call filter(d, 'v:key =~ ''[ac391]''')

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Dictionary identity

[?25l[?1c:  [?25h[?0c:let dd = d

[?25l[?1c:  [?25h[?0c:let dx = copy(d)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =(d == dd) . (d isnot dd) . (d is dd) . (d == dx) . (d is dx) . (d

isnot dx)

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" removing items with :unlet

[?25l[?1c:  [?25h[?0c:unlet l[2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:let l = range(8)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:unlet l[:3]

[?25l[?1c:    [?25h[?0c:unlet l[1:]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:$put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:unlet d.c

[?25l[?1c:  [?25h[?0c:unlet d[-1]

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" removing items out of range: silently skip items that don't exist

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:1]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:3]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:4]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:5]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-1:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-2:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-3:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-4:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-5:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-6:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" assignment to a list

[?25l[?1c:  [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:let [va, vb] = l[2:3]

[?25l[?1c:  [?25h[?0c:$put =va

[?25l[?1c:  [?25h[?0c:$put =vb

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let [va, vb] = l

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let [va, vb] = l[1:1]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" manipulating a big Dictionary (hashtable.c has a border of 1000 entries)

[?25l[?1c:  [?25h[?0c:let d = {}

[?25l[?1c:  [?25h[?0c:for i in range(1500)

[?25l[?1c:    [?25h[?0c: let d[i] = 3000 - i

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c:$put =d[0] . ' ' . d[100] . ' ' . d[999] . ' ' . d[1400] . ' ' . d[1499]

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let n = d[1500]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =substitute(v:exception, '\v(.{14}).*( \d{4}).*', '\1\2', '')

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:" lookup each items

[?25l[?1c:  [?25h[?0c:for i in range(1500)

[?25l[?1c:    [?25h[?0c: if d[i] != 3000 - i

[?25l[?1c:      [?25h[?0c:  $put =d[i]

[?25l[?1c:      [?25h[?0c: endif

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c: let i += 1

[?25l[?1c:  [?25h[?0c:" delete even items

[?25l[?1c:  [?25h[?0c:while i >= 2

[?25l[?1c:    [?25h[?0c: let i -= 2

[?25l[?1c:    [?25h[?0c: unlet d[i]

[?25l[?1c:    [?25h[?0c:endwhile

[?25l[?1c:  [?25h[?0c:$put =get(d, 1500 - 100, 'NONE') . ' ' . d[1]

[?25l[?1c:  [?25h[?0c:" delete odd items, checking value, one intentionally wrong

[?25l[?1c:  [?25h[?0c:let d[33] = 999

[?25l[?1c:  [?25h[?0c:let i = 1

[?25l[?1c:  [?25h[?0c:while i < 1500

[?25l[?1c:    [?25h[?0c: if d[i] != 3000 - i

[?25l[?1c:      [?25h[?0c:  $put =i . '=' . d[i]

[?25l[?1c:      [?25h[?0c: else

[?25l[?1c:      [?25h[?0c:  unlet d[i]

[?25l[?1c:      [?25h[?0c: endif

[?25l[?1c:    [?25h[?0c: let i += 2

[?25l[?1c:    [?25h[?0c:endwhile

[?25l[?1c:  [?25h[?0c:$put =string(d)  " must be almost empty now

[?25l[?1c:  [?25h[?0c:unlet d

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Dictionary function

[?25l[?1c:  [?25h[?0c:let dict = {}

[?25l[?1c:  [?25h[?0c:func dict.func(a) dict

[?25l[?1c:    [?25h[?0c:  $put =a:a . len(self.data)

[?25l[?1c:    [?25h[?0c:endfunc

[?25l[?1c:    [?25h[?0c:let dict.data = [1,2,3]

[?25l[?1c:    [?25h[?0c:call dict.func("len: ")

[?25l[?1c:    [?25h[?0c:let x = dict.func("again: ")

[?25l[?1c:    [?25h[?0c:let Fn = dict.func

[?25l[?1c:    [?25h[?0c:call Fn('xxx')

[?25l[?1c:    [?25h[?0c:" 

[?25l[?1c:    [?25h[?0c:" Function in script-local List or Dict

[?25l[?1c:    [?25h[?0c:let g:dict = {}

[?25l[?1c:    [?25h[?0c:function g:dict.func() dict

[?25l[?1c:      [?25h[?0c:  $put ='g:dict.func'.self.foo[1].self.foo[0]('asdf')

[?25l[?1c:      [?25h[?0c:endfunc

[?25l[?1c:      [?25h[?0c:let g:dict.foo = ['-', 2, 3]

[?25l[?1c:      [?25h[?0c:call insert(g:dict.foo, function('strlen'))

[?25l[?1c:      [?25h[?0c:call g:dict.func()

[?25l[?1c:      [?25h[?0c:" 

[?25l[?1c:      [?25h[?0c:" Nasty: remove func from Dict that's being called (works)

[?25l[?1c:      [?25h[?0c:let d = {1:1}

[?25l[?1c:      [?25h[?0c:func d.func(a)

[?25l[?1c:[?25h[?0c:  return "a:". a:a

[?25l[?1c:[?25h[?0c:endfunc

[?25l[?1c:[?25h[?0c:$put =d.func(string(remove(d, 'func')))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Nasty: deepcopy() dict that refers to itself (fails when noref used

)
[?25l[?1c:[?25h[?0c:let d = {1:1, 2:2}

[?25l[?1c:[?25h[?0c:let l = [4, d, 6]

[?25l[?1c:[?25h[?0c:let d[3] = l

[?25l[?1c:[?25h[?0c:let dc = deepcopy(d)

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let dc = deepcopy(d, 1)

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:let l2 = [0, l, l, 3]

[?25l[?1c:[?25h[?0c:let l[1] = l2

[?25l[?1c:[?25h[?0c:let l3 = deepcopy(l2)

[?25l[?1c:[?25h[?0c:$put ='same list: ' . (l3[1] is l3[2])

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Locked variables

[?25l[?1c:[?25h[?0c:for depth in range(5)

[?25l[?1c:[?25h[?0c:  $put ='depth is ' . depth

[?25l[?1c:[?25h[?0c:  for u in range(3)

[?25l[?1c:[?25h[?0c:    unlet l

[?25l[?1c:[?25h[?0c:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l[?1c:[?25h[?0c:    exe "lockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    if u == 1

[?25l[?1c:[?25h[?0c:      exe "unlockvar l"

[?25l[?1c:[?25h[?0c:    elseif u == 2

[?25l[?1c:[?25h[?0c:      exe "unlockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    endif

[?25l[?1c:[?25h[?0c:    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]")

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:    let ps = ''

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1][1][0] = 99

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1][1] = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1] = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2]['6'][7] = 99

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2][6] = {99: 99}

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2] = {99: 99}

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:  endfor

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Unletting locked variables

[?25l[?1c:[?25h[?0c:$put ='Unletting:'

[?25l[?1c:[?25h[?0c:for depth in range(5)

[?25l[?1c:[?25h[?0c:  $put ='depth is ' . depth

[?25l[?1c:[?25h[?0c:  for u in range(3)

[?25l[?1c:[?25h[?0c:    unlet l

[?25l[?1c:[?25h[?0c:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l[?1c:[?25h[?0c:    exe "lockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    if u == 1

[?25l[?1c:[?25h[?0c:      exe "unlockvar l"

[?25l[?1c:[?25h[?0c:    elseif u == 2

[?25l[?1c:[?25h[?0c:      exe "unlockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    endif

[?25l[?1c:[?25h[?0c:    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]")

[?25l[?1c:[?25h[?0c:  gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/mark.o mark.c
  $put =ps

[?25l[?1c:[?25h[?0c:    let ps = ''

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2]['6'][7]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2][6]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1][1][0]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1][1]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:  endfor

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Locked variables and :unlet or list / dict functions

[?25l[?1c:[?25h[?0c:$put ='Locks and commands or functions:'

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :unlet after lock on dict:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar 1 d

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet d.a

[?25l[?1c:[?25h[?0c:  $put ='did :unlet'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put =':unlet after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet d.a

[?25l[?1c:[?25h[?0c:  $put ='did :unlet'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='filter() after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call filter(d, 'v:key != "a"')

[?25l[?1c:[?25h[?0c:  $put ='did filter()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='map() after lock on dict:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar 1 d

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call map(d, 'v:val + 200')

[?25l[?1c:[?25h[?0c:  $put ='did map()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No extend() after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  $put =string(extend(d, {'a': 123}))

[?25l[?1c:[?25h[?0c:  $put ='did extend()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No remove() of write-protected scope-level variable:'

[?25l[?1c:[?25h[?0c:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l[?1c:[?25h[?0c:  try

[?25l[?1c:[?25h[?0c:    $put =string(remove(a:, 'this_is_a_loooooooooong_parameter_na

me'))

[?25l[?1c:[?25h[?0c:    $put ='did remove()'

[?25l[?1c:[?25h[?0c:  catch

[?25l[?1c:[?25h[?0c:    $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:  endtry

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:call Tfunc('testval')

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No extend() of write-protected scope-level variable:'

[?25l[?1c:[?25h[?0c:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l[?1c:[?25h[?0c:  try

[?25l[?1c:[?25h[?0c:    $put =string(extend(a:, {'this_is_a_loooooooooong_parameter

_name': 1234}))

[?25l[?1c:[?25h[?0c:    $put ='did extend()'

[?25l[?1c:[?25h[?0c:  catch

[?25l[?1c:[?25h[?0c:    $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:  endtry

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:call Tfunc('testval')

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :unlet of variable in locked scope:'

[?25l[?1c:[?25h[?0c:let b:testvar = 123

[?25l[?1c:[?25h[?0c:lockvar 1 b:

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet b:testvar

[?25l[?1c:[?25h[?0c:  $put ='b:testvar was :unlet: '. (!exists('b:testvar'))

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:unlockvar 1 b:

[?25l[?1c:[?25h[?0c:unlet! b:testvar

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :let += of locked list variable:'

[?25l[?1c:[?25h[?0c:let l = ['a', 'b', 3]

[?25l[?1c:[?25h[?0c:lockvar 1 l

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let l += ['x']

[?25l[?1c:[?25h[?0c:  $put ='did :let +='

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:unlet l

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4]

[?25l[?1c:[?25h[?0c:lockvar! l

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlockvar l[1]

[?25l[?1c:[?25h[?0c:unlet l[0:1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlet l[1:2]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlockvar l[1]

[?25l[?1c:[?25h[?0c:let l[0:1] = [0, 1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:let l[1:2] = [0, 1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlet l

[?25l[?1c:[?25h[?0c:" :lockvar/islocked() triggering script autoloading

[?25l[?1c:[?25h[?0c:set rtp+=./sautest

[?25l[?1c:[?25h[?0c:lockvar g:footest#x

[?25l[?1c:[?25h[?0c:unlockvar g:footest#x

[?25l[?1c:[?25h[?0c:$put ='locked g:footest#x:'.islocked('g:footest#x')

[?25l[?1c:[?25h[?0c:$put ='exists g:footest#x:'.exists('g:footest#x')

[?25l[?1c:[?25h[?0c:$put ='g:footest#x: '.g:footest#x

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" a:000 function argument

[?25l[?1c:[?25h[?0c:" first the tests that should fail

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000 = [1, 2]

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[0] = 9

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[0]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[2] = [9, 10]

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[2]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[3] = {9: 10}

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[3]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:" now the tests that should pass

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[2][1] = 9

[?25l[?1c:[?25h[?0c:  call extend(a:000[2], [5, 6])

[?25l[?1c:[?25h[?0c:  let a:000[3][5] = 8

[?25l[?1c:[?25h[?0c:  let a:000[3]['a'] = 12

[?25l[?1c:[?25h[?0c:  $put =string(a:000)

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught ' . v:exception

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" reverse(), sort(), uniq()

[?25l[?1c:[?25h[?0c:let l = ['-0', 'A11', 2, 2, 'xaaa', 4, 'foo', 'foo6', 'foo', [0, 

1, 2], 'x8', [0, 1, 2], 1.5]

[?25l[?1c:[?25h[?0c:$put =string(uniq(copy(l)))

[?25l[?1c:[?25h[?0c:$put =string(reverse(l))

[?25l[?1c:[?25h[?0c:$put =string(reverse(reverse(l)))

[?25l[?1c:[?25h[?0c:$put =string(sort(l))

[?25l[?1c:[?25h[?0c:$put =string(reverse(sort(l)))

[?25l[?1c:[?25h[?0c:$put =string(sort(reverse(sort(l))))

[?25l[?1c:[?25h[?0c:$put =string(uniq(sort(l)))

[?25l[?1c:[?25h[?0c:let l=[7, 9, 'one', 18, 12, 22, 'two', 10.0e-16, -1, 'three', 0xf

f, 0.22, 'four']

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 'n'))

[?25l[?1c:[?25h[?0c:let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'bar', 

'BAR', 'Bar', 'Foo', 'FOO', 'foo', 'FOOBAR', {}, []]

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 1))

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 'i'))

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l)))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" splitting a string to a List

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb '))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W\+', 0))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W\+', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W', 1))

[?25l[?1c:[?25h[?0c:$put =string(split(':aa::bb:', ':', 0))

[?25l[?1c:[?25h[?0c:$put =string(split(':aa::bb:', ':', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('aa,,bb, cc,', ',\s*', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('abc', '\zs'))

[?25l[?1c:[?25h[?0c:$put =string(split('abc', '\zs', 1))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" compare recursively linked list and dict

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4]

[?25l[?1c:[?25h[?0c:let d = {'1': 1, '2': l, '3': 3}

[?25l[?1c:[?25h[?0c:let l[1] = d

[?25l[?1c:[?25h[?0c:$put =(l == l)

[?25l[?1c:[?25h[?0c:$put =(d == d)

[?25l[?1c:[?25h[?0c:$put =(l != deepcopy(l))

[?25l[?1c:[?25h[?0c:$put =(d != deepcopy(d))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" compare complex recursively linked list and dict

[?25l[?1c:[?25h[?0c:let l = []

[?25l[?1c:[?25h[?0c:call add(l, l)

[?25l[?1c:[?25h[?0c:let dict4 = {"l": l}

[?25l[?1c:[?25h[?0c:call add(dict4.l, dict4)

[?25l[?1c:[?25h[?0c:let lcopy = deepcopy(l)

[?25l[?1c:[?25h[?0c:let dict4copy = deepcopy(dict4)

[?25l[?1c:[?25h[?0c:$put =(l == lcopy)

[?25l[?1c:[?25h[?0c:$put =(dict4 == dict4copy)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same List to extend()

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4, 5]

[?25l[?1c:[?25h[?0c:call extend(l, l)

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same Dict to extend()

[?25l[?1c:[?25h[?0c:let d = { 'a': {'b': 'B'}}

[?25l[?1c:[?25h[?0c:call extend(d, d)

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same Dict to extend() with "error"

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call extend(d, d, "error")

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" test for range assign

[?25l[?1c:[?25h[?0c:let l = [0]

[?25l[?1c:[?25h[?0c:let l[:] = [1, 2]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:endfun
[?25l[?1c:$put =string(l)
: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:[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Test(1, 2, [3, 4], {5: 6})  " This may take a while
[?25l[?1cError detected while processing function Test:
line   76:

E684: list index out of range: 1

line   91:

E684: list index out of range: 2

line  271:

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

line  441:

E741: Value is locked: l[0:1]

line  443:

E741: Value is locked: l[1:2]

line  446:

E741: Value is locked: l[0:1] = [0, 1]

line  448:

E741: Value is locked: l[1:2] = [0, 1]

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb']
['aa', 'bb']
['', 'aa', 'bb', '']
['', '', 'aa', '', 'bb', '', '']
['aa', '', 'bb']
['', 'aa', '', 'bb', '']
['aa', '', 'bb', 'cc', '']
['a', 'b', 'c']
['', 'a', '', 'b', '', 'c', '']
1
1
0
0
1
1
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
{'a': {'b': 'B'}}
Vim(call):E737: a
{'a': {'b': 'B'}}
[1, 2]
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cdelfunc Test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cunlet dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for patch 7.3.637
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a = 'No error caught'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?1c[?25h[?0c[?25l[?1c=[?25h[?0ca
[?25l[?1cVim(foldopen):E490:[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?1cError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'

)|endtry

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb'][?25h[?0c[?25l[?1c
=[?25h[?0ca
[?25l[?1cError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 197 lines, 3821 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test55 = test61; then \
#	  if diff test.out test55.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test55.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test55.in; \
#	  fi \
#	fi"
# 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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/blowfish.o blowfish.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test56.in
[?25h[?8c[?25h[?0c[?25l[?1c"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 <SID>DoLast()
  call append(line('$'), "last line")
endfun
fun s:DoNothing()
  call append(line('$'), "nothing line")
endfun
nnoremap <buffer> _x    :call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
end:
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for script-local function.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 120 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/+1,/^end:/-1w! Xtest.vim
[?25l[?1c"Xtest.vim" [New] 7L, 251C written[?25h[?0c[?25l[?1c:[?25h[?0csource Xtest.vim
[?25l[?1c[?25h[?0c[?25l[?1c:call <SNR>4_DoNothing()|call <SNR>4_DoLast()|delfunc <SNR>4_DoNothing|delfunc 

<SNR>4_DoLast
Press ENTER or type command to continue[?25h[?0c[?25l[?1cTest for script-local function.     vim: set ft=vim :nothing line[?25h[?0c[?25l[?1c:[?25h[?0c$-1,$wq! test.out
[?25l[?1c"test.out" [New] 2L, 23C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test56 = test61; then \
#	  if diff test.out test56.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test56.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test56.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test57.in
[?25h[?8c[?25h[?0c[?25l[?1c"test57.in" 545 lines, 4110 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :sort command.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 33 lines, 920 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:/^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
:/^t28:/+1,/^t29/-1sort b
:/^t29:/+1,/^t30/-1sort b
:/^t30:/+1,/^t31/-1sort f
:/^t01:/,$wq! test.out
ENDTEST

t01: alphebetical
abc
ab
a
a321
a123
a122
b321
b123
c123d[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^t01:/+1,/^t02/-1sort
[?25l[?1c 123b2
a123
a
ababc[?25h[?0c[?25l[?1c:[?25h[?0c/^t02:/+1,/^t03/-1sort n
[?25l[?1cb123
b321
b321
b321b
b322b
c123d
c321d
t02: numeric
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t03:/+1,/^t04/-1sort x
[?25l[?1ca123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t03: hexadecimal


a
ab
abc
 123b
a122
a123
a321
b123
b321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t04:/+1,/^t05/-1sort u
[?25l[?1cb321b
b322b
c123d
c321d
t04: alpha, unique[?25h[?0c[?25l[?1c
:[?25h[?0c/^t05:/+1,/^t06/-1sort!
[?25l[?1ca123
a321
ab
abc
b123
b321
b321b
b322b
c123d
c321d
t05: alpha, reverse
c321d
c123d
b322b
b321b
b321
b321
b123
abc
ab
a321
a123
a122[?25h[?0c[?25l[?1c:[?25h[?0c/^t06:/+1,/^t07/-1sort! n        
[?25l[?1ca
 123b


t06: numeric, reverse
b322b[?25h[?0c[?25l[?1c
:[?25h[?0c/^t07:/+1,/^t08/-1sort! u
[?25l[?1c123b
c123d
b123
a123
a122


a
ab
abc
t07: unique, reverse
c321d
c123d
b322b
b321b
b321
b123
abc
ab
a321
a123
a122
a[?25h[?0c[?25l[?1c:[?25h[?0c/^t08:/+1,/^t09/-1sort o         
[?25l[?1c123b

t08: octal
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t09:/+1,/^t10/-1sort! x        
[?25l[?1ca123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t09: reverse, hexadecimal
c321d
c123d
b322b
b321b
b321
b321
b123
a321
a123
a122
 123b
abc[?25h[?0c[?25l[?1c:[?25h[?0c/^t10:/+1,/^t11/-1sort/./        
[?25l[?1cab
a


t10: alpha, skip first character
a[?25h[?0c[?25l[?1c
:[?25h[?0c/^t11:/+1,/^t12/-1sort/../       
[?25l[?1c123b
c123d
a321
b321
b321
b321b
c321d
b322b
ab
abc
t11: alpha, skip first 2 characters
ab
a


a321
b321
b321
b321b
c321d
a122
b322b
a123[?25h[?0c[?25l[?1c:[?25h[?0c/^t12:/+1,/^t13/-1sort/../u
[?25l[?1cb123
 123b
c123d
abc
t12: alpha, unique, skip first 2 characters
ab[?25h[?0c[?25l[?1c
:[?25h[?0c/^t13:/+1,/^t14/-1sort/./n
[?25l[?1cb321
b321b
c321d
a122
b322b
a123
b123
 123b
c123d
abc
t13: numeric, skip first character
abc
ab
a


a122
a123
b123
c123d
 123b
a321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t14:/+1,/^t15/-1sort/./r
[?25l[?1cc321d
b321
b321b
b322b
t14: alpha, sort on first character[?25h[?0c[?25l[?1c
:[?25h[?0c/^t15:/+1,/^t16/-1sort/../r
[?25l[?1ca321
a123
a122
b321
b123
b322b
b321
b321b
c123d
c321d
t15: alpha, sort on first 2 characters
a123b
a123
a122
a321
abc
ab
b123
b321
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t16:/+1,/^t17/-1sort/./rn
[?25l[?1cb321
b321b
c123d
c321d
t16: numeric, sort on first character
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t17:/+1,/^t18/-1sort/\d/
[?25l[?1cb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t17: alpha, skip past first digit
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t18:/+1,/^t19/-1sort/\d/r
[?25l[?1ca123
b123
 123b
c123d
t18: alpha, sort on first digit
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t19:/+1,/^t20/-1sort/\d/n
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t19: numeric, skip past first digit
abc
ab
a


a321
b321
c321d
b321
b321b
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t20:/+1,/^t21/-1sort/\d/rn
[?25l[?1ca123
b123
c123d
 123b
t20: numeric, sort on first digit
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t21:/+1,/^t22/-1sort/\d\d/
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t21: alpha, skip past first 2 digits
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t22:/+1,/^t23/-1sort/\d\d/n
[?25l[?1ca123
b123
 123b
c123d
t22: numeric, skip past first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t23:/+1,/^t24/-1sort/\d\d/x
[?25l[?1cb321
c321d
b321
b321b
a122
b322b
a123
b123
c123d
 123b
t23: hexadecimal, skip past first 2 digits
abc
ab
a


a321
b321
b321
a122
a123
b123
b321b[?25h[?0c[?25l[?1c:[?25h[?0c/^t24:/+1,/^t25/-1sort/\d\d/r
[?25l[?1cc321d
b322b
 123b
c123d
t24: alpha, sort on first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t25:/+1,/^t26/-1sort/\d\d/rn
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t25: numeric, sort on first 2 digits
abc
ab
a


a123
a122
b123
c123d
 123b
a321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t26:/+1,/^t27/-1sort/\d\d/rx
[?25l[?1cc321d
b322b
b321
b321b
t26: hexadecimal, sort on first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t27:/+1,/^t28/-1sort no
[?25l[?1cE474: Invalid argument[?25h[?0c[?25l[?1c:[?25h[?0c/^t28:/+1,/^t29/-1sort b
[?25l[?1cb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t28: binary


0b000000
0b001000
0b010000
0b100000
0b100010
0b100010
0b100100
0b101000
0b101000
0b101001[?25h[?0c[?25l[?1c:[?25h[?0c/^t29:/+1,/^t30/-1sort b
[?25l[?1c0b101001
0b101010
0b101100
0b111000
t29: binary with leading characters[?25h[?0c[?25l[?1c
:[?25h[?0c/^t30:/+1,/^t31/-1sort f
[?25l[?1ca0b001000
0b010000
ab0b100000
0b100010
0b100010
 0b100100
0b101000
0b101000
 0b101001
a0b101001
0b101010
b0b101100
b0b111000
t30: float


-1.1e3
-1.01e3
1.15e-6
0.88
1.234
123.456
t31: done[?25h[?0c[?25l[?1c:[?25h[?0c/^t01:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 501 lines, 3105 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test57 = test61; then \
#	  if diff test.out test57.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test57.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test57.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test60.in
[?25h[?8c[?25h[?0c[?25l[?1c"test60.in" 601 lines, 13116 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for the exists() and has() functions.  vim: set ft=vim ts=8 sw=2 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 596 lines, 13023 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! RunTest(str, result)
[?25l[?1c
:  [?25h[?0c    if exists(a:str) == a:result

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED: Checking for " . a:str

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0cendfunction
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x[?25h[?0c[?25l[?1c
:[?25h[?0cfunction! TestExists()
[?25l[?1c
:  [?25h[?0c    augroup myagroup

[?25l[?1c:  [?25h[?0c^Iautocmd! BufEnter       *.my     echo "myfile edited"

[?25l[?1c:  [?25h[?0c^Iautocmd! FuncUndefined  UndefFun exec "fu UndefFun()\nendfu"

[?25l[?1c:  [?25h[?0c    augroup END

[?25l[?1c:  [?25h[?0c    set rtp+=./sautest

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    let test_cases = []

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " valid autocmd group

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup', 1]]

[?25l[?1c:  [?25h[?0c    " valid autocmd group with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup+b', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group, event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter#*.my', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter#*.my', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd group or event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#xyzagroup', 0]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd group and valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#xyzagroup#BufEnter', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event with no matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#CmdwinEnter', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and non-existing autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#xyzacmd', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event and non-matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter#xyzpat', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event and non-matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter#xyzpat', 0]]

[?25l[?1c:  [?25h[?0c    " Empty autocmd group, event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['###', 0]]

[?25l[?1c:  [?25h[?0c    " Empty autocmd group and event or empty event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['##', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['##FileReadCmd', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['##MySpecialCmd', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&textwidth', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&tw', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['&tw-', 0]]

[?25l[?1c:  [?25h[?0c    " Global option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&g:errorformat', 1]]

[?25l[?1c:  [?25h[?0c    " Local option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&l:errorformat', 1]]

[?25l[?1c:  [?25h[?0c    " Negative form of existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&nojoinspaces', 0]]

[?25l[?1c:  [?25h[?0c    " Negative form of existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&nojs', 0]]

[?25l[?1c:  [?25h[?0c    " Non-existing option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&myxyzoption', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['+incsearch', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['+incsearch!1', 0]]

[?25l[?1c:  [?25h[?0c    " Existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['+is', 1]]

[?25l[?1c:  [?25h[?0c    " Existing option that is hidden.

[?25l[?1c:  [?25h[?0c    let test_cases += [['+autoprint', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing environment variable

[?25l[?1c:  [?25h[?0c    let $EDITOR_NAME = 'Vim Editor'

[?25l[?1c:  [?25h[?0c    let test_cases += [['$EDITOR_NAME', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing environment variable

[?25l[?1c:  [?25h[?0c    let test_cases += [['$NON_ENV_VAR', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr', 1]]

[?25l[?1c:  [?25h[?0c    " Valid internal function with ()

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr()', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing internal function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*myxyzfunc', 0]]

[?25l[?1c:  [?25h[?0c    " Valid internal function with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr&6', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid user defined function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*TestExists', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing user defined function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*MyxyzFunc', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Function that may be created by FuncUndefined event

[?25l[?1c:  [?25h[?0c    let test_cases += [['*UndefFun', 0]]

[?25l[?1c:  [?25h[?0c    " Function that may be created by script autoloading

[?25l[?1c:  [?25h[?0c    let test_cases += [['*footest#F', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    redir! > test.out

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    for [test_case, result] in test_cases

[?25l[?1c:    [?25h[?0c        echo test_case . ": " . result

[?25l[?1c:    [?25h[?0c        call RunTest(test_case, result)

[?25l[?1c:    [?25h[?0c    endfor

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (full match)

[?25l[?1c:  [?25h[?0c    echo ':edit: 2'

[?25l[?1c:  [?25h[?0c    if exists(':edit') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (full match) with garbage

[?25l[?1c:  [?25h[?0c    echo ':edit/a: 0'

[?25l[?1c:  [?25h[?0c    if exists(':edit/a') == 0

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (partial match)

[?25l[?1c:  [?25h[?0c    echo ':q: 1'

[?25l[?1c:  [?25h[?0c    if exists(':q') == 1

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing internal command

[?25l[?1c:  [?25h[?0c    echo ':invalidcmd: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':invalidcmd')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " User defined command (full match)

[?25l[?1c:  [?25h[?0c    command! MyCmd :echo 'My command'

[?25l[?1c:  [?25h[?0c    echo ':MyCmd: 2'

[?25l[?1c:  [?25h[?0c    if exists(':MyCmd') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " User defined command (partial match)

[?25l[?1c:  [?25h[?0c    command! MyOtherCmd :echo 'Another command'

[?25l[?1c:  [?25h[?0c    echo ':My: 3'

[?25l[?1c:  [?25h[?0c    if exists(':My') == 3

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Command modifier

[?25l[?1c:  [?25h[?0c    echo ':rightbelow: 2'

[?25l[?1c:  [?25h[?0c    if exists(':rightbelow') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing user defined command (full match)

[?25l[?1c:  [?25h[?0c    delcommand MyCmd

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    echo ':MyCmd: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':MyCmd')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing user defined command (partial match)

[?25l[?1c:  [?25h[?0c    delcommand MyOtherCmd

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    echo ':My: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':My')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local variable

[?25l[?1c:  [?25h[?0c    let local_var = 1

[?25l[?1c:  [?25h[?0c    echo 'local_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local variable with garbage

[?25l[?1c:  [?25h[?0c    let local_var = 1

[?25l[?1c:  [?25h[?0c    echo 'local_var%n: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_var%n')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local variable

[?25l[?1c:  [?25h[?0c    unlet local_var

[?25l[?1c:  [?25h[?0c    echo 'local_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing autoload variable that may be autoloaded

[?25l[?1c:  [?25h[?0c    echo 'footest#x: 0'

[?25l[?1c:  [?25h[?0c    if !exists('footest#x')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list

[?25l[?1c:  [?25h[?0c    let local_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'local_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list item

[?25l[?1c:  [?25h[?0c    echo 'local_list[1]: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_list[1]')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list item with garbage

[?25l[?1c:  [?25h[?0c    echo 'local_listgcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/charset.o charset.c
[1]+5: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list[1]+5')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Invalid local list item

[?25l[?1c:  [?25h[?0c    echo 'local_list[2]: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list[2]')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local list

[?25l[?1c:  [?25h[?0c    unlet local_list

[?25l[?1c:  [?25h[?0c    echo 'local_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local dictionary

[?25l[?1c:  [?25h[?0c    let local_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'local_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local dictionary

[?25l[?1c:  [?25h[?0c    unlet local_dict

[?25l[?1c:  [?25h[?0c    echo 'local_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing local curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "local"

[?25l[?1c:  [?25h[?0c    let curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global variable

[?25l[?1c:  [?25h[?0c    let g:global_var = 1

[?25l[?1c:  [?25h[?0c    echo 'g:global_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global variable with garbage

[?25l[?1c:  [?25h[?0c    echo 'g:global_var-n: 1'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_var-n')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global variable

[?25l[?1c:  [?25h[?0c    unlet g:global_var

[?25l[?1c:  [?25h[?0c    echo 'g:global_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global list

[?25l[?1c:  [?25h[?0c    let g:global_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'g:global_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global list

[?25l[?1c:  [?25h[?0c    unlet g:global_list

[?25l[?1c:  [?25h[?0c    echo 'g:global_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global dictionary

[?25l[?1c:  [?25h[?0c    let g:global_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'g:global_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global dictionary

[?25l[?1c:  [?25h[?0c    unlet g:global_dict

[?25l[?1c:  [?25h[?0c    echo 'g:global_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "global"

[?25l[?1c:  [?25h[?0c    let g:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'g:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet g:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'g:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window variable

[?25l[?1c:  [?25h[?0c    echo 'w:window_var: 1'

[?25l[?1c:  [?25h[?0c    let w:window_var = 1

[?25l[?1c:  [?25h[?0c    if exists('w:window_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window variable

[?25l[?1c:  [?25h[?0c    unlet w:window_var

[?25l[?1c:  [?25h[?0c    echo 'w:window_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window list

[?25l[?1c:  [?25h[?0c    let w:window_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'w:window_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:window_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window list

[?25l[?1c:  [?25h[?0c    unlet w:window_list

[?25l[?1c:  [?25h[?0c    echo 'w:window_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window dictionary

[?25l[?1c:  [?25h[?0c    let w:window_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'w:window_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:window_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window dictionary

[?25l[?1c:  [?25h[?0c    unlet w:window_dict

[?25l[?1c:  [?25h[?0c    echo 'w:window_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "window"

[?25l[?1c:  [?25h[?0c    let w:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'w:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet w:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'w:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer variable

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_var: 1'

[?25l[?1c:  [?25h[?0c    let b:buffer_var = 1

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer variable

[?25l[?1c:  [?25h[?0c    unlet b:buffer_var

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer list

[?25l[?1c:  [?25h[?0c    let b:buffer_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer list

[?25l[?1c:  [?25h[?0c    unlet b:buffer_list

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer dictionary

[?25l[?1c:  [?25h[?0c    let b:buffer_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer dictionary

[?25l[?1c:  [?25h[?0c    unlet b:buffer_dict

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "buffer"

[?25l[?1c:  [?25h[?0c    let b:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'b:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet b:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'b:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Script-local tests

[?25l[?1c:  [?25h[?0c    source test60.vim

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing Vim internal variable

[?25l[?1c:  [?25h[?0c    echo 'v:version: 1'

[?25l[?1c:  [?25h[?0c    if exists('v:version')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing Vim internal variable

[?25l[?1c:  [?25h[?0c    echo 'v:non_exists_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('v:non_exists_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Function arguments

[?25l[?1c:  [?25h[?0c    function TestFuncArg(func_arg, ...)

[?25l[?1c:    [?25h[?0c        echo 'a:func_arg: 1'

[?25l[?1c:    [?25h[?0c        if exists('a:func_arg')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:non_exists_arg: 0'

[?25l[?1c:    [?25h[?0c        if !exists('a:non_exists_arg')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:1: 1'

[?25l[?1c:    [?25h[?0c        if exists('a:1')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:2: 0'

[?25l[?1c:    [?25h[?0c        if !exists('a:2')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c    endfunction

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    call TestFuncArg("arg1", "arg2")

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    echo ' g:footest#x =' g:footest#x

[?25l[?1c:    [?25h[?0c    echo '   footest#F()' footest#F()

[?25l[?1c:    [?25h[?0c    echo 'UndefFun()' UndefFun()

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    redir END

[?25l[?1c:    [?25h[?0cendfunction
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0ccall TestExists()
[?25l[?1c#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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0cdelfunc TestExists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc RunTest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestFuncArg
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit! test.out
[?25l[?1c"test.out" [Incomplete last line] 206 lines, 1940 characters#myagroup: 1OK
#myagroup+b: 0OK
#myagroup#BufEnter: 1OK#myagroup#BufEnter#*.my: 1OK
#BufEnter: 1OK#BufEnter#*.my: 1OK
#xyzagroup: 0OK#xyzagroup#BufEnter: 0
OK#myagroup#CmdwinEnter: 0
OK
#myagroup#xyzacmd: 0
OK#myagroup#BufEnter#xyzpat: 0
OK[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 206 lines, 1941 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test60 = test61; then \
#	  if diff test.out test60.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test60.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test60.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test64.in
[?25h[?8c[?25h[?0c[?25l[?1c"test64.in" 654 lines, 27565 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for regexp patterns without multi-byte support.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 621 lines, 27090 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:for pat in [' \ze*', ' \zs*']
:  try
:    let l = matchlist('x x', pat)
:    $put ='E888 NOT detected for ' . pat
:  catch
:    $put ='E888 detected for ' . pat
:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="">Ta 5</Title>
<T="">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" tl is a List of Lists with:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp engine
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp pattern
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    text to test the pattern on
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected match (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 1 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 2 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    etc.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  When there is no match use only the first two items.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Previously written tests """"""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b', 'abcdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abbdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c*', 'ccc', 'ccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c*', 'abdef', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\+', 'abdef']) "no match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"operator \|
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c\?', 'ccb', 'c'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\?', 'abd', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\?', 'abccd', 'bc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1}', 'ab', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'caad', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aba'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'abaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vb{1}', 'abca', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vba{2}', 'abaa', 'baa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vba{3}', 'aabaac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'dabc', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'acb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){0,2}', 'acb', "", ""])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){0,2}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1,2}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1,2}', 'ababc', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2,4}', 'ababcab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2,4}', 'abcababa', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'cdababe', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abacabab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'daaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'daaac', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'aaa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})+', 'adaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})+', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'aa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){2}', 'aaaa', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+){2}', 'dadaac', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){2}', 'daaac', 'aaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){3}', 'daac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){2}', 'dac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)+', 'daac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)+', 'aaa', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+){1,2}', 'aaa', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{3})+', 'daaaac', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b|c)+', 'aacb', 'aacb', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b|c){2}', 'abcb', 'ab', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc){2}', 'abcabd', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc){2}', 'abdabcabc','abcabc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a*', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+)+', 'ab', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{0,2})+', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((a*)+)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)*)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1,3}', 'aab', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2,3}', 'abaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}|b{2}', 'abab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}c', 'aabbccccccccccccc', 'abbc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va(bc){2}d', 'aabcbfbc' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'a', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'aa', 'aa' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'aaa', 'aaa' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'bbbabcc', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*b*|a*c*', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1}b{1}|a{1}b{1}', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"submatches
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)', 'ab', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)(b)', 'ab', 'ab', 'a', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)|(b)', 'ab', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', 'aaaa', 'aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x', 'abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" Simple tests """""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Search single groups
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'baced'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', '                    ab           ', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Search multi-modifiers
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'xcd', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'xxxxxxxxxxxxxxxxsofijiojgf', 'xxxxxxxxxxxxxxxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'abcdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" no match here
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abcdoin'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abcdeoijdfxxiuhfij', 'xx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'xxxxx', 'xxxxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abc x siufhiush xxxxxxxxx', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'x sdfoij', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'abc sfoij', '']) " empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'xxxxxxxxx c', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'x sdfoij', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'abc sfoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'xxxxxxxxxx c', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,0}', 'abcdfdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a?'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,1}', 'asiubid axxxaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a\{0,1}'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{1,0}', 'asiubid axxxaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aa siofuh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aaaaa asfoij afaa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aaaaaaaa', 'aaaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0}', 'asoiuj', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'iuash fiusahfliusah fiushfilushfi uhsaifuh askfj na

sfvius afg aaaa sfiuhuhiushf', 'aa'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,}', 'oij sdigfusnf', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,}', 'aaaaa aa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,}', 'sdfiougjdsafg'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,}', 'aaaaasfoij ', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{5,}', 'xxaaaaxxx '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{5,}', 'xxaaaaaxxx ', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,5}', 'abcd', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,5}', 'aaaaaaaaaa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" leading star as normal char when \{} follows
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '***'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '****', '****'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '*****', '*****'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{}', 'bbbcddiuhfcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{}', 'aaaaioudfh coisf jda', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,0}', 'abcdfdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" anti-greedy version of 'a?'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,1}', 'asiubid axxxaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aa siofuh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aaaaa asfoij afaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aaaaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0}', 'asoiuj', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2}', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,}', 'oij sdigfusnf', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,}', 'aaaaa aa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,}', 'sdfiougjdsafg'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,}', 'aaaaasfoij ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,5}', 'abcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,5}', 'aaaaaaaaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" anti-greedy version of 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-}', 'bbbcddiuhfcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-}', 'aaaaioudfh coisf jda', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test groups of characters and submatches
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(abc\)*', 'abcabcabc', 'abcabcabc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(ab\)\+', 'abababaaaaa', 'ababab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(abaaaaa\)*cd', 'cd', 'cd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(test1\)\? \(test2\)\?', 'test1 test3', 'test1 ', 'test1', 

''])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(test1\)\= \(test2\) \(test4443\)\=', ' test2 test4443 yupi

iiiiiiiiii', ' test2 test4443', '', 'test2', 'test4443'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\(sub1\) hello \(sub 2\)\)', 'asterix sub1 hello sub 2 obe

lix', 'sub1 hello sub 2', 'sub1 hello sub 2', 'sub1', 'sub 2'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\(\(yyxxzz\)\)\)', 'abcdddsfiusfyyzzxxyyxxzz', 'yyxxzz', '

yyxxzz', 'yyxxzz', 'yyxxzz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+|c+)+', 'abcccaba', 'abcccab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a(c*)+b)+', 'acbababaaa', 'acbabab', 'ab', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b*)+', 'aaaa', 'aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p*', 'aá ^I', 'aá '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test greedy-ness and lazy-ness
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,7}','aaaaaaaaaaaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,7}','aaaaaaaaaaaaaaaaaaaa', 'aaaaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vx(.{-,8})yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz','ayxa

','xayzxayz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vx(.*)yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz', 'ayxayzx

ayzxa',''])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){-2,3}','aaaaaaa','aaaa','aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{-1,3})+', 'aa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\zs\( x\|x$\)', ' x', ' x', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\zs\(x\| x$\)', ' x', ' x', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\ze\(x\| x$\)', ' x', '', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(\s\{-}\)\(x\| x$\)', ' x', ' x', '', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test Character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\d\+e\d\d','test 10e23 fd','10e23'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test collections and character range []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v[a]', 'abcd', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a[bcd]', 'abcd', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a[b-d]', 'acbd', 'ac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-d][e-f][x-x]d', 'cexdxx', 'cexd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v[[:alpha:]]+', 'abcdefghijklmnopqrstuvwxyz6','abcdefghijkl

mnopqrstuvwxyz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:]\+]', '6x8','x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]\+','abcabcabc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]','defghiasijvoinasoiunbvb','d'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]\+','ddddddda','ddddddd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-d]\+','aaaAAAZIHFNCddd','AAAZIHFNC'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*','iiiiiiii',''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*','abcdefgh','abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-f]\+','abcdefgh','gh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-c]\{-3,6}','abcabc','abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^[:alpha:]]\+','abcccadfoij7787ysf287yrnccdu','7787'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[-a]', '-', '-'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-]', '-', '-'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*\c','ABCDEFGH','ABCDEF'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[abc][xyz]\c','-af-AF-BY--','BY'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" filename regexp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[-./[:alnum:]_~]\+', 'log13.file', 'log13.file'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" special chars
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[\]\^\-\\]\+', '\^\\\-\---^', '\^\\\-\---^'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" collation elem
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[.a.]]\+', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" middle of regexp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc[0-9]*ddd', 'siuhabc ii'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc[0-9]*ddd', 'adf abc44482ddd oijs', 'abc44482ddd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[0-9]\+', 'asfi9888u', '9888'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9\n]\+', 'asfi9888u', '9888'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[0-9]\+', "asfi\n9888u", "\n9888"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_f', "  \na ", "\n"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_f\+', "  \na ", "\na"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9A-Za-z-_.]\+', " @0_a.A-{ ", "0_a.A-"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test start/end of line, start/end of file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^a.', "a_\nb ", "a_"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^a.', "b a \na_"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a$', " a\n "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a$', " a b\n_a", "_a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%^a.', "a a\na", "a "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%^a', " a \na "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a\%$', " a\n "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a\%$', " a\n_a", "_a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test recognition of character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Tests for \z features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" match ends at \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'xx \ze test', 'xx '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\zeend', 'oij abcend', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaxx', ' aabb ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaxx', ' aaxx ', 'aaxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aabb\|aa\zebb', ' aabb ', 'aabb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaebb', ' aabb ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" match starts at \zs
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\zsdd', 'ddabcddxyzt', 'dd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa \zsax', ' ax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if 

last'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\>\zs.', 'aword. ', '.'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is   [a t', '  '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Tests for \@= and \& features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=', 'abc', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=cd', 'abcd', 'abcd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=', 'ababc', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" will never match, no matter the input text
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abcd\@=e', 'abcd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" will never match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abcd\@=e', 'any text in here ... '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc)@=..', 'xabcd', 'ab', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(.*John\)\@=.*Bob', 'here is John, and here is B'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(John.*\)\@=.*Bob', 'John is Bobs friend', 'John is Bob', '

John is Bobs friend'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<\S\+\())\)\@=', '$((i=i+1))', 'i=i+1', '))'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.*John\&.*Bob', 'here is John, and here is B'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.*John\&.*Bob', 'John is Bobs friend', 'John is Bob'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(test1)@=.*yep', 'this is a test1, yep it is', 'test1, yep

', 'test1'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\(bar\)\@!', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\(bar\)\@!', 'foo bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if then else'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if else ', 'if else ', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@!bar', 'foobar', 'bar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@!...bar', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' bar foo '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo bar '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo xxx ', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ ]\@!\p\%([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:']

)[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ ]\@!\p\([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:', 

's'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'm\k\+_\@=\%(_\@!\k\)\@<=\k\+e', 'mx__xe', 'mx__xe'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%(\U\@<=S\k*\|S\l\)R', 'SuR', 'SuR'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Combining different tests and features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:]]\{-2,6}', '787abcdiuhsasiuhb4', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '', 'abcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(())', 'any possible text', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v%(ab(xyz)c)', '   abxyzc ', 'abxyzc', 'xyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(test|)empty', 'tesempty', 'empty', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|aa)(a|aa)', 'aaa', 'aa', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" \%u and friends
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%d32', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%o40', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%x20', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%u0020', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%U00000020', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%d0', "yes\x0ano", "\x0a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" \%[abc]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'fobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobar', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'fooxx', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobxx', 'foob'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobaxx', 'fooba'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobarxx', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]x', 'foobxx', 'foobx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]x', 'foobarxx', 'foobarx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'barxx', 'barx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'bxx', 'bx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'xxx', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b\%[[ao]r]', 'bar bor', 'bar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b\%[[]]r]', 'b]r bor', 'b]r'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '@\%[\w\-]*', '<http://john.net/pandoc/>[@pandoc]', '@pandoc'

])[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Alternatives, must use first longest match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'goo\|go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<goo\|\<go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<goo\|go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Back references
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\i\+\) \1', ' abc abc', 'abc abc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\i\+\) \1', 'xgoo goox', 'goo goo', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a\)\(b\)\(c\)\(dd\)\(e\)\(f\)\(g\)\(h\)\(i\)\1\2\3\4\5\6\7

\8\9', 'xabcddefghiabcddefghix', 'abcddefghiabcddefghi', 'a', 'b', 'c', 'dd', 'e

', 'f', 'g', 'h', 'i'])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\d*\)a \1b', ' a b ', 'a b', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.\(.\).\_..\1.', "aaa\naaa\nb", "aaa\naaa", 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.com', 'foo.bat/foo

.com', 'bat'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.bat'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<=$', 'foo.bat/foo.bat', 'foo.bat/foo

.bat', 'bat', 'bat'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}', '2013-06-27${0}', '$

{0}', '0'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(a*\)\1$', 'aaaaaaaa', 'aaaaaaaa', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(a\{-2,}\)\1\+$', 'aaaaaaaaa', 'aaaaaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Look-behind with limit
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@1<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@2<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<<

'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@1<=span.', 'xxspanxxxx<spanxx<<spanyyy'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@2<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<

<'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<!bar.', 'xx foobar1 xbar2 xx', 'bar2'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" look-behind match in front of a zero-width item
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" test header'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" Last Changed: 1970', '19

70'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=\>', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" complicated look-behind match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^[a-z]\+\ze \&\(asdf\)\@<!', 'foo bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" \@>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a*\)\@>a', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(.\{-}b\)\@>.', '  abcbd', '  abc', '  ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TODO: BT engine does not restore submatch after failure
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" "\_" prepended negated collection matches EOL
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Requiring lots of states.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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-"])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Skip adding state twice
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=', "#if FOO", 

"#if", ' FOO'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""" Test \%V atom
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%>70vGesamt', 'Jean-Michel Charlier & Victor Hubinon\Gesamt

ausgabe [Salleck]    Buck Danny {Jean-Michel Charlier & Victor Hubinon}\Gesamtau

sgabe', 'Gesamt'])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let text = t[2]

[?25l[?1c:  [?25h[?0c:  let matchidx = 3

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    try

[?25l[?1c:      [?25h[?0c:      let l = matchlist(text, pat)

[?25l[?1c:      [?25h[?0c:    catch

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l[?1c:      [?25h[?0c:    endtry

[?25l[?1c:    [?25h[?0c:" check the match itself

[?25l[?1c:    [?25h[?0c:    if len(l) == 0 && len(t) > matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    elseif len(l) > 0 && len(t) == matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l[?1c:      [?25h[?0c:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if len(l) > 0

[?25l[?1c:      [?25h[?0c:"   check all the nine submatches

[?25l[?1c:      [?25h[?0c:      for i in range(1, 9)

[?25l[?1c:[?25h[?0c:        if len(t) <= matchidx + i

[?25l[?1c:[?25h[?0c:          let e = ''

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          let e = t[matchidx + i]

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:        if l[i] != e

[?25l[?1c:[?25h[?0c:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:      endfor

[?25l[?1c:      [?25h[?0c:      unlet i

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 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.*$\)\@=
OK 0 - \%>70vGesamt
OK 1 - \%>70vGesamt
OK 2 - \%>70vGesamt
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl e l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""""" multi-line tests """"""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" back references
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.\(.\).\_..\1.', ['aaa', 'aaa', 'b'], ['XX', 'b']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" line breaks
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\S.*\nx', ['abc', 'def', 'ghi', 'xjk', 'lmn'], ['abc', 'def'

, 'XXjk', 'lmn']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check that \_[0-9] matching EOL does not break a following \>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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', '']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check a pattern with a line break and ^ and $
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(^.\+\n\)\1', [' dog', ' dog', 'asdf'], ['XXasdf']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the multi-line tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='multi-line tests'
[?25l[?1c
multi-line tests[?25h[?0c[?25l[?1c
:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let before = t[2]

[?25l[?1c:  [?25h[?0c:  let after = t[3]

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re ==1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    new

[?25l[?1c:    [?25h[?0c:    call setline(1, before)

[?25l[?1c:    [?25h[?0c:    exe '%s/' . pat . '/XX/'

[?25l[?1c:    [?25h[?0c:    let result = getline(1, '$')

[?25l[?1c:    [?25h[?0c:    q!

[?25l[?1c:    [?25h[?0c:    if result != after

[?25l[?1c:      [?25h[?0c:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . string(before) . 

'\", expected: \"' . string(after) . '\", got: \"' . string(result) . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 2 - \%>70vGesamt
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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check that using a pattern on two lines doesn't get messed up by using
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" matchstr() with \ze in between.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset re=0
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Substitute here
[?25l[?1csearch hit BOTTOM, continuing at TOP:    let l = matchlist('x x', pat)
:    $put ='E888 NOT detected for ' . pat
:  catch
:    $put ='E888 detected for ' . pat
:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="">Ta 5</Title>
<T="">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c.+1,.+2s/""/\='"'.matchstr(getline("."), '\d\+\ze<').'"'
[?25l[?1c5">Ta 5</Title>
<T="7">Ac 7</Title>
[?25h[?0c[?25l[?1c/[?25h[?0c^Substitute here
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c.+1,.+2yank
[?25l[?1c[?25h[?0c[?25l[?1cOK 2 - \%>70vGesamt
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
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
<T="5">Ta 5</Title>
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check a pattern with a look beind crossing a line boundary
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Behind:
[?25l[?1csearch hit BOTTOM, continuing at TOP:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexe the thexethe
andaxand andaxand
oooxofor foroxooo
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/[?25h[?0c\(<\_[xy]\+\)\@3<=start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.yank
[?25l[?1c[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
xxstart3
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check matching Visual area
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Visual:
[?25l[?1csearch hit BOTTOM, continuing at TOP<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexe the thexethe
andaxand andaxand
oooxofor foroxooo
oooxofor foroxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf

Results of test64:
search hit BOTTOM, continuing at TOP[?25h[?0c
the[?25l[?1c[?25h[?0c[?25l[?1cxe the the[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Ve/E/g
[?25l[?1c3 substitutions on 1 linexE thE thE
[?25h[?0c
[?25l[?1candaxand andaxand 
[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Va/A/g
[?25l[?1c6 substitutions on 1 lineAndAxAnd AndAxAnd[?25h[?0c
ooo[?25l[?1c[?25h[?0c[?25l[?1cxofor foro[?25h[?0c[?25l[?1cx
oooxofor foro[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Vo/O/g
[?25l[?1c8 substitutions on 2 linesxOfOr fOrOx
oooxOfOr fOrO
[?25h[?0c[?25l[?1c:[?25h[?0c/^Visual/+1,/^Visual/+4yank
[?25l[?1csearch hit BOTTOM, continuing at TOP
4 lines yanked[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
4 more lines
thexE thE thExethe4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check matching marks
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Marks:
[?25l[?1csearch hit BOTTOM, continuing at TOPasdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf

Results of test64:
OK 0 - ab
OK 1 - ab
OK 2 - ab
OK 0 - b
OK 1 - b
OK 2 - b
search hit BOTTOM, continuing at TOP[?25h[?0c
asdf[?25l[?1c:[?25h[?0c.-4,.+6s/.\%>'s.*\%<'e../here/
[?25l[?1chereasdf[?25h[?0c
asdf
dfsa
dfsadf[?25l[?1c:[?25h[?0c.-4,.+6s/.\%>'s\_.*\%<'e../again/
[?25l[?1c
asdfagainasdfOK 0 - bc*[?25h[?0c[?25l[?1c:[?25h[?0c/^Marks:/+1,/^Marks:/+3yank
[?25l[?1csearch hit BOTTOM, continuing at TOP
3 lines yanked[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
3 more linesasdfhereasdf
asdfagainasdf3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check patterns matching cursor position.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc! Postest()
[?25l[?1c
:  [?25h[?0c new

[?25l[?1c:  [?25h[?0c call setline(1, ['ffooooo', 'boboooo', 'zoooooo', 'koooooo', 'moooooo', "\t

\t\tfoo", 'abababababababfoo', 'bababababababafoo', '********_', '        xxxxxx

xxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx

xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxx

xxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxx

x xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx xxxxxxxxx xxxx

xxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xx

xxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx xxxxxxxxxxxx x

xxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxx

xxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx'])

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 1, 0, 0])

[?25l[?1c:  [?25h[?0c s/\%>3c.//g

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 2, 4, 0])

[?25l[?1c:  [?25h[?0c s/\%#.*$//g

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 3, 0, 0])

[?25l[?1c:  [?25h[?0c s/\%<3c./_/g

[?25l[?1c:  [?25h[?0c %s/\%4l\%>5c./_/g

[?25l[?1c:  [?25h[?0c %s/\%6l\%>25v./_/g

[?25l[?1c:  [?25h[?0c %s/\%>6l\%3c./!/g

[?25l[?1c:  [?25h[?0c %s/\%>7l\%12c./?/g

[?25l[?1c:  [?25h[?0c %s/\%>7l\%<9l\%>5v\%<8v./#/g

[?25l[?1c:  [?25h[?0c $s/\%(|\u.*\)\@<=[^|\t]\+$//ge

[?25l[?1c:  [?25h[?0c 1,$yank

[?25l[?1c:  [?25h[?0c quit!

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

asdfhereasdf
asdfagainasdf[?25h[?0c[?25l[?1c20 - a\n^b$\n^cOK 1 - a\n^b$\n^c2
OK 0 - \(^.\+\n\)\1
OK 1 - \(^.\+\n\)\1
OK 2<T="5">Ta 5</Title>
<T="7">Ac 7</Title>xxstart3thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooooooxOfOr fOrOxoooasdfhereasdfasdfagainasdf~                                                                               [?25h[?0c[?25l[?1c
-0-[?25h[?0c[?25l[?1c
:[?25h[?0cset re=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1coooxOfOr fOrOxooo

asdfhereasdf
asdfagainasdf-0-ffobob__ooooo
koooo__moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx[?25h[?0c[?25l[?1c
-1-[?25h[?0c[?25l[?1c
:[?25h[?0cset re=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c-1-
ffo
bob
__ooooo
koooo__
moooooo
   f__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxx
xxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx x xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxxxxxxxx
xxxxxx  xxx xxxx xx xxxxxxxx xxx xxxxxxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-2-[?25h[?0c[?25l[?1c:[?25h[?0cset re=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c-2-
ffo
bob~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" start and end of buffer
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%^
[?25l[?1csearch 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTest[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cOK 2 - \v(a*)+
OK 0 - \v((ab)+)+
OK 1 - \v((ab)+)+
OK 2 - \v((ab)+)+
OK 0 - \v(((ab)+)+)+
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}[?25h[?0c[?25l[?1c/[?25h[?0c\%^..
[?25l[?1csearch 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTest[?25h[?0c[?25l[?1ct END[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cOK 0 - \v((ab)+)+
OK 1 - \v((ab)+)+
OK 2 - \v((ab)+)+
OK 0 - \v(((ab)+)+)+
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}[?25h[?0c[?25l[?1c/[?25h[?0c\%$
[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:" tl is a List of Lists with:
:"    regexp engine
:"    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'])[?25h[?0c[?25l[?1c/[?25h[?0c..\%$
[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1cEN[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cE[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check for detecting error
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset regexpengine=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor pat in [' \ze*', ' \zs*gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/crypt.o crypt.c
']
[?25l[?1c
:  [?25h[?0c:  try

[?25l[?1c:    [?25h[?0c:    let l = matchlist('x x', pat)

[?25l[?1c:    [?25h[?0c:    $put ='E888 NOT detected for ' . pat

[?25l[?1c:    [?25h[?0c:  catch

[?25l[?1c:    [?25h[?0c:    $put ='E888 detected for ' . pat

[?25l[?1c:    [?25h[?0c:  endtry

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?ba
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxxxxxxx xxx xxxxxxx xxxxxxxxx  xxx
xxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxx xxxx xxx xxxx xxx xxx 
xx x xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx xxxxxxx xxxxxxx x x xx xxxxxx xxxxxxx  xxxxxxxxxx xxxxx xxx xxx xxxxxxxx   xxxx xxx xxxxxx xxxxx xxxxx xx  xxxxxxxxx xxxx xxxxxxxxx xxxxx xxxxx xx xxxxxxxxx xxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxTestEND
EN888 detected for  \ze*
E888 detected for  \zs*[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" Write the results """""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/\%#=1^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1107 lines, 22167 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test64 = test61; then \
#	  if diff test.out test64.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test64.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test64.in; \
#	  fi \
#	fi"
# 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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memline.o memline.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test65.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for floating point and logical operators.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 89 lines, 2067 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("float")
[?25l[?1c
:  [?25h[?0c:  e! test.ok

[?25l[?1c:  [?25h[?0c:  wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:$put =float2nr(123.456)
:$put =float2nr(-123.456)
:$put ='AND'[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%f', 123.456)
[?25l[?1c
123.456000[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%e', 123.456)
[?25l[?1c
1.234560e+02[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 123.456)
[?25l[?1c
123.456[?25h[?0c[?25l[?1c
:[?25h[?0c" check we don't crash on division by zero
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cecho 1.0 / 0.0
[?25l[?1cinf[?25h[?0c[?25l[?1c:[?25h[?0c$put ='+='
[?25l[?1c
+=[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v += 6.543
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%g', v)
[?25l[?1c
7.777[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v += 5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%g', v)
[?25l[?1c
6.234[?25h[?0c[?25l[?1c
:[?25h[?0clet a = 5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a += 3.333
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(a)
[?25l[?1c
8.333[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='=='
[?25l[?1c
==[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =v == 1.234
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =v == 1.2341
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='add-subtract'
[?25l[?1c
add-subtract[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4 + 1.234)
[?25l[?1c
5.234[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 1.234 - 8)
[?25l[?1c
-6.766[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='mult-div'
[?25l[?1c
mult-div[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4 * 1.234)
[?25l[?1c
4.936[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4.0 / 1234)
[?25l[?1c
0.003241[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='dict'
[?25l[?1c
dict[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string({'x': 1.234, 'y': -2.0e20})
[?25l[?1c
{'x': 1.234, 'y': -2.0e20}[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='list'
[?25l[?1c
list[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string([-123.4, 2.0e-20])
[?25l[?1c
[-123.4, 2.0e-20][?25h[?0c[?25l[?1c
:[?25h[?0c$put ='abs'
[?25l[?1c
abs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs(1456))
[?25l[?1c
1456[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs(-4))
[?25l[?1c
4[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs([1, 2, 3]))
[?25l[?1cE745: Using a List as a Number
-1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', abs(14.56))
[?25l[?1c
14.56[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', abs(-54.32))
[?25l[?1c
54.32[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ceil'
[?25l[?1c
ceil[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(1.456))
[?25l[?1c
2.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(-5.456))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(-4.000))
[?25l[?1c
-4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='floor'
[?25l[?1c
floor[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(1.856))
[?25l[?1c
1.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(-5.456))
[?25l[?1c
-6.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(4.0))
[?25l[?1c
4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='log10'
[?25l[?1c
log10[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', log10(1000))
[?25l[?1c
3.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', log10(0.01000))
[?25l[?1c
-2.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='pow'
[?25l[?1c
pow[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', pow(3, 3.0))
[?25l[?1c
27.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', pow(2, 16))
[?25l[?1c
65536.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='round'
[?25l[?1c
round[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(0.456))
[?25l[?1c
0.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(4.5))
[?25l[?1c
5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(-4.50))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='sqrt'
[?25l[?1c
sqrt[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', sqrt(100))
[?25l[?1c
10.0[?25h[?0c[?25l[?1c
:[?25h[?0cecho sqrt(-4.01)
[?25l[?1cnan[?25h[?0c[?25l[?1c:[?25h[?0c$put ='str2flogcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/crypt_zip.o crypt_zip.c
at'
[?25l[?1c
str2float[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', str2float('1e40'))
[?25l[?1c
1.0e40[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='trunc'
[?25l[?1c
trunc[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(1.456))
[?25l[?1c
1.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(-5.456))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(4.000))
[?25l[?1c
4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='float2nr'
[?25l[?1c
float2nr[?25h[?0c[?25l[?1c
:[?25h[?0c$put =float2nr(123.456)
[?25l[?1c
123[?25h[?0c[?25l[?1c
:[?25h[?0c$put =float2nr(-123.456)
[?25l[?1c
-123[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='AND'
[?25l[?1c
AND[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 127)
[?25l[?1c
127[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 16)
[?25l[?1c
16[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 128)
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='OR'
[?25l[?1c
OR[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(16, 7)
[?25l[?1c
23[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(8, 7)
[?25l[?1c
15[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(0, 123)
[?25l[?1c
123[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='XOR'
[?25l[?1c
XOR[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 127)
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 16)
[?25l[?1c
111[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 128)
[?25l[?1c
255[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='invert'
[?25l[?1c
invert[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(127), 65535)
[?25l[?1c
65408[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(16), 65535)
[?25l[?1c
65519[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(128), 65535)
[?25l[?1c
65407[?25h[?0c[?25l[?1c
:[?25h[?0c$put =invert(1.0)
[?25l[?1cE805: Using a Float as a Number
0[?25h[?0c[?25l[?1c
:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 73 lines, 430 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test65 = test61; then \
#	  if diff test.out test65.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test65.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test65.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test66.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/dict.o dict.c
[New File] 16 lines, 234 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^one
[?25l[?1c[?25h[?0con[?25l[?1c[?25h[?0c[?25l[?1ce
one two three
one two three
one two three
one two three[?25h[?0c[?25l[?1c
4 fewer linesabcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cmore lines; before #1  0 seconds agoone two three
one two three
one two threeone two threeone two three[?25h[?0c[?25l[?1ce
one
one
one
on[?25h[?0c[?25l[?1c1
on1
on1
on1
on1[?25h[?0c[?25l[?1c:[?25h[?0c'<,'>w! test.out
[?25l[?1c"test.out" [New File] 5 lines, 70 characters written[?25h[?0c[?25l[?1c/[?25h[?0c^abcdefgh
[?25l[?1cabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
[?25h[?0c[?25l[?1ca
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?25h[?0c
[?25l[?1cabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc            defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci  [?25h[?0c[?25l[?1c
5 lines <ed 1 timeidefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0c$-5,$w >> test.out
[?25l[?1c"test.out"6 lines, 151 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$s/\s\+//g
[?25l[?1c7 substitutions on 4 linesabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
a
a
a[?25h[?0c[?25l[?1c
a
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghij
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?25h[?0c
[?25l[?1cabcdefghij[?25h[?0c
    ab[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc                       defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc                 defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci  [?25h[?0c[?25l[?1c
5 lines <ed 3 timesidefghijklmnopqrstuvwxyz    defghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$w >> test.out
[?25l[?1c"test.out"5 lines, 147 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test66 = test61; then \
#	  if diff test.out test66.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test66.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test66.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test67.in
[?25h[?8c[?25h[?0c[?25l[?1c"test67.in" 33 lines, 1110 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#<buffer>: " . exists("#BufEnter#<buffer>"))
:au BufEnter <buffer> let g:entered=1[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest that groups and patterns are tested correctly when calling exists() for[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 999 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
:edit testfile2.test
:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
:e! test.out
:call append(0, results)
:$d
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet results=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup auexists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "##BufEnter: " . exists("##BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter * let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup auexists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter * let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter *.test let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit testfile.test
[?25l[?1c"testfile.test" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter <buffer> let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit testfile2.test
[?25l[?1c"testfile2.test" [New File][?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File][?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, results)
[?25l[?1c##BufEnter: 1
#BufEnter: 0
#BufEnter: 1
#auexists#BufEnter: 0
#auexists#BufEnter: 1
#BufEnter#*.test: 0
#BufEnter#*.test: 1
#BufEnter#<buffer>: 0
#BufEnter#<buffer>: 1
#BufEnter#<buffer>: 0[?25h[?0c[?25l[?1c:[?25h[?0c$d
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 10 lines, 190 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test67 = test61; then \
#	  if diff test.out test67.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test67.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test67.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test68.in
[?25h[?8c[?25h[?0c[?25l[?1c"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

{[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for text formatting.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 48 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noai tw=2 fo=t
[?25l[?1c[?25h[?0c[?25l[?1ca
b[?25h[?0c
[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 38 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c
a  b[?25h[?0c[?25l[?1c
:[?25h[?0cset ai tw=2 fo=tw
[?25l[?1c[?25h[?0c[?25l[?1c
b[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
a[?25h[?0ca [?25l[?1c
b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=3 fo=t
gqgqo
a ^V^A^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
a ^A[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=3 fo=t
[?25l[?1c[?25h[?0c[?25l[?1c
^A[?25h[?0c[?25l[?1ca
^A
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=2 fo=tcq1 comments=:#
gqgqjgqgqo
a b
#a b^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
a b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=2 fo=tcq1 comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
#a b[?25h[?0c[?25l[?1ca b
#a b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 46 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=tcn comments=:#
A b^[jA b^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  1 a[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=tcn comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
b[?25h[?0c[?25l[?1c
# 1 a[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+3
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 35 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=t2a si
i  ^[A_^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+3
[?25l[?1c{

  x a
  b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=t2a si
[?25l[?1c[?25h[?0c[?25l[?1c    b[?25h[?0c[?25l[?1c b_[?25h[?0c[?25l[?1c
c[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=qn comments=:#
gwap
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
# 1 a b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=qn comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=q2 comments=:#
gwap
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
# x[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=q2 comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c# x a
[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+2
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 26 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw& fo=a
I^^^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+2
[?25l[?1c{
   1aa
   2bb[?25h[?0c[?25l[?1c
:[?25h[?0cset tw& fo=a
[?25l[?1c[?25h[?0c[?25l[?1c1aa ^^2bb }STARTTEST[?25h[?0c
[?25l[?1c/^STARTTEST
[?25h[?0c[?25l[?1c
/mno pqr/[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 69 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
A vwx yz^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0cmno pqr/
[?25l[?1c/* abc def ghi jkl
 *    mno pqr stu[?25h[?0c[?25l[?1c
:[?25h[?0csetl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1c
*    vwx yz[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^#/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/diff.o diff.c
3 lines, 47 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:setl tw=12 fo=tqnc comments=:#
A foobar^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^#/
[?25l[?1c
# 1 xxxxx[?25h[?0c[?25l[?1c
:[?25h[?0csetl tw=12 fo=tqnc comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
#   foobar[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:1;/^Results/,$wq! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c63 fewer lines# 1 a#   b}{
# x a#   b}{ 1aa ^^2bb }/* abc def ghi jkl
 *    mno pqr stu
 *    vwx yz
 */# 1 xxxxx
#   foobar[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 77 lines, 281 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test68 = test61; then \
#	  if diff test.out test68.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test68.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test68.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test69.in
[?25h[?8c[?25h[?0c[?25l[?1c"test69.in" 192 lines, 2185 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for multi-byte text formatting.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 2 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest 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[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=t
[?25l[?1c[?25h[?0c
[?25l[?1c
XYZ[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1c
Z
abc [?25h[?0c[?25l[?1c
X[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cZ[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=1 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
X[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=1 fo=tm
[?25l[?1c[?25h[?0c[?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c
X a
[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c
XY
[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
X Y
[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 140 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y
aX
abX
abcX
abX c
abXY^[
ENDTEST

{
X
Xa
X a
XY
X Y
aX
abX
abcX
abX c[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=tm
[?25l[?1c[?25h[?0c
[?25l[?1ca[?25h[?0c
[?25l[?1ca[?25h[?0c
[?25l[?1cY
[?25h[?0c
[?25l[?1cY 
[?25h[?0c[?25l[?1c
aX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abcX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abX c
[?25h[?0c[?25l[?1cX
c[?25h[?0c[?25l[?1c
abXY
[?25h[?0c[?25l[?1cX
Y
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1cY
a[?25h[?0c[?25l[?1cX
ab[?25h[?0c[?25l[?1cX
abc[?25h[?0c[?25l[?1cX
ab[?25h[?0c[?25l[?1cX
c
ab[?25h[?0c[?25l[?1c
X[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 47 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set ai tw=2 fo=tm
gqgqjgqgqo
X
Xa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  X[?25h[?0c[?25l[?1c
:[?25h[?0cset ai tw=2 fo=tm
[?25l[?1c[?25h[?0c  [?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
  [?25h[?0c[?25l[?1c
X
  a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 53 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set noai tw=2 fo=tm
gqgqjgqgqo
  X
  Xa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  X[?25h[?0c[?25l[?1c
:[?25h[?0cset noai tw=2 fo=tm
[?25l[?1c[?25h[?0c  [?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
  [?25h[?0c[?25l[?1c
X
a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 169 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
XaY
XY
XYZ
X Y
X YZ
XX
XXa
XXY^[
ENDTEST

{
X
Xa
XaY
XY
XYZ
X Y
X YZ
XX
XXa[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=cqm comments=n:X
[?25l[?1c[?25h[?0c

[?25l[?1cXY[?25h[?0c

[?25l[?1cXZ
[?25h[?0c

[?25l[?1c
X Z
[?25h[?0c[?25l[?1c
XX
[?25h[?0c[?25l[?1c
XXa
[?25h[?0c[?25l[?1c
XXY
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
Xa
[?25h[?0c[?25l[?1cXa[?25h[?0c[?25l[?1cXY
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cXZ
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cX Z
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
Xa
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 30 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=2 fo=tm
RXa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=2 fo=tm
[?25l[?1c[?25h[?0c[?25l[?1c
X
a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set mps+=^Vu2018:^Vu2019
d%
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
‘two three ’four[?25h[?0c[?25l[?1c
:[?25h[?0cset mps+=^‘:^’
[?25l[?1c[?25h[?0c[?25l[?1c four[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
/^ra test
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 16 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTjVjra
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^ra test
[?25l[?1c
ra test[?25h[?0c[?25l[?1c
abba
[?25h[?0c[?25l[?1cbba 
[?25h[?0c[?25l[?1c
a
aab 
[?25h[?0c[?25l[?1caaaaaaa [?25h[?0c
[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set whichwrap+=h
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 43 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/^x
dh
:set whichwrap-=h
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset whichwrap+=h
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^x
[?25l[?1cáx[?25h[?0c[?25l[?1cx[?25h[?0c
[?25l[?1c
:[?25h[?0cset whichwrap-=h
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:let a = '.é.' " one char of two bytes
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 548 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:let b = '.é.' " 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 = '.é.'
:put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet a = '.é.' " one char of two bytes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b = '.eé.' " normal e with composing char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^byteidx
[?25l[?1c
byteidx[?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), bytei

dx(a, 4)])
[?25l[?1c:set whichwrap-=h
ENDTESTáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), bytei

dx(b, 4)])
[?25l[?1cENDTESTáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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[?25h[?0c[?25l[?1c
/[?25h[?0c^byteidxcomp
[?25l[?1c
byteidxcomp[?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxc

omp(a, 3), byteidxcomp(a, 4)])
[?25l[?1cáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
:[?25h[?0clet b = '.eé.'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxc

omp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
[?25l[?1cSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^substitute
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 75 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:let y = substitute('123', '\zs', 'a', 'g')    | put =y
ENDTEST[?25h[?0c[?25l[?1csubstitute[?25h[?0c[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^substitute
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('123', '\zs', 'a', 'g')    | put =y
[?25l[?1ca1a2a3a[?25h[?0c[?25l[?1c

/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out[?25h[?0c[?25l[?1c

:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c

/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c104 fewer lines{ four}ra test
aaaaaaaáxbyteidx[0, 1, 3, 4, -1]
[0, 1, 4, 5, -1]byteidxcomp
[0, 1, 3, 4, -1]
[0, 1, 2, 4, 5, -1]substitute
a1a2a3a[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 166 lines, 730 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test69 = test61; then \
#	  if diff test.out test69.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test69.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test69.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test70.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cSmoke test for MzScheme interface and mzeval() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1398 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mzscheme.vim
[?25l[?1c"test.ok" 6 lines, 94 characters

"test.out" [New File] 6 lines, 94 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test70 = test61; then \
#	  if diff test.out test70.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test70.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test70.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test73.in
[?25h[?8c[?25h[?0c[?25l[?1c"test73.in" 169 lines, 3647 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
:"
:" On windows a stale "Xfind" directory may exist, remove it so that
:" we start from a clean state.
:call delete("Xfind", "rf")
:new
:let cwd=getcwd()
:let test_out = cwd . '/test.out'
:call mkdir('Xfind')
:cd Xfind
:set path=
:find
:exec "w! " . test_out
:close[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for find completion.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 164 lines, 3600 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 delete("Xfind", "rf")
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Do all test in a separate window to avoid E211 when we recursively
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" delete the Xfind directory during cleanup
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This will cause a few errors, do it silently.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" On windows a stale "Xfind" directory may exist, remove it so that
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" we start from a clean state.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xfind", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTESTtest73.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet test_out = cwd . '/test.out'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xfind')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xfind
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/<<PKGBUILDDIR>>/src/vim-basic/testdir/test73.in[?25h[?0c[?25l[?1c:[?25h[?0cset path=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE345: Can't find file "" in path[?25h[?0c[?25l[?1c:[?25h[?0cexec "w! " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<d/vim-XZm5mB/vim-8.0.0197/src/vim-basic/testdir/test.out" [New] 0L, 0C written/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-basic/testdir/test73.in                  [?25h[?0c[?25l[?1c:[?25h[?0cset path=.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-basic/testdir/test73.in                  [?25h[?0c[?25l[?1c:[?25h[?0cset path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-basic/testdir/test73.in                  [?25h[?0c[?25l[?1c:[?25h[?0cset path=./**
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-basic/testdir/test73.in                  [?25h[?0c[?25l[?1c:[?25h[?0c" We shouldn't find any file at this point, test.out must be empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('in')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd in
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/in[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('path')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdirtest73.in                                                     [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/file.txt
[?25l[?1c"Xfind/file.txt" [New File]Xfind/file.txt[?25h[?0c[?25l[?1c-- INSERT --Holy Grail[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/file.txt" [New] 1L, 11C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/file.txt
[?25l[?1c"Xfind/in/file.txt" [New File]in/file.txt[?25h[?0c[?25l[?1c-- INSERT --Jimmy Hoffa[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/file.txt" [New] 1L, 12C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/stuff.txt
[?25l[?1c"Xfind/in/stuff.txt" [New File]stuff.txt[?25h[?0c[?25l[?1c-- INSERT --Another Holy Grail[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/stuff.txt" [New] 1L, 19C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/path/file.txt
[?25l[?1c"Xfind/in/path/file.txt" [New File]path/file.txt[?25h[?0c[?25l[?1c-- INSERT --E.T.[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/path/file.txt" [New] 1L, 5C written   [?25h[?0c[?25l[?1c:[?25h[?0cset path=Xfind/**
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Rerun the previous three find completions, using fullpath in 'path'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "set path=" . cwd . "/Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Same steps again, using relative and fullpath items that point to the same
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" recursive location.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This is to test that there are no duplicates in the completion list.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "set path+=Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/misc2.o misc2.c

<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffafile.txt     [?25h[?0c[?25l[?1c:[?25h[?0c" Test find completion for directory of current buffer, which at this point
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" is Xfind/in/file.txt.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset path=.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind st...[?25l[?1cuff.txt[?25h[?0c
[?25l[?1c"Xfind/in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 19C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test find completion for empty path item ",," which is the current directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xfind
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfindin/stuff.txt      /<<PKGBUILDDIR>>/src/vim-basic/testdir/test73.in[?25h[?0c[?25l[?1c:[?25h[?0cset path=,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind f...[?25l[?1cile.txt[?25h[?0c...[?25l[?1c[?25h[?0c
[?25l[?1c"file.txt" 1L, 11CHoly Grailfile.txt    [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test shortening of
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    foo/x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    foo/y/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" When current directory is above foo/ they should be shortened to (in order
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" of appearance):
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    y/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('foo')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd foo
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/file.txt[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('x')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('y')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd x
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/x[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('bar')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo[?25h[?0c[?25l[?1c:[?25h[?0ccd y
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/y[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('bar')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfindfile.txt                                                           [?25h[?0c[?25l[?1c:[?25h[?0c" We should now be in the Xfind directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce foo/x/bar/voyager.txt
[?25l[?1c"foo/x/bar/voyager.txt" [New File]oo/x/bar/voyager.txt[?25h[?0c[?25l[?1c-- INSERT --Voyager 1[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"foo/x/bar/voyager.txt" [New] 1L, 10C written   [?25h[?0c[?25l[?1c:[?25h[?0ce foo/y/bar/voyager.txt
[?25l[?1c"foo/y/bar/voyager.txt" [New File]y[?25h[?0c[?25l[?1c-- INSERT --Voyager 2[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"foo/y/bar/voyager.txt" [New] 1L, 10C written   [?25h[?0c[?25l[?1c:[?25h[?0cexec "set path=" . cwd . "/Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1cx/bar/voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"foo/x/bar/voyager.txt" 1L, 10C1x[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1cx/bar/voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cy[?25h[?0c
[?25l[?1c"foo/y/bar/voyager.txt" 1L, 10C2y[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" When current directory is .../foo/y/bar they should be shortened to (in
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" order of appearance):
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    ./voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd foo
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/fooy/bar/voyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0ccd y
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/ybar/voyager.txt  [?25h[?0c[?25l[?1c:[?25h[?0ccd bar
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/y/barvoyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"voyager.txt" 1L, 10C[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cx/bar/voyager.txt[?25h[?0c
[?25l[?1c<ld/vim-XZm5mB/vim-8.0.0197/src/vim-basic/testdir/Xfind/foo/x/bar/voyager.txt"
<XZm5mB/vim-8.0.0197/src/vim-basic/testdir/Xfind/foo/x/bar/voyager.txt" 1L, 10C1<uild/vim-XZm5mB/vim-8.0.0197/src/vim-basic/testdir/Xfind/foo/x/bar/voyager.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Check the opposite too:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/y[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foox/bar/voyager.txt                                                              [?25h[?0c[?25l[?1c:[?25h[?0ccd x
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/xbar/voyager.txt  [?25h[?0c[?25l[?1c:[?25h[?0ccd bar
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/foo/x/barvoyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"voyager.txt" 1L, 10C[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cy/bar/voyager.txt[?25h[?0c
[?25l[?1c<ld/vim-XZm5mB/vim-8.0.0197/src/vim-basic/testdir/Xfind/foo/y/bar/voyager.txt"
<XZm5mB/vim-8.0.0197/src/vim-basic/testdir/Xfind/foo/y/bar/voyager.txt" 1L, 10C2<uild/vim-XZm5mB/vim-8.0.0197/src/vim-basic/testdir/Xfind/foo/y/bar/voyager.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Check for correct handling of shorten_fname()'s behavior on windows
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd . "/Xfind/in"
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfind/in[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"file.txt" 1L, 12CJimmy Hoffafile.txt                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for relative to current buffer 'path' item
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd . "/Xfind/"
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xfindin/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cset path=./path
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open the file where Jimmy Hoffa is found
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce in/file.txt
[?25l[?1c"in/file.txt" 1L, 12C[?25h[?0c[?25l[?1c:[?25h[?0c" Find the file containing 'E.T.' in the Xfind/in/path directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1ctxt[?25h[?0c
[?25l[?1c"in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test that completion works when path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open Jimmy Hoffa file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce in/file.txt
[?25l[?1c"in/file.txt" 1L, 12CJimmy Hoffafile.txt     [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Search for the file containing Holy Grail in same directory as in/path.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind stu...[?25l[?1cff.txt[?25h[?0c
[?25l[?1c"in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-basic/testdir/test.out" 1L, 19C appended[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xfind", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test73 = test61; then \
#	  if diff test.out test73.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test73.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test73.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test75.in
[?25h[?8c[?25h[?0c[?25l[?1c"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<C-V> is<F4>foo
:vnoremap <script> <buffer> <expr> <silent> bar isbar
:call append('$', maparg('foo<C-V>'))
:call append('$', string(maparg('foo<C-V>', '', 0, 1)))
:call append('$', string(maparg('bar', '', 0, 1)))
:map <buffer> <nowait> foo bar
:call append('$', string(maparg('foo', '', 0, 1)))
:"
:map abc x<char-114>x
:call append('$', maparg('abc'))
:map abc y<S-char-114>y
:call append('$', maparg('abc'))
:"
Go^[:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for maparg().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 34 lines, 919 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" Outside of the range, minimum
:inoremap <Char-0x1040> a
:execute "normal a\u1040\<Esc>"
:" Inside of the range, minimum
:inoremap <Char-0x103f> b
:execute "normal a\u103f\<Esc>"
:" Inside of the range, maximum
:inoremap <Char-0xf03f> c
:execute "normal a\uf03f\<Esc>"
:" Outside of the range, maximum
:inoremap <Char-0xf040> d
:execute "normal a\uf040\<Esc>"
:"
:/^eof/+1,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf8
[?25l[?1c:map abc x<char-114>x
:call append('$', maparg('abc'))
:map abc y<S-char-114>y
:call append('$', maparg('abc'))
:"
Go^[:"
:" Outside of the range, minimum
:inoremap <Char-0x1040> a
:execute "normal a\u1040\<Esc>"
:" Inside of the range, minimum
:inoremap <Char-0x103f> b
:execute "normal a\u103f\<Esc>"
:" Inside of the range, maximum
:inoremap <Char-0xf03f> c
:execute "normal a\uf03f\<Esc>"
:" Outside of the range, maximum
:inoremap <Char-0xf040> d
:execute "normal a\uf040\<Esc>"
:"
:/^eof/+1,$w! test.out
:qa!
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0c" Test maparg() with a string result
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap foo<C-V> is<F4>foo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap <script> <buffer> <expr> <silent> bar isbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('foo<C-V>'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('foo<C-V>', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('bar', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap <buffer> <nowait> foo bar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('foo', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap abc x<char-114>x
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('abc'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap abc y<S-char-114>y
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('abc'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1ceof
is<F4>foo
{'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'nowait': 0, 'expr':0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
{'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'nowait': 0, 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
{'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ', 'nowait': 1, 'expr': 0, 'sid': 0, 'rhs': 'bar', 'buffer': 1}
xrx
yRy[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Outside of the range, minimum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0x1040> a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\u1040\<Esc>"
[?25l[?1ca[?25h[?0c[?25l[?1c:[?25h[?0c" Inside of the range, minimum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0x103f> b
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\u103f\<Esc>"
[?25l[?1cb[?25h[?0c[?25l[?1c:[?25h[?0c" Inside of the range, maximum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0xf03f> c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\uf03f\<Esc>"
[?25l[?1cc[?25h[?0c[?25l[?1c:[?25h[?0c" Outside of the range, maximum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0xf040> d
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\uf040\<Esc>"
[?25l[?1cd[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^eof/+1,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 7 lines, 384 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test75 = test61; then \
#	  if diff test.out test75.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test75.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test75.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test77.failed test.ok test.out X* viminfo
cp test77.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test77.in
[?25h[?8c[?25h[?0c[?25l[?1c"test77.in" 30 lines, 719 charactersInserts 2 million lines with consecutive integers starting from 1
(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
and writes its cksum to test.out.

We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
up the lines the checksum would differ.

cksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST
:so small.vim
:if !executable("cksum")
: e! test.ok
: w! test.out
: qa!
:endif
:set fileformat=unix undolevels=-1
ggdG
:let i = 1
:while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhileggdd
:w! Xtest[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cInserts 2 million lines with consecutive integers starting from 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 288 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:r !cksum Xtest
:s/\s/ /g
:set fileformat&
:.w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !executable("cksum")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1ccksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST[?25h[?0c[?25l[?1c
:[?25h[?0cset fileformat=unix undolevels=-1
[?25l[?1c[?25h[?0c[?25l[?1cInserts 2 million lines with consecutive integers starting from 1
(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
and writes its cksum to test.out.

We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
up the lines the checksum would differ.[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhil

egcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/menu.o menu.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/digraph.o digraph.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/edit.o edit.c
[?25l[?1c12345678910111213141516171819202122[?25h[?0c[?25l[?1c
23[?25h[?0c
[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 2000000 lines, 14888896 characters written[?25h[?0c[?25l[?1c:[?25h[?0cr !cksum Xtest
[?25l[?1c[?25h[?0c[?25l[?1c1
2
3678979763 14888896 Xtest
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22[?25h[?0c[?25l[?1c:[?25h[?0cs/\s/ /g
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 26 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test77 = test61; then \
#	  if diff test.out test77.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test77.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test77.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test79.failed test.ok test.out X* viminfo
cp test79.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test79.in
[?25h[?8c[?25h[?0c[?25l[?1c"test79.in" 255 lines, 3381 charactersTest for *sub-replace-special* and *sub-replace-expression* on :substitute.
Test for submatch() on :substitue.
Test for *:s%* on :substitute.
Test for :s replacing \n with  line break.

STARTTEST
:so small.vim
ENDTEST

Results of test71:

STARTTEST
:set magic
:set cpo&
/^TEST/
j:s/A/&&/
j:s/B/\&/
j:s/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
j:s/D/d/
j:s/E/~/
j:s/F/\~/
j:s/G/\ugg/
j:s/H/\Uh\Eh/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for *sub-replace-special* and *sub-replace-expression* on :substitute.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/misc1.o misc1.c
[New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 347 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTj:s/L/^V^M/
j:s/M/\r/
j:s/N/\^V^M/
j:s/O/\n/
j:s/P/\b/
j:s/Q/\t/
j:s/R/\\/
j:s/S/\c/
j:s/T/^V^@/
j:s/U/\L\uuUu\l\EU/
j:s/V/\U\lVvV\u\Ev/
ENDTEST

TEST_1:
A
B
C123456789
D
E
F
G
H
I[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/&&/
[?25l[?1cA
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\&/
[?25l[?1c&[?25h[?0c
[?25l[?1c:[?25h[?0cs/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l[?1c987654321
[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/d/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/E/~/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/G/\ugg/
[?25l[?1cg
[?25h[?0c
[?25l[?1c:[?25h[?0cs/H/\Uh\Eh/
[?25l[?1ch
[?25h[?0c
[?25l[?1c:[?25h[?0cs/I/\lII/
[?25l[?1ciI
[?25h[?0c[?25l[?1c
J[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\LJ\EJ/
[?25l[?1cjJ
[?25h[?0c[?25l[?1c
K[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\Uk\ek/
[?25l[?1ck
[?25h[?0c[?25l[?1c
lLl[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/^^M/
[?25l[?1c
l[?25h[?0c[?25l[?1c
mMm
[?25h[?0c[?25l[?1c
:[?25h[?0cs/M/\r/
[?25l[?1c
m[?25h[?0c[?25l[?1c
nNn
[?25h[?0c[?25l[?1c
:[?25h[?0cs/N/\^^M/
[?25l[?1c^Mn
[?25h[?0c[?25l[?1c
oOo[?25h[?0c[?25l[?1c
:[?25h[?0cs/O/\n/
[?25l[?1c^@o
[?25h[?0c[?25l[?1c
pPp[?25h[?0c[?25l[?1c
:[?25h[?0cs/P/\b/
[?25l[?1c^Hp
[?25h[?0c[?25l[?1c
qQq[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q/\t/
[?25l[?1c       q
[?25h[?0c[?25l[?1c
rRr[?25h[?0c[?25l[?1c
:[?25h[?0cs/R/\\/
[?25l[?1c\
[?25h[?0c[?25l[?1c
sSs[?25h[?0c[?25l[?1c
:[?25h[?0cs/S/\c/
[?25l[?1cc
[?25h[?0c[?25l[?1c
tTt[?25h[?0c[?25l[?1c
:[?25h[?0cs/T/^^@/
[?25l[?1c^@t
[?25h[?0c[?25l[?1c
U[?25h[?0c[?25l[?1c
:[?25h[?0cs/U/\L\uuUu\l\EU/
[?25l[?1cuuU
[?25h[?0c[?25l[?1c
V[?25h[?0c[?25l[?1c
:[?25h[?0cs/V/\U\lVvV\u\Ev/
[?25l[?1cvVVv
[?25h[?0c[?25l[?1c/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set nomagic
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 351 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/L/^V^M/
j:s/M/\r/
j:s/N/\^V^M/
j:s/O/\n/
j:s/P/\b/
j:s/Q/\t/
j:s/R/\\/
j:s/S/\c/
j:s/T/^V^@/
j:s/U/\L\uuUu\l\EU/
j:s/V/\U\lVvV\u\Ev/
ENDTEST

TEST_2:
A
B
C123456789
D
E
F
G
H
I[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/&&/
[?25l[?1c&&
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\&/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l[?1c987654321
[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/d/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/E/~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/G/\ugg/
[?25l[?1cg
[?25h[?0c
[?25l[?1c:[?25h[?0cs/H/\Uh\Eh/
[?25l[?1ch
[?25h[?0c
[?25l[?1c:[?25h[?0cs/I/\lII/
[?25l[?1ciI
[?25h[?0c[?25l[?1c
J[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\LJ\EJ/
[?25l[?1cjJ
[?25h[?0c[?25l[?1c
K[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\Uk\ek/
[?25l[?1ck
[?25h[?0c[?25l[?1c
lLl[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/^^M/
[?25l[?1c
l[?25h[?0c[?25l[?1c
mMm
[?25h[?0c[?25l[?1c
:[?25h[?0cs/M/\r/
[?25l[?1c
m[?25h[?0c[?25l[?1c
nNn
[?25h[?0c[?25l[?1c
:[?25h[?0cs/N/\^^M/
[?25l[?1c^Mn
[?25h[?0c[?25l[?1c
oOo[?25h[?0c[?25l[?1c
:[?25h[?0cs/O/\n/
[?25l[?1c^@o
[?25h[?0c[?25l[?1c
pPp[?25h[?0c[?25l[?1c
:[?25h[?0cs/P/\b/
[?25l[?1c^Hp
[?25h[?0c[?25l[?1c
qQq[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q/\t/
[?25l[?1c       q
[?25h[?0c[?25l[?1c
rRr[?25h[?0c[?25l[?1c
:[?25h[?0cs/R/\\/
[?25l[?1c\
[?25h[?0c[?25l[?1c
sSs[?25h[?0c[?25l[?1c
:[?25h[?0cs/S/\c/
[?25l[?1cc
[?25h[?0c[?25l[?1c
tTt[?25h[?0c[?25l[?1c
:[?25h[?0cs/T/^^@/
[?25l[?1c^@t
[?25h[?0c[?25l[?1c
U[?25h[?0c[?25l[?1c
:[?25h[?0cs/U/\L\uuUu\l\EU/
[?25l[?1cuuU
[?25h[?0c[?25l[?1c
V[?25h[?0c[?25l[?1c
:[?25h[?0cs/V/\U\lVvV\u\Ev/
[?25l[?1cvVVv
[?25h[?0c[?25l[?1c/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 203 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/B/\='\\'/
j:s/C/\='^V^M'/
j:s/D/\='\^V^M'/
j:s/E/\='\\^V^M'/
j:s/F/\='\r'/
j:s/G/\='^V^@'/
j:s/H/\='\^V^@'/
j:s/I/\='\\^V^@'/
j:s/J/\='\n'/
j:s/K/\="\r"/
j:s/L/\="\n"/
ENDTEST

TEST_3:
aAa
bBb
cCc
dDd
eEe
fFf
gGg
hHh
iIi[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/\='\'/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\='\\'/
[?25l[?1c\\b
[?25h[?0c
[?25l[?1c:[?25h[?0cs/C/\='^^M'/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/\='\^^M'/
[?25l[?1c\d[?25h[?0c
[?25l[?1c


:[?25h[?0cs/E/\='\\^^M'/
[?25l[?1c\\
efFf[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\='\r'/
[?25l[?1c\rf
[?25h[?0c[?25l[?1c
gGg[?25h[?0c[?25l[?1c
:[?25h[?0cs/G/\='^^@'/
[?25l[?1c
g[?25h[?0c[?25l[?1c
hHh
[?25h[?0c[?25l[?1c
:[?25h[?0cs/H/\='\^^@'/
[?25l[?1c
\h[?25h[?0c[?25l[?1c
iIi
[?25h[?0c[?25l[?1c
:[?25h[?0cs/I/\='\\^^@'/
[?25l[?1c
\\
i[?25h[?0c[?25l[?1c
jJj
[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\='\n'/
[?25l[?1c\nj
[?25h[?0c[?25l[?1c
kKk[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\="\r"/
[?25l[?1c
k[?25h[?0c[?25l[?1c
lLl
[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/\="\n"/
[?25l[?1c
l[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 611 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/B/\=substitute(submatch(0), '.', '\\', '')/
j:s/C/\=substitute(submatch(0), '.', '^V^M', '')/
j:s/D/\=substitute(submatch(0), '.', '\^V^M', '')/
j:s/E/\=substitute(submatch(0), '.', '\\^V^M', '')/
j:s/F/\=substitute(submatch(0), '.', '\r', '')/
j:s/G/\=substitute(submatch(0), '.', '^V^@', '')/
j:s/H/\=substitute(submatch(0), '.', '\^V^@', '')/
j:s/I/\=substitute(submatch(0), '.', '\\^V^@', '')/
j:s/J/\=substitute(submatch(0), '.', '\n', '')/
j:s/K/\=substitute(submatch(0), '.', "\r", '')/
j:s/L/\=substitute(submatch(0), '.', "\n", '')/
ENDTEST

TEST_4:
aAa
bBb
cCc
dDd
eEe
fFf
gGg
hHh
iIi[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/\=substitute(submatch(0), '.', '\', '')/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\=substitute(submatch(0), '.', '\\', '')/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/C/\=substitute(submatch(0), '.', '^^M', '')/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/\=substitute(submatch(0), '.', '\^^M', '')/
[?25l[?1cd[?25h[?0c
[?25l[?1c


:[?25h[?0cs/E/\=substitute(submatch(0), '.', '\\^^M', '')/
[?25l[?1c\efFf[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\=substitute(submatch(0), '.', '\r', '')/
[?25l[?1c
f[?25h[?0c[?25l[?1c
gGg
[?25h[?0c[?25l[?1c
:[?25h[?0cs/G/\=substitute(submatch(0), '.', '^^@', '')/
[?25l[?1c
g[?25h[?0c[?25l[?1c
hHh
[?25h[?0c[?25l[?1c
:[?25h[?0cs/H/\=substitute(submatch(0), '.', '\^^@', '')/
[?25l[?1c
h[?25h[?0c[?25l[?1c
iIi
[?25h[?0c[?25l[?1c
:[?25h[?0cs/I/\=substitute(submatch(0), '.', '\\^^@', '')/
[?25l[?1c
\i[?25h[?0c[?25l[?1c
jJj
[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\=substitute(submatch(0), '.', '\n', '')/
[?25l[?1c
j[?25h[?0c[?25l[?1c
kKk
[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\=substitute(submatch(0), '.', "\r", '')/
[?25l[?1c
k[?25h[?0c[?25l[?1c
lLl
[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/\=substitute(submatch(0), '.', "\n", '')/
[?25l[?1c
l[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 445 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set cpo&
/^TEST/
j:s/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)/
j:s/B\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c
TEST_5:[?25h[?0c[?25l[?1c
A123456789
[?25h[?0c[?25l[?1c
:[?25h[?0cs/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .

submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(

3) . submatch(2) . submatch(1)/
[?25l[?1ci\
i987654321[?25h[?0c[?25l[?1c
B123456789
[?25h[?0c[?25l[?1c
:[?25h[?0cs/B\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=string([submatch(0, 1), sub

match(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), sub

match(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
[?25l[?1ci
j[['B123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/^TEST/
:set cpo+=/
j:s/A/a/
j:s/B/%/
:set cpo-=/
j:s/C/c/
j:s/D/%/
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1cTEST_6:
A
B[?25h[?0c[?25l[?1c


:[?25h[?0cset cpo+=/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/a/
[?25l[?1ca[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/%/
[?25l[?1ca[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=/
[?25l[?1c[?25h[?0c[?25l[?1cC
D[?25h[?0c[?25l[?1c


:[?25h[?0cs/C/c/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/%/
[?25l[?1c%[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 11 lines, 303 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set cpo&
/^TEST_7/
j:s/A./\=submatch(0)/
j:s/B./\=submatch(0)/
j:s/C./\=strtrans(string(submatch(0, 1)))/
j:s/D.\nD/\=strtrans(string(submatch(0, 1)))/
j:s/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
/^Q$
:s/Q[^\n]Q/\=submatch(0)."foobar"/
:" Avoid :s error breaks dotest map on Windows.
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST_7/
[?25l[?1c
TEST_7:[?25h[?0c[?25l[?1c
A^MA
[?25h[?0c[?25l[?1c
:[?25h[?0cs/A./\=submatch(0)/
[?25l[?1c
A[?25h[?0c[?25l[?1c
B^@B
[?25h[?0c[?25l[?1c
:[?25h[?0cs/B./\=submatch(0)/
[?25l[?1c
B[?25h[?0c[?25l[?1c
C^@C
[?25h[?0c[?25l[?1c
:[?25h[?0cs/C./\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['C^@']C
[?25h[?0c[?25l[?1c
D^@[?25h[?0c[?25l[?1c
:[?25h[?0cs/D.\nD/\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['D^@', 'D']
[?25h[?0c[?25l[?1c
E^@[?25h[?0c[?25l[?1c
:[?25h[?0cs/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['E^@', '^@', '^@', '^@', '^@E']
[?25h[?0c[?25l[?1c/[?25h[?0c^Q$
[?25l[?1c
Q[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q[^\n]Q/\=submatch(0)."foobar"/
[?25l[?1cE486: Pattern not found: Q[^\n]Q[?25h[?0c[?25l[?1c:[?25h[?0c" Avoid :s error breaks dotest map on Windows.
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
Q

STARTTEST[?25h[?0c[?25l[?1c
:function! TitleString()
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 177 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTlet check = 'foo' =~ 'bar'
  return ""
endfunction
:set titlestring=%{TitleString()}
:/^test_one/s/.*/\="foo\nbar"/
:/^test_two/s/.*/\="foo\nbar"/c
y
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cfunction! TitleString()
[?25l[?1c
:  [?25h[?0c  let check = 'foo' =~ 'bar'

[?25l[?1c:  [?25h[?0c  return ""

[?25l[?1c:  [?25h[?0cendfunction
[?25l[?1cTEST_7:
A[?25h[?0c[?25l[?1c
:[?25h[?0cset titlestring=%{TitleString()}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^test_one/s/.*/\="foo\nbar"/
[?25l[?1cfoo
bar[?25h[?0c[?25l[?1c
:[?25h[?0c/^test_two/s/.*/\="foo\nbar"/c
[?25l[?1c
test_tworeplace with \="foo\nbar" (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c
foobar
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 72 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:1;/^Results/,$wq! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c136 fewer linesaa
c
%TEST_7:AABB['C^@']C['D^@', 'D']
['E^@', '^@', '^@', '^@', '^@E']
Q
Qfoo
bar
foobar[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 134 lines, 574 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test79 = test61; then \
#	  if diff test.out test79.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test79.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test79.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test80.failed test.ok test.out X* viminfo
cp test80.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test80.in
[?25h[?8c[?25h[?0c[?25l[?1c"test80.in" 201 lines, 6298 charactersTest for *sub-replace-special* and *sub-replace-expression* on substitute().
Test for submatch() on substitute().
Test for *:s%* on :substitute.

STARTTEST
:so small.vim
ENDTEST

TEST_1:

STARTTEST
:set magic
:set cpo&
:$put =\"\n\nTEST_1:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
:$put =substitute('D', 'D', 'd', '')
:$put =substitute('E', 'E', '~', '')
:$put =substitute('F', 'F', '\~', '')
:$put =substitute('G', 'G', '\ugg', '')
:$put =substitute('H', 'H', '\Uh\Eh', '')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for *sub-replace-special* and *sub-replace-expression* on substitute().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/move.o move.c
[New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1142 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =substitute('pPp', 'P', '\b', '')
:$put =substitute('qQq', 'Q', '\t', '')
:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('xXx', 'X', \"\r\", '')
:$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
:$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
/^TEST_2
ENDTEST

TEST_2:

STARTTEST
:set nomagic
:set cpo&
:$put =\"\n\nTEST_2:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_1:\"
[?25l[?1c3 more lines:set cpo&
:$put =\"\n\nTEST_10:\"
:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST

TEST_11:

STARTTEST
:/^Results/,$wq! test.out
ENDTEST

Results of test72:


TEST_1:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', '&&', '')
[?25l[?1c
AA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '\&', '')
[?25l[?1c
&[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l[?1c:let y = substitute('123', '\zs.', 'a', 'g')| $put =y.\zs\ze', 'a', 'g') .', 'a', 'g').\ze1\|\ze', 'a', 'g')zs\|[23]', 'a', 'g')
/^TEST_11ENDTESTTEST_11:STARTTEST
:/^Results/,$wq! test.out
ENDTESTResults of test72:TEST_1:
AA&C123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', 'd', '')
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('E', 'E', '~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('F', 'F', '\~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('G', 'G', '\ugg', '')
[?25l[?1c
Gg[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l[?1c
Hh[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('I', 'I', '\lII', '')
[?25l[?1c
iI[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l[?1c
jJ[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('K', 'K', '\Uk\ek', '')
[?25l[?1c
Kk[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('lLl', 'L', '^^M', '')
[?25l[?1c
l^Ml[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('mMm', 'M', '\r', '')
[?25l[?1c
m^Mm[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('nNn', 'N', '\^^M', '')
[?25l[?1c
n^Mn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('oOo', 'O', '\n', '')
[?25l[?1co
o[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('pPp', 'P', '\b', '')
[?25l[?1c
p^Hp[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('qQq', 'Q', '\t', '')
[?25l[?1c
qq[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('rRr', 'R', '\\', '')
[?25l[?1c
r\r[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('sSs', 'S', '\c', '')
[?25l[?1c
scs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('uUu', 'U', \"\n\", '')
[?25l[?1cu
u[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('vVv', 'V', \"\b\", '')
[?25l[?1c
v^Hv[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('wWw', 'W', \"\\\", '')
[?25l[?1c
w\w[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('xXx', 'X', \"\r\", '')
[?25l[?1c
x^Mx[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
[?25l[?1c
YyyY[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
[?25l[?1c
zZZz[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_2
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('xXx', 'X', \"\r\", '')
:$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
:$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
/^TEST_2
ENDTEST

TEST_2:

STARTTEST
:set nomagic
:set cpo&
:$put =\"\n\nTEST_2:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
:$put =substitute('D', 'D', 'd', '')
:$put =substitute('E', 'E', '~', '')
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1144 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =substitute('pPp', 'P', '\b', '')
:$put =substitute('qQq', 'Q', '\t', '')
:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('tTt', 'T', \"\r\", '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
:$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
/^TEST_3
ENDTEST

TEST_3:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_3:\"
:let y = substitute('aAa', 'A', '\="\\"', '')| $put =y
:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_2:\"
[?25l[?1c3 more linesHh
iI
jJ
Kk
l^Ml
m^Mm
n^Mn
o
o
p^Hp
qq
r\r
scs
u
u
v^Hv
w\w
x^Mx
YyyY
zZZz


TEST_2:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', '&&', '')
[?25l[?1c
AA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '\&', '')
[?25l[?1c
&[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l[?1cKk
l^Ml
mm
nn
op^Hp
q       q
r\rscs
uv^Hv
w\wx^Mx
YyyY
zZZzTEST_2:
AA&C123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', 'd', '')
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('E', 'E', '~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('F', 'F', '\~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('G', 'G', '\ugg', '')
[?25l[?1c
Gg[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l[?1c
Hh[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('I', 'I', '\lII', '')
[?25l[?1c
iI[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l[?1c
jJ[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('K', 'K', '\Uk\ek', '')
[?25l[?1c
Kk[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('lLl', 'L', '^^M', '')
[?25l[?1c
l^Ml[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('mMm', 'M', '\r', '')
[?25l[?1c
m^Mm[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('nNn', 'N', '\^^M', '')
[?25l[?1c
n^Mn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('oOo', 'O', '\n', '')
[?25l[?1co
o[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('pPp', 'P', '\b', '')
[?25l[?1c
p^Hp[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('qQq', 'Q', '\t', '')
[?25l[?1c
qq[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('rRr', 'R', '\\', '')
[?25l[?1c
r\r[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('sSs', 'S', '\c', '')
[?25l[?1c
scs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('tTt', 'T', \"\r\", '')
[?25l[?1c
t^Mt[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('uUu', 'U', \"\n\", '')
[?25l[?1cu
u[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('vVv', 'V', \"\b\", '')
[?25l[?1c
v^Hv[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('wWw', 'W', \"\\\", '')
[?25l[?1c
w\w[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
[?25l[?1c
XxxX[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
[?25l[?1c
yYYy[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_3
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('tTt', 'T', \"\r\", '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
:$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
/^TEST_3
ENDTEST

TEST_3:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_3:\"
:let y = substitute('aAa', 'A', '\="\\"', '')| $put =y
:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y
:let y = substitute('eEe', 'E', '\="\\\\^V^M"', '')     | $put =y
:let y = substitute('fFf', 'F', '\="\\r"', '')| $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 642 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('jJj', 'J', '\="\\n"', '')| $put =y
:let y = substitute('kKk', 'K', '\="\r"', '')| $put =y
:let y = substitute('lLl', 'L', '\="\n"', '')| $put =y
/^TEST_4
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_3:\"
[?25l[?1c3 more linesHh
iI
jJ
Kk
l^Ml
m^Mm
n^Mn
o
o
p^Hp
qq
r\r
scs
t^Mt
u
u
v^Hv
w\w
XxxX
yYYy


TEST_3:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('aAa', 'A', '\="\\"', '')           | $put =y
[?25l[?1c
a\a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('bBb', 'B', '\="\\\\"', '')         | $put =y
[?25l[?1c
b\\b[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('cCc', 'C', '\="^^M"', '')         | $put =y
[?25l[?1c
c^Mc[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('dDd', 'D', '\="\\^^M"', '')       | $put =y
[?25l[?1c
d\^Md[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('eEe', 'E', '\="\\\\^^M"', '')     | $put =y
[?25l[?1c
e\\^Me[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('fFf', 'F', '\="\\r"', '')          | $put =y
[?25l[?1c
f\rf[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('jJj', 'J', '\="\\n"', '')          | $put =y
[?25l[?1c
j\nj[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('kKk', 'K', '\="\r"', '')           | $put =y
[?25l[?1c
k^Mk[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('lLl', 'L', '\="\n"', '')           | $put =y
[?25l[?1cl
l[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_4
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y
:let y = substitute('eEe', 'E', '\="\\\\^V^M"', '')     | $put =y
:let y = substitute('fFf', 'F', '\="\\r"', '')| $put =y
:let y = substitute('jJj', 'J', '\="\\n"', '')| $put =y
:let y = substitute('kKk', 'K', '\="\r"', '')| $put =y
:let y = substitute('lLl', 'L', '\="\n"', '')| $put =y
/^TEST_4
ENDTEST

TEST_4:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_4:\"
:let y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')| $put =y
:let y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '')     | $put =y
:let y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^V^M", "")', '')     | $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 912 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^V^M", "")',
'')   | $put =y
:let y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^V^M", "")', '') | $put =y
:let y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', '')| $put =y
:let y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '')| $put =y
:let y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')| $put =y
:let y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')| $put =y
/^TEST_5
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_4:\"
[?25l[?1c3 more linest^Mt
u
u
v^Hv
w\w
XxxX
yYYy


TEST_3:
a\a
b\\b
c^Mc
d\^Md
e\\^Me
f\rf
j\nj
k^Mk
l
l


TEST_4:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')

      | $put =y
[?25l[?1cu

v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '

')     | $put =y
[?25l[?1cu
v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^^M", "")', '')

    | $put =y
[?25l[?1cv^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^^M", "")', '

')   | $put =y
[?25l[?1cw\w
XxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^^M", "")',

'') | $put =y
[?25l[?1cXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', ''

)      | $put =y
[?25l[?1cyYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mf[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', ''

)      | $put =y
[?25l[?1cTEST_3:
a\a
b\\bc^Mc
d\^Md
e\\^Me
f\rfj\njk^Mk
llTEST_4:
a\a
b\bc^Mc
d^Md
e\^Me
ff
jj[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')

      | $put =y
[?25l[?1cTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')

      | $put =y
[?25l[?1cb\\b
c^Mc
d\^Md
e\\^Me
f\rfj\njk^Mk
llTEST_4:
a\a
b\bc^Mc
d^Md
e\^Me
ff
jjk^Mk
l
l[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_5
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '')| $put =y
:let y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')| $put =y
:let y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')| $put =y
/^TEST_5
ENDTEST

TEST_5:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])', '')
/^TEST_6
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 543 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTENDTEST[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_5:\"
[?25l[?1c3 more linese\\^Me
f\rf
j\nj
k^Mk
l
l


TEST_4:
a\a
b\b
c^Mc
d^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . subm

atch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
[?25l[?1cf\rf
j\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), su

bmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), su

bmatch(1, 1)])', '')
[?25l[?1cj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_6
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])', '')
/^TEST_6
ENDTEST

TEST_6:

STARTTEST
:set magic&
:$put =\"\n\nTEST_6:\"
:set cpo+=/
:$put =substitute('A', 'A', 'a', '')
:$put =substitute('B', 'B', '%', '')
:set cpo-=/
:$put =substitute('C', 'C', 'c', '')
:$put =substitute('D', 'D', '%', '')
/^TEST_7
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 216 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1cTEST_7:[?25h[?0c[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_6:\"
[?25l[?1c3 more linesl


TEST_4:
a\a
b\b
c^Mc
d^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0cset cpo+=/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', 'a', '')
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '%', '')
[?25l[?1c
%[?25h[?0c[?25l[?1c
:[?25h[?0cset cpo-=/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('C', 'C', 'c', '')
[?25l[?1c
c[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', '%', '')
[?25l[?1c
%[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_7
[?25l[?1csearch hit BOTTOM, continuing at TOP:set magic&
:$put =\"\n\nTEST_6:\"
:set cpo+=/
:$put =substitute('A', 'A', 'a', '')
:$put =substitute('B', 'B', '%', '')
:set cpo-=/
:$put =substitute('C', 'C', 'c', '')
:$put =substitute('D', 'D', '%', '')
/^TEST_7
ENDTEST

TEST_7:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A^V^MA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
:$put =substitute('-bb', '\zeb', 'a', 'g')
:$put =substitute('-bb', '\ze', 'c', 'g')
/^TEST_8
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 313 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_7:\"
[?25l[?1c3 more linesd^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
a
%
c
%


TEST_7:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A^^MA', 'A.', '\=submatch(0)', '')
[?25l[?1c
A^MA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
[?25l[?1cB
B[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
[?25l[?1c['B
']B[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('-bb', '\zeb', 'a', 'g')
[?25l[?1c
-abab[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('-bb', '\ze', 'c', 'g')
[?25l[?1c
c-cbcbc[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_8
[?25l[?1csearch hit BOTTOM, continuing at TOP:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A^V^MA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
:$put =substitute('-bb', '\zeb', 'a', 'g')
:$put =substitute('-bb', '\ze', 'c', 'g')
/^TEST_8
ENDTEST

TEST_8:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 10 lines, 186 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTyy/^TEST_9:
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_8:\"
[?25l[?1c3 more linesTEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
a
%
c
%


TEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =',,X'
[?25l[?1c
,,X[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|X\)/\1N/g
[?25l[?1cN,,NX
[?25h[?0c[?25l[?1c:[?25h[?0c$put =',,Y'
[?25l[?1c
,,Y[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|Y\)/\1N/gc
[?25l[?1c,
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cN,,NY
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =',,Z'
[?25l[?1c
,,Z[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|Z\)/\1N/gc
[?25l[?1c,
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cN,,Z
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c,NZ
[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_9:
[?25l[?1csearch hit BOTTOM, continuing at TOP:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
yy/^TEST_9:
ENDTEST

TEST_9:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
ENDTEST

TEST_10:
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 82 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_9:\"
[?25l[?1c3 more linesa
%
c
%


TEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
N,,NX
N,,NY
N,,NZ


TEST_9:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put ='xxx'
[?25l[?1c
xxx[?25h[?0c[?25l[?1c
:[?25h[?0cs/x/X/gc
[?25l[?1cx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cXx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cXx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cx[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_10:
[?25l[?1csearch hit BOTTOM, continuing at TOPTEST_9:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
ENDTEST

TEST_10:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_10:\"
:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 584 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_10:\"
[?25l[?1c3 more linesTEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
N,,NX
N,,NY
N,,NZ


TEST_9:
XXx


TEST_10:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('123', '\zs', 'a', 'g')             | $put =y
[?25l[?1c
a1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\zs.', 'a', 'g')            | $put =y
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '.\zs', 'a', 'g')            | $put =y
[?25l[?1c
1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\ze', 'a', 'g')             | $put =y
[?25l[?1c
a1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\ze.', 'a', 'g')            | $put =y
[?25l[?1c
a1a2a3[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '.\ze', 'a', 'g')            | $put =y
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '1\|\ze', 'a', 'g')          | $put =y
[?25l[?1c
aa2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
[?25l[?1c
1aaa[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_11
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST

TEST_11:

STARTTEST
:/^Results/,$wq! test.out
ENDTEST

Results of test72:


TEST_1:
AA
&
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 26 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 131 lines, 617 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test80 = test61; then \
#	  if diff test.out test80.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test80.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test80.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test82.failed test.ok test.out X* viminfo
cp test82.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test82.in
[?25h[?8c[?25h[?0c[?25l[?1c"test82.in" 103 lines, 3166 charactersTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
Also test "g~ap".

STARTTEST
:so small.vim
:if !has("multi_byte")
: e! test.ok
: w! test.out
: qa!
:endif
:set enc=utf8
ggdG:
:
:function! Ch(a, op, b, expected)
:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 97 lines, 3055 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:call append(0, printf('%d checks passed', b:passed))
:"
:" test that g~ap changes one paragraph only.
:new
iabcd

defg^[gg0g~ap:let lns = getline(1,3)
:q!
:call append(line('$'), lns)
:"
:wq! test.out
ENDTEST

~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("multi_byte")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor[?25h[?0c[?25l[?1c


:[?25h[?0cset enc=utf8
[?25l[?1c:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:call append(0, printf('%d checks passed', b:passed))
:"
:" test that g~ap changes one paragraph only.
:new
iabcd

defg^[gg0g~ap:let lns = getline(1,3)
:q!
:call append(line('$'), lns)
:"
:wq! test.out
ENDTEST

~                                                                               ~                                                                               [?25h[?0c[?25l[?1cTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
Also test "g~ap".

STARTTEST
:so small.vim
:if !has("multi_byte")
: e! test.ok
: w! test.out
: qa!
:endif
:set enc=utf8
ggdG:
:
:function! Ch(a, op, b, expected)
:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Ch(a, op, b, expected)
[?25l[?1c
:  [?25h[?0c:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected

[?25l[?1c:    [?25h[?0c:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a

:op, a:b, a:expected))

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    let b:passed += 1

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Chk(a, b, result)
[?25l[?1c
:  [?25h[?0c:  if a:result == 0

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 0)

[?25l[?1c:    [?25h[?0c:  elseif a:result > 0

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 1)

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 0)

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Check(a, b, result)
[?25l[?1c
:  [?25h[?0c:  call Chk(a:a, a:b, a:result)

[?25l[?1c:  [?25h[?0c:  call Chk(a:b, a:a, -a:result)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! LT(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, -1)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! GT(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, 1)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! EQ(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, 0)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:passed=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('', '')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('', 'a')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('abc', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('Abc', 'abC')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('ab', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('AB', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('ab', 'aBc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xb9\xd0\xa6\

xd0\xa3\xd0\xba\xd0\x95\xd0\xbd')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xaf\xd1\x86\

xd1\x83\xd0\xba\xd0\xb5\xd0\xbd')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa', 'k')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xe2\x84\xaa', 'kkkkkk')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\x

aakk\xe2\x84\xa6')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('Abc\x80', 'AbC\x80')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('Abc\x80', 'AbC\x81')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('Abc', 'AbC\x80')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('abc\x80DEF', 'abc\x80def')  " case folding stops at the first bad cha

racter
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xc3XYZ', '\xc3xyz')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xef\xbc\xba', '\xef\xbd\x9a')  " FF3A (upper), FF5A (lower)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall GT('\xef\xbc\xba', '\xef\xbc\xff')  " first string is ok and equals \xef\

xbd\x9a after folding, second string is illegal and was left unchanged, then the

strings were bytewise compared
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xc3', '\xc3\x83')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.

2X', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, printf('%d checks passed', b:passed))
[?25l[?1c3732 checks passed[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test that g~ap changes one paragraph only.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               [No Name]                                                                       3732 checks passedtest82.in [+]                                                                   [?25h[?0c[?25l[?1cabcddefg[+][?25h[?0c[?25l[?1cABCD
[?25h[?0c[?25l[?1c:[?25h[?0clet lns = getline(1,3)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c3732 checks passed

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), lns)
[?25l[?1cABCDdefg[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 5 lines, 31 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test82 = test61; then \
#	  if diff test.out test82.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test82.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test82.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test84.failed test.ok test.out X* viminfo
cp test84.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test84.in
[?25h[?8c[?25h[?0c[?25l[?1c"test84.in" 35 lines, 786 charactersTests for curswant not changing when setting an option

STARTTEST
:so small.vim
:/^start target options$/+1,/^end target options$/-1 yank
:let target_option_names = split(@0)
:function TestCurswant(option_name)
:  normal! ggf8j
:  let curswant_before = winsaveview().curswant
:  execute 'let' '&'.a:option_name '=' '&'.a:option_name
:  let curswant_after = winsaveview().curswant
:  return [a:option_name, curswant_before, curswant_after]
:endfunction
:
:new
:put =['1234567890', '12345']
:1 delete _
:let result = []
:for option_name in target_option_names
:  call add(result, TestCurswant(option_name))
:endfor
:
:new[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for curswant not changing when setting an option[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 637 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _
:write test.out
:
:qall!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start target options$/+1,/^end target options$/-1 yank
[?25l[?1c3 lines yanked[?25h[?0c[?25l[?1c:[?25h[?0clet target_option_names = split(@0)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction TestCurswant(option_name)
[?25l[?1c
:  [?25h[?0c:  normal! ggf8j

[?25l[?1c:  [?25h[?0c:  let curswant_before = winsaveview().curswant

[?25l[?1c:  [?25h[?0c:  execute 'let' '&'.a:option_name '=' '&'.a:option_name

[?25l[?1c:  [?25h[?0c:  let curswant_after = winsaveview().curswant

[?25l[?1c:  [?25h[?0c:  return [a:option_name, curswant_before, curswant_after]

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:  normal! ggf8j
:  let curswant_before = winsaveview().curswant
:  execute 'let' '&'.a:option_name '=' '&'.a:option_name
:  let curswant_after = winsaveview().curswant
:  return [a:option_name, curswant_before, curswant_after]
:endfunction[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       endfornew
:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _write test.outqall!
ENDTESTtest84.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cput =['1234567890', '12345']
[?25l[?1c123456789012345[+][?25h[?0c[?25l[?1c:[?25h[?0c1 delete _
[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet result = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor option_name in target_option_names
[?25l[?1c
:  [?25h[?0c:  call add(result, TestCurswant(option_name))

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c1234567890
12345[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1234567890
12345
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   :1 delete _
:write test.out
:
:qall!
ENDTEST

test84.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cput =map(copy(result), 'join(v:val, '' '')')
[?25l[?1c3 more linestabstop 7 4timeoutlen 7 7ttimeoutlen 7 7[+][?25h[?0c[?25l[?1c:[?25h[?0c1 delete _
[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cwrite test.out
[?25l[?1c"test.out" [New File] 3 lines, 43 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqall!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test84 = test61; then \
#	  if diff test.out test84.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test84.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test84.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test88.failed test.ok test.out X* viminfo
cp test88.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test88.in
[?25h[?8c[?25h[?0c[?25l[?1c"test88.in" 99 lines, 1449 charactersvim: set ft=vim

Tests for correct display (cursor column position) with +conceal and
tabulators.

STARTTEST
:so small.vim
:if !has('conceal')
   e! test.ok
   wq! test.out
:endif
:" Conceal settings.
:set conceallevel=2
:set concealcursor=nc
:syntax match test /|/ conceal
:" Save current cursor position. Only works in <expr> mode, can't be used
:" with :normal because it moves the cursor to the command line. Thanks to ZyX
:" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
:let positions = []
:nnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
:" Start test.
/^start:
:normal ztj[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cvim: set ft=vim[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 82 lines, 1216 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:normal W
GGk
:normal W
GGk
:normal W
GGk
:normal $
GGk
:" Display result.
:call append('$', 'end:')
:call append('$', positions)
:/^end/,$wq! test.out
ENDTEST

start:
.concealed.     text
|concealed|     text.concealed.     text|concealed|     text

.a.     .b.     .c.     .d.
|a|     |b|     |c|     |d|[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('conceal')
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:normal W
GGk
:normal W[?25h[?0c[?25l[?1c:[?25h[?0c" Conceal settings.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset conceallevel=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset concealcursor=nc
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyntax match test /|/ conceal
[?25l[?1cconcealed  concealed  


a       b       c       d[?25h[?0c[?25l[?1c:[?25h[?0c" Save current cursor position. Only works in <expr> mode, can't be used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" with :normal because it moves the cursor to the command line. Thanks to ZyX
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet positions = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Start test.
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ztj
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:let positions += ['2:1']
[?25h[?0c[?25l[?1c:[?25h[?0c" We should end up in the same column when running these commands on the two
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" lines.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['2:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['2:20']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:20']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:8']
[?25h[?0c[?25l[?1c:[?25h[?0c" Same for next test block.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:28']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:8']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:28']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:1']
[?25h[?0c[?25l[?1c:[?25h[?0c" And check W with multiple tabs and conceals in a line.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:27']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0cset lbr
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0cset list listchars=tab:>-
[?25l[?1c>------

>------->----
>------->------>----.b.>----.c.>----
a>------b>------c>------[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0c" Display result.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', 'end:')
[?25l[?1cend:[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', positions)
[?25l[?1c2:12:172:203:13:173:205:85:255:286:86:256:288:1[?25h[?0c[?25l[?1c:[?25h[?0c/^end/,$wq! test.out
[?25l[?1c"test.out" [New File] 29 lines, 135 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test88 = test61; then \
#	  if diff test.out test88.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test88.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test88.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test90.failed test.ok test.out X* viminfo
cp test90.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test90.in
[?25h[?8c[?25h[?0c[?25l[?1c"test90.in" 53 lines, 1204 charactersTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :

STARTTEST
:so small.vim
:if !has('cryptv') || !exists('*sha256')
   e! test.ok
   wq! test.out
:endif
:"
:let testcase='test for empty string: '
:if sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for 1 char: '
:if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb'
: let res='ok'
:else[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1114 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for contains non-ascii char: '
:if sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:/^start:/,$wq! test.out
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('cryptv') || !exists('*sha256')
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for empty string: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b785

2b855'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'[?25h[?0c[?25l[?1c

:[?25h[?0c$put =testcase.res
[?25l[?1c
test for empty string: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for 1 char: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785af

ee48bb'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1c
test for 1 char: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for 3 chars: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("abc") ==# 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61

f20015ad'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'
:else[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1ctest for 3 chars: ok
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for contains meta char: '
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/mbyte.o mbyte.c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8c

c39ed110ca776'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c: let res='ok'
:else
: let res='ng'
:endif[?25h[?0c[?25l[?1c

:[?25h[?0c$put =testcase.res
[?25l[?1ctest for contains meta char: ok[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for contains non-ascii char: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb

0b8d27db8d5feaa813953'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c: let res='ok'
:else
: let res='ng'
:endif[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1c
test for contains non-ascii char: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 6 lines, 143 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test90 = test61; then \
#	  if diff test.out test90.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test90.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test90.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test91.failed test.ok test.out X* viminfo
cp test91.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test91.in
[?25h[?8c[?25h[?0c[?25l[?1c"test91.in" 116 lines, 3240 charactersTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().
vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"
:" Use strings to test for memory leaks.
:" First, check that in an empty window, gettabvar() returns the correct value
:let t:testvar='abcd'
:$put =string(gettabvar(1,'testvar'))
:$put =string(gettabvar(1,'testvar'))
:" Test for getbufvar()
:let b:var_num = '1234'
:let def_num = '5678'
:$put =string(getbufvar(1, 'var_num'))
:$put =string(getbufvar(1, 'var_num', def_num))
:$put =string(getbufvar(1, ''))
:$put =string(getbufvar(1, '', def_num))
:unlet b:var_num
:$put =string(getbufvar(1, 'var_num', def_num))
:$put =string(getbufvar(1, ''))
:$put =string(getbufvar(1, '', def_num))[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 109 lines, 3127 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:tabnext
:3wincmd w
:unlet w:var_dict
:tabrewind
:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:$put =string(gettabwinvar(2, 9, ''))
:$put =string(gettabwinvar(2, 9, '', def_dict))
:$put =string(gettabwinvar(9, 3, ''))
:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict
:$put =string(gettabwinvar(2, 3, '&nux'))
:$put =string(gettabwinvar(2, 3, '&nux', 1))
:tabonly
:"
:/^start/,$wq! test.out
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Use strings to test for memory leaks.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" First, check that in an empty window, gettabvar() returns the correct value
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet t:testvar='abcd'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(gettabvar(1,'testvar'))
[?25l[?1c
'abcd'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(1,'testvar'))
[?25l[?1c
'abcd'[?25h[?0c[?25l[?1c
:[?25h[?0c" Test for getbufvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:var_num = '1234'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_num = '5678'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, 'var_num'))
[?25l[?1c
'1234'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, 'var_num', def_num))
[?25l[?1c
'1234'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, ''))
[?25l[?1c
{'var_num': '1234'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '', def_num))
[?25l[?1c
{'var_num': '1234'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet b:var_num
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, 'var_num', def_num))
[?25l[?1c
'5678'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '', def_num))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(9, '', def_num))
[?25l[?1c
'5678'[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_num
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, '&autoindent'))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '&autoindent', 1))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open new window with forced option values
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew ++ff=dos ++bin ++enc=iso-8859-2
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       {'var_num': '1234'}

'5678'{}''
'5678'
0test91.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0clet otherff = getbufvar(bufnr('%'), '&fileformat')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet otherbin = getbufvar(bufnr('%'), '&bin')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet otherfenc = getbufvar(bufnr('%'), '&fenc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict:$put =string(gettabwinvar(2, 3, '&nux')):$put =string(gettabwinvar(2, 3, '&nux', 1)):tabonly:":/^start/,$wq! test.outENDTESTstart:'abcd''abcd''1234'{'var_num': '1234'}
'5678'

{}
'''5678'

0[?25h[?0c[?25l[?1c:[?25h[?0c$put =otherff
[?25l[?1c
dos[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(otherbin)
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =otherfenc
[?25l[?1c
iso-8859-2[?25h[?0c[?25l[?1c
:[?25h[?0cunlet otherff otherbin otherfenc
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for getwinvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet w:var_str = "Dance"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_str = "Chance"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getwinvar(1, 'var_str'))
[?25l[?1c
'Dance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, 'var_str', def_str))
[?25l[?1c
'Dance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, ''))
[?25l[?1c
{'var_str': 'Dance'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '', def_str))
[?25l[?1c
{'var_str': 'Dance'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet w:var_str
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getwinvar(1, 'var_str', def_str))
[?25l[?1c
'Chance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '', def_str))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(9, '', def_str))
[?25l[?1c
'Chance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '&nu'))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '&nu',  1))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_str
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for gettabvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet t:var_list = [1, 2, 3]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet t:other = 777
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_list = [4, 5, 6, 7]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X{'var_num': '1234'}
'5678'
{}
{}
''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list'))
[?25l[?1c
[1, 2, 3][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list', def_list))
[?25l[?1c
[1, 2, 3][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, ''))
[?25l[?1c
{'var_list': [1, 2, 3], 'other': 777}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '', def_list))
[?25l[?1c
{'var_list': [1, 2, 3], 'other': 777}[?25h[?0c[?25l[?1c
:[?25h[?0ctablast
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cunlet t:var_list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(9, '', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '&nu'))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '&nu', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabonly
[?25l[?1cdos[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for gettabwinvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabprev
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c2 [No Name]  [No Name]  X[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c + test91.in  3 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0cvert split
[?25l[?1c4 X||||||~~~~~[No Name]                              [?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name]                                [No Name]                               X[?25h[?0c[?25l[?1c:[?25h[?0clet w:var_dict = {'dict': 'tabwin'}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_dict = {'dict2': 'newval'}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd b
[?25l[?1c[No Name]                              [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[4, 5, 6, 7]
''
[4, 5, 6, 7]
''
[4, 5, 6, 7]
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict'))
[?25l[?1c
{'dict': 'tabwin'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l[?1c
{'dict': 'tabwin'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, ''))
[?25l[?1c
{'var_dict': {'dict': 'tabwin'}}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l[?1c
{'var_dict': {'dict': 'tabwin'}}[?25h[?0c[?25l[?1c
:[?25h[?0ctabnext
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ||||||~                                       
~                                       
~                                       
~                                       
~                                       
[No Name]                                ~                                      ~                                      ~                                      ~                                      ~                                      [No Name]                              ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1c[No Name]                              [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0cunlet w:var_dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[4, 5, 6, 7]
''
[4, 5, 6, 7]
''
[4, 5, 6, 7]
{'dict': 'tabwin'}
{'dict': 'tabwin'}
{'var_dict': {'dict': 'tabwin'}}
{'var_dict': {'dict': 'tabwin'}}
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 9, '', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(9, 3, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(9, 3, '', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(gettabwinvar(2, 3, '&nux'))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '&nux', 1))
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0ctabonly
[?25l[?1c0[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 50 lines, 530 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test91 = test61; then \
#	  if diff test.out test91.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test91.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test91.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test94.failed test.ok test.out X* viminfo
cp test94.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test94.in
[?25h[?8c[?25h[?0c[?25l[?1c"test94.in" 256 lines, 4824 charactersTest for Visual mode and operators

Tests for the two kinds of operations: Those executed with Visual mode
followed by an operator and those executed via Operator-pending mode. Also
part of the test are mappings, counts, and repetition with the . command.

Test cases:
- Visual modes (v V CTRL-V) followed by an operator; count; repeating
- Visual mode maps; count; repeating
  - Simple
  - With an Ex command (custom text object)
- Operator-pending mode maps
  - Simple
  - With Ex command moving the cursor
  - With Ex command and Visual selection (custom text object)
- Patch 7.3.879: Properly abort Ex command in Operator-pending mode

STARTTEST
:so small.vim
:set enc=utf-8 nocp viminfo+=nviminfo
:
:" User functions
:function MoveToCap()[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Visual mode and operators[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 211 lines, 3837 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTkv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '
:set selection=exclusive
0v3l^[gvcxxx^[
:$put ='---'
:/^start:/+2,$w! test.out
:q!
ENDTEST

start:

apple banana cherry

line 1 line 1
line 2 line 2
line 3 line 3
line 4 line 4
line 5 line 5
line 6 line 6[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf-8 nocp viminfo+=nviminfo
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '
:set selection=exclusive
0v3l^[gvcxxx^[
:$put ='---'
:/^start:/+2,$w! test.out
:q!
ENDTEST

start:

apple banana cherry

line 1 line 1
line 2 line 2
line 3 line 3
line 4 line 4
line 5 line 5
line 6 line 6[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" User functions
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction MoveToCap()
[?25l[?1c
:  [?25h[?0c:  call search('\u', 'W')

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'[?25h[?0c[?25l[?1c:[?25h[?0cfunction SelectInCaps()
[?25l[?1c
:  [?25h[?0c:  let [line1, col1] = searchpos('\u', 'bcnW')

[?25l[?1c:  [?25h[?0c:  let [line2, col2] = searchpos('.\u', 'nW')

[?25l[?1c:  [?25h[?0c:  call setpos("'<", [0, line1, col1, 0])

[?25l[?1c:  [?25h[?0c:  call setpos("'>", [0, line2, col2, 0])

[?25l[?1c:  [?25h[?0c:  normal! gv

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual modes followed by operator
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^apple
[?25l[?1c[?25h[?0ca[?25l[?1c-- VISUAL --[?25h[?0c[?25l[?1cp[?25h[?0c[?25l[?1cle banana cherry[?25h[?0c[?25l[?1c banana cherry[?25h[?0c [?25l[?1cbanan-- VISUAL --[?25h[?0c[?25l[?1c
a  cherry[?25h[?0c[?25l[?1cy[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^line 1
[?25l[?1c[?25h[?0c[?25l[?1cline 1 line 1 -- VISUAL LINE --[?25h[?0c[?25l[?1cINSERT --newline[?25h[?0c[?25l[?1c-- INSERT --newline[?25h[?0c[?25l[?1c
line 3 line 3 
line 4 line 4 


-- VISUAL LINE --[?25h[?0c[?25l[?1cline 5 line 5line 6 line 6xxxxxxxxxxxxx[?25h[?0c[?25l[?1cxxxxxxxxxxxxx
xxxxxxxxxxxxx[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^xxxx
[?25l[?1c[?25h[?0c[?25l[?1c


-- VISUAL BLOCK --[?25h[?0c[?25l[?1cx
[?25h[?0c[?25l[?1cx
x[?25h[?0c[?25l[?1cINSERT --  
  [?25h[?0c [?25l[?1c


-- INSERT --  
    [?25h[?0c [?25l[?1c
xxxx
    xxxx
xxxxxxxx
xxxxxxxxxxxxx
-- VISUAL BLOCK --[?25h[?0c[?25l[?1c
-- INSERT ------
    ----
xxxx----
xxxx----[?25h[?0c-[?25l[?1c-- INSERT ------------------[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual mode maps (movement and text object)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap W /\u/s-1<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Kiwi
[?25l[?1cKiwiRaspberryDateWatermelonPeach[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c/\u/s-1
Kiw[?25h[?0c[?25l[?1c
-- INSERT --NoRaspberryDateWatermelonPeach[?25h[?0co[?25l[?1c
-- INSERT --NoberryDateWatermelonPeach[?25h[?0coberry[?25l[?1cDateWat
-- VISUAL --[?25h[?0c[?25l[?1crmelonPeach[?25h[?0c[?25l[?1cach[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Jambu
[?25l[?1c
JambuRambutanBananaTangerineMango[?25h[?0cJa[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c:'<,'>call SelectInCaps()
Jamb[?25h[?0c[?25l[?1c
-- INSERT ---RambutanBananaTangerineMango[?25h[?0c-[?25l[?1c
-- INSERT ---tanBananaTangerineMango[?25h[?0c-[?25l[?1ctanBanana
-- VISUAL --[?25h[?0c[?25l[?1c
--angerineMango[?25h[?0ca[?25l[?1cgo[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Operator-pending mode maps (movement and text object)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap W /\u/<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap <Leader>W :<C-U>call MoveToCap()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Pineapple
[?25l[?1cPineappleQuinceLoganberryOrangeGrapefruitKiwiZ[?25h[?0c[?25l[?1c
/\u/
-QuinceLoganberryOrangeGrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---LoganberryOrangeGrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---GrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---Z[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Juniper
[?25l[?1c
JuniperDurianZ[?25h[?0c[?25l[?1c
:call MoveToCap()
Whavcre
[?25h[?0c[?25l[?1c:call MoveToCap()
Qhevna[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Lemon
[?25l[?1c
LemonNectarineZ[?25h[?0c[?25l[?1c
:call SelectInCaps()
[?25h[?0c[?25l[?1cLemonLemonNectarineZ
Lemo[?25h[?0cn[?25l[?1c:call SelectInCaps()
NewNectarineZ[?25h[?0cwNecta[?25l[?1c
:call SelectInCaps()
wZ[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^zzzz
[?25l[?1czzzz[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noma | let v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1cE21: Cannot make changes, 'modifiable' is off[?25h[?0c[?25l[?1c:[?25h[?0cset ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed'
[?25l[?1c
ok[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset noma | let v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok'
[?25l[?1c
ok[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: replace last line'
[?25l[?1c
characterwise visual mode: replace last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0clet @" = 'x'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v:errmsg='.v:errmsg
[?25l[?1c
v:errmsg=[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete middle line'
[?25l[?1c
characterwise visual mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- VISUAL --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cb
c
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete middle two line'
[?25l[?1c
characterwise visual mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- VISUAL --[?25h[?0c[?25l[?1ca 
[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='characterwise visual mode: delete last line'
[?25l[?1c
characterwise visual mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete last two line'
[?25l[?1c
characterwise visual mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1cb 
[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Select mode maps
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>End> <End>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>Down> <Down>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>Del> <Del>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete middle line'
[?25l[?1c
characterwise select mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- SELECT --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cb
c
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete middle two line'
[?25l[?1c
characterwise select mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- SELECT --[?25h[?0c[?25l[?1ca 
[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='characterwise select mode: delete last line'
[?25l[?1c
characterwise select mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c
-- SELECT --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete last two line'
[?25l[?1c
characterwise select mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c

-- SELECT --[?25h[?0c[?25l[?1cb 
[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete middle line'
[?25l[?1c
linewise select mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1ca 


-- SELECT LINE --[?25h[?0c[?25l[?1cbc
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete middle two line'
[?25l[?1c
linewise select mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1ca 


-- SELECT LINE --[?25h[?0c[?25l[?1ca
b 
[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='linewise select mode: delete last line'
[?25l[?1c
linewise select mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1cc 
-- SELECT LINE --[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete last two line'
[?25l[?1c
linewise select mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1cb 

-- SELECT LINE --[?25h[?0c[?25l[?1cb
c 
[?25h[?0c[?25l[?1c~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='v_p: replace last character with line register at middle line'
[?25l[?1c
v_p: replace last character with line register at middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0cbb[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1cccc
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at middle line selecting

newline'
[?25l[?1clinewise select mode: delete middle two line
c---linewise select mode: delete last line
ab
---linewise select mode: delete last two line
a---v_p: replace last character with line register at middle line
aaabbaaaccc
---v_p: replace last character with line register at middle line selecting newline[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0cbb[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1c
ccc
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at last line'
[?25l[?1c
v_p: replace last character with line register at last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0ccc[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at last line selecting n

ewline'
[?25l[?1caaa
bbaaaccc
---v_p: replace last character with line register at middle line selecting newline
aaabbaaa
ccc
---v_p: replace last character with line register at last line
aaabbb
ccaaa---v_p: replace last character with line register at last line selecting newline[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0ccc[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='gv in exclusive select mode after operation'
[?25l[?1c
gv in exclusive select mode after operation[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='zzz '
[?25l[?1c
zzz[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='äà '
[?25l[?1c
äÃ[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1czzz[?25h[?0c[?25l[?1c
zzz[?25h[?0c
[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cäÃ[?25h[?0c[?25l[?1c
zzz[?25h[?0c[?25l[?1c
-- VISUAL --zzz[?25h[?0c[?25l[?1cINSERTxxx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='gv in exclusive select mode without operation'
[?25l[?1c
gv in exclusive select mode without operation[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='zzz '
[?25l[?1c
zzz[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1czzz[?25h[?0c[?25l[?1c
zzz[?25h[?0c[?25l[?1c
-- VISUAL --zzz[?25h[?0c[?25l[?1cINSERTxxx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c/^start:/+2,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 123L, 1328C written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test94 = test61; then \
#	  if diff test.out test94.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test94.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test94.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test95.failed test.ok test.out X* viminfo
cp test95.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test95.in
[?25h[?8c[?25h[?0c[?25l[?1c"test95.in" 141 lines, 5827 charactersTest for regexp patterns with multi-byte support, using utf-8.
See test64 for the non-multi-byte tests.

A pattern that gives the expected result produces OK, so that we know it was
actually tried.

STARTTEST
:so small.vim
:so mbyte.vim
:set nocp encoding=utf-8 viminfo+=nviminfo nomore
:" tl is a List of Lists with:
:"    2: test auto/old/new  0: test auto/old  1: test auto/new
:"    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 = []
:
:"""" Multi-byte character tests. These will fail unless vim is compiled
:"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for regexp patterns with multi-byte support, using utf-8.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 131 lines, 5590 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:endif
:      endfor
:      unlet i
:    endif
:  endfor
:endfor
:unlet t tl e l
:
:" check that 'ambiwidth' does not change the meaning of \p
:set regexpengine=1 ambiwidth=single
:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=1 ambiwidth=double
:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=single
:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=double
:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
:
:/\%#=1^Results/,$wq! test.out
ENDTEST

Results of test95:
~                                                                               [?25h[?0c
[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp encoding=utf-8 viminfo+=nviminfo nomore
[?25l[?1c:endif
:      endfor
:      unlet i
:    endif
:  endfor
:endfor
:unlet t tl e l
:
:" check that 'ambiwidth' does not change the meaning of \p
:set regexpengine=1 ambiwidth=single
:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=1 ambiwidth=double
:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=single
:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=double
:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
:
:/\%#=1^Results/,$wq! test.out
ENDTEST

Results of test95:
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c" tl is a List of Lists with:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    2: test auto/old/new  0: test auto/old  1: test auto/new
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp pattern
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    text to test the pattern on
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected match (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 1 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 2 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    etc.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  When there is no match use only the first two items.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Multi-byte character tests. These will fail unless vim is compiled
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[=a=]]\+', 'ddaãâbcd', 'aãâ'])^I^I^I^I^I^I^I^I" equivalence

classes
[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0ccall add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oij

asoifjos'])
[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0ccall add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna']

)[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" this is not a normal "i" but 0xec
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p\+', 'ìa', 'ìa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p*', 'aあ', 'aあ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test recognition of some character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\i\+', '&*¨xx ', 'xx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\f\+', '&*<9f>fname ', 'fname'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test composing character matching
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.ม', 'xมม่x yมy', 'yม'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.มม่', 'xมม่x yมy', 'xมม่'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\u05b9\u05bb", " y\u05b9 x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9\u05bb", " y\u05bb x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "a", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ca", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "a\u0300", "ca\u0300t", "a\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\%C', "ca\u0300t", "a\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ca\%C', "ca\u0300t", "ca\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ca\%Ct', "ca\u0300t", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test \Z
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ú\Z', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'יהוה\Z', 'יהוה', 'יהוה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְהווָה\Z', 'יהוה', 'יהוה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'יהוה\Z', 'ייְהווָה', 'ייְהווָה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְהווָה\Z', 'ייְהווָה', 'ייְהווָה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְ\Z', 'ווְייַ', 'ייַ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200dxy", "ק\u200dx"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200dx\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200dx\\Z", "xק\u200dxy", "ק\u200dx"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\\Z", "xyz"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\\Z\u05b9", "xyz"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\\Z", "xy\u05b9z", "y\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\\Z\u05b9", "xy\u05b9z", "y\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\u05b9\\+\\Z", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\\Z\u05b9\\+", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Combining different tests and features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^[=a=]]\+', 'ddaãâbcd', 'dd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let text = t[2]

[?25l[?1c:  [?25h[?0c:  let matchidx = 3

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    try

[?25l[?1c:      [?25h[?0c:      let l = matchlist(text, pat)

[?25l[?1c:      [?25h[?0c:    catch

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l[?1c:      [?25h[?0c:    endtry

[?25l[?1c:    [?25h[?0c:" check the match itself

[?25l[?1c:    [?25h[?0c:    if len(l) == 0 && len(t) > matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    elseif len(l) > 0 && len(t) == matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l[?1c:      [?25h[?0c:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if len(l) > 0

[?25l[?1c:      [?25h[?0c:"   check all the nine submatches

[?25l[?1c:      [?25h[?0c:      for i in range(1, 9)

[?25l[?1c:[?25h[?0c:        if len(t) <= matchidx + i

[?25l[?1c:[?25h[?0c:          let e = ''

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          let e = t[matchidx + i]

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:        if l[i] != e

[?25l[?1c:[?25h[?0c:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:      endfor

[?25l[?1c:      [?25h[?0c:      unlet i

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl e l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" check that 'ambiwidth' does not change the meaning of \p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset regexpengine=1 ambiwidth=single
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 1 ambi single: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=1 ambiwidth=double
[?25l[?1cOK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 1 ambi double: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=2 ambiwidth=single
[?25l[?1cOK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
eng 1 ambi double: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 2 ambi single: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=2 ambiwidth=double
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
eng 1 ambi double: 0
eng 2 ambi single: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 2 ambi double: 0[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/\%#=1^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 140L, 2022C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test95 = test61; then \
#	  if diff test.out test95.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test95.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test95.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test98.failed test.ok test.out X* viminfo
cp test98.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test98.in
[?25h[?8c[?25h[?0c[?25l[?1c"test98.in" 43 lines, 908 charactersTest for 'scrollbind' causing an unexpected scroll of one of the windows.
STARTTEST
:so small.vim
:" We don't want the status line to cause problems:
:set laststatus=0
:let g:totalLines = &lines * 20
:let middle = g:totalLines / 2
:wincmd n
:wincmd o
:for i in range(1, g:totalLines)
:    call setline(i, 'LINE ' . i)
:endfor
:exe string(middle)
:normal zt
:normal M
:aboveleft vert new
:for i in range(1, g:totalLines)
:    call setline(i, 'line ' . i)
:endfor
:exe string(middle)
:normal zt
:normal M
:" Execute the following two command at once to reproduce the problem.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'scrollbind' causing an unexpected scroll of one of the windows.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 791 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:setl scb | wincmd p
:setl scb
:wincmd w
:let topLineLeft = line('w0')
:wincmd p
:let topLineRight = line('w0')
:setl noscrollbind
:wincmd p
:setl noscrollbind
:q!
:%del _
:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight))
:w! test.out
:brewind
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" We don't want the status line to cause problems:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset laststatus=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:totalLines = &lines * 20
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet middle = g:totalLines / 2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd n
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cwincmd o
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(1, g:totalLines)
[?25l[?1c
:  [?25h[?0c:    call setline(i, 'LINE ' . i)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cLINE 1
LINE 2
LINE 3LINE 4LINE 5LINE 6LINE 7LINE 8LINE 9LINE 10LINE 11LINE 12LINE 13LINE 14LINE 15LINE 16LINE 17LINE 18LINE 19LINE 20LINE 21LINE 22LINE 23[?25h[?0c[?25l[?1c:[?25h[?0cexe string(middle)
[?25l[?1cLINE 229
LINE 230
LINE 231
LINE 232
LINE 233
LINE 234
LINE 235
LINE 236
LINE 237
LINE 238
LINE 239
LINE 240
LINE 241
LINE 242
LINE 243
LINE 244
LINE 245
LINE 246
LINE 247
LINE 248
LINE 249
LINE 250
LINE 251[?25h[?0c[?25l[?1c:[?25h[?0cnormal zt
[?25l[?1cLINE 252
LINE 253
LINE 254
LINE 255
LINE 256
LINE 257
LINE 258
LINE 259
LINE 260
LINE 261
LINE 262[?25h[?0c[?25l[?1c:[?25h[?0cnormal M
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caboveleft vert new
[?25l[?1c        |||||||||||||||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       LINE 240LINE 241LINE 242LINE 243LINE 244LINE 245LINE 246LINE 247LINE 248LINE 249LINE 250LINE 251LINE 252LINE 253LINE 254LINE 255LINE 256LINE 257LINE 258LINE 259LINE 260LINE 261LINE 262[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(1, g:totalLines)
[?25l[?1c
:  [?25h[?0c:    call setline(i, 'line ' . i)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cline 1|
line 2|
line 3                                  
line 4                                  
line 5                                  
line 6                                  
line 7                                  
line 8                                  
line 9                                  
line 10                                 
line 11                                 
line 12                                 
line 13                                 
line 14                                 
line 15                                 
line 16                                 
line 17                                 
line 18                                 
line 19                                 
line 20                                 
line 21                                 
line 22                                 
line 23                                 LINE 240LINE 241[?25h[?0c[?25l[?1c:[?25h[?0cexe string(middle)
[?25l[?1c2293023123223323423523623723823924024124224324424524624748495051[?25h[?0c[?25l[?1c:[?25h[?0cnormal zt
[?25l[?1cline 240                                
line 241                                
line 242                                
line 243                                
line 244                                
line 245                                
line 246                                
line 247                                
line 248                                
line 249                                
line 250                                
line 251                                
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        line 252
line 253
line 254
line 255
line 256
line 257
line 258
line 259
line 260
line 261
line 262[?25h[?0c[?25l[?1c:[?25h[?0cnormal M
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Execute the following two command at once to reproduce the problem.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl scb | wincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl scb
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet topLineLeft = line('w0')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet topLineRight = line('w0')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1cLINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINE[?25h[?0c[?25l[?1c:[?25h[?0c%del _
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, 'Difference between the top lines (left - right): ' . string(t

opLineLeft - topLineRight))
[?25l[?1cDifference between the top lines (left - right): 0[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 51 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test98.in" 43 lines, 908 characters:normal M:" Execute the following two command at once to reproduce the problem.:setl scb | wincmd p:setl scb:wincmd w:let topLineLeft = line('w0'):wincmd p:let topLineRight = line('w0'):setl noscrollbind:wincmd p:setl noscrollbind:q!:%del _:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight)):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test98 = test61; then \
#	  if diff test.out test98.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test98.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test98.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test99.failed test.ok test.out X* viminfo
cp test99.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test99.in
[?25h[?8c[?25h[?0c[?25l[?1c"test99.in" 69 lines, 1400 charactersTests for regexp with multi-byte encoding and various magic settings.
Test matchstr() with a count and multi-byte chars.
See test44 for exactly the same test with re=1.

STARTTEST
:so mbyte.vim
:set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
:set re=2
/^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
f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with multi-byte encoding and various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 43 lines, 931 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
: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
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
[?25l[?1c:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
: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
:[?25h[?0c" Test \%u, [\u] and friends
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%u20ac
[?25l[?1c
/[?25h[?0c[\u4f7f\u5929]\+
[?25l[?1c
/[?25h[?0c\%U12345678
[?25l[?1c
/[?25h[?0c[\U1234abcd\u1234\uabcd]
[?25l[?1c
/[?25h[?0c\%d21879b
[?25l[?1c
:[?25h[?0c" Test backwards search from a multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cx
[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" l Test what 7.3.192 fixed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^l
[?25l[?1c
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
#@/bin/sh -c "if test -f test.out -a test99 = test61; then \
#	  if diff test.out test99.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test99.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test99.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test103.failed test.ok test.out X* viminfo
cp test103.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test103.in
[?25h[?8c[?25h[?0c[?25l[?1c"test103.in" 37 lines, 823 charactersTest for visual mode not being reset causing E315 error.
STARTTEST
:so small.vim
:enew
:let g:msg="Everything's fine."
:function! TriggerTheProblem()
:" At this point there is no visual selection because :call reset it.
:" Let's restore the selection:
:normal gv
:'<,'>del _
:try
:exe "normal \<Esc>"
:catch /^Vim\%((\a\+)\)\=:E315/
:echom 'Snap! E315 error!'
:let g:msg='Snap! E315 error!'
:endtry
:endfunction
:enew
:setl buftype=nofile
:call append(line('$'), 'Delete this line.')
:"
:"
:" NOTE: this has to be done by a call to a function because executing :del the[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for visual mode not being reset causing E315 error.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 723 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"ex-way will require the colon operator which resets the visual mode thus
:"preventing the problem:
:"
GV:call TriggerTheProblem()
:%del _
:call append(line('$'), g:msg)
:w! test.out
:brewind
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cenew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet g:msg="Everything's fine."
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! TriggerTheProblem()
[?25l[?1c
:  [?25h[?0c:^I" At this point there is no visual selection because :call reset it.

[?25l[?1c:  [?25h[?0c:^I" Let's restore the selection:

[?25l[?1c:  [?25h[?0c:^Inormal gv

[?25l[?1c:  [?25h[?0c:^I'<,'>del _

[?25l[?1c:  [?25h[?0c:^Itry

[?25l[?1c:    [?25h[?0c:^I^Iexe "normal \<Esc>"

[?25l[?1c:    [?25h[?0c:^Icatch /^Vim\%((\a\+)\)\=:E315/

[?25l[?1c:    [?25h[?0c:^I^Iechom 'Snap! E315 error!'

[?25l[?1c:    [?25h[?0c:^I^Ilet g:msg='Snap! E315 error!'

[?25l[?1c:    [?25h[?0c:^Iendtry

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cenew
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl buftype=nofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), 'Delete this line.')
[?25l[?1cDelete this line.[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" NOTE: this has to be done by a call to a function because executing :del the
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"       ex-way will require the colon operator which resets the visual mode th

us[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"       preventing the problem:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c
[?25l[?1cDelete this line. 
[?25h[?0c[?25l[?1c:'<,'>[?25h[?0ccall TriggerTheProblem()
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c%del _
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), g:msg)
[?25l[?1cEverything's fine.[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 2 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test103.in" 37 lines, 823 characters:endtry
:endfunction:enew:setl buftype=nofile:call append(line('$'), 'Delete this line.'):":":" NOTE: this has to be done by a call to a function because executing :del the:"       ex-way will require the colon operator which resets the visual mode thus:"       preventing the problem::"GV:call TriggerTheProblem():%del _:call append(line('$'), g:msg):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test103 = test61; then \
#	  if diff test.out test103.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test103.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test103.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test104.failed test.ok test.out X* viminfo
cp test104.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test104.in
[?25h[?8c[?25h[?0c[?25l[?1c"test104.in" 30 lines, 698 charactersTests for :let.  vim: set ft=vim ts=8 :

STARTTEST
:so small.vim
:set runtimepath+=./sautest
:" Test to not autoload when assigning.  It causes internal error.
:try
:  let Test104#numvar = function('tr')
:  $put ='OK: ' . string(Test104#numvar)
:catch
:  $put ='FAIL: ' . v:exception
:endtry
:let a = 1
:let b = 2
:for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0
== 1 ? "a" : "b"}']
:  try
:    redir => messages
:    execute 'let' letargs
:    redir END
:    $put ='OK:'
:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')
:  catch[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :let.  vim: set ft=vim ts=8 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 24 lines, 618 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:    $put ='FAIL: ' . v:exception
:    redir END
:  endtry
:endfor
:/^Results/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset runtimepath+=./sautest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test to not autoload when assigning.  It causes internal error.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  let Test104#numvar = function('tr')

[?25l[?1c:  [?25h[?0c:  $put ='OK: ' . string(Test104#numvar)

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:  $put ='FAIL: ' . v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c:catch
:  $put ='FAIL: ' . v:exception
:endtry
:let a = 1
:let b = 2
:for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0
== 1 ? "a" : "b"}']
:  try:    redir => messages
:    execute 'let' letargsEND$put ='OK:'$put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')
:  catch'FAIL: ' . v:exception  redir END
:  endtryendfor/^Results/,$wq! test.out
ENDTESTResults of test104:
OK: function('tr')[?25h[?0c[?25l[?1c
:[?25h[?0clet a = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b = 2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0

== 1 ? "a" : "b"}']
[?25l[?1c:  [?25h[?0c:  try

[?25l[?1c:    [?25h[?0c:    redir => messages

[?25l[?1c:    [?25h[?0c:    execute 'let' letargs

[?25l[?1ca#1

b#2

:    [?25h[?0c:    redir END

[?25l[?1c:    [?25h[?0c:    $put ='OK:'

[?25l[?1c:    [?25h[?0c:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')

[?25l[?1c:    [?25h[?0c:  catch

[?25l[?1c:    [?25h[?0c:    $put ='FAIL: ' . v:exception

[?25l[?1c:    [?25h[?0c:    redir END

[?25l[?1c:    [?25h[?0c:  endtry

[?25l[?1c:  [?25h[?0c:endfor

[?25l[?1cb#2

b#2

a#1

a#1

b#2

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 13 lines, 244 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test104 = test61; then \
#	  if diff test.out test104.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test104.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test104.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test107.failed test.ok test.out X* viminfo
cp test107.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test107.in
[?25h[?8c[?25h[?0c[?25l[?1c"test107.in" 38 lines, 717 charactersTests for adjusting window and contents     vim: set ft=vim :

STARTTEST
:so small.vim
:new
:call setline(1, range(1,256))
:let r=[]
:func! GetScreenStr(row)
:   let str = ""
:   for c in range(1,3)
:let str .= nr2char(screenchar(a:row, c))
:   endfor
:   return str
:endfunc
:
:exe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
:
:exe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for adjusting window and contents     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 32 lines, 628 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(r, [line("w0"), s3])
:
:exe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:"/^start:/,$wq! test.out
ENDTESTtest107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, range(1,256))
[?25l[?1c1
234567891011[+][?25h[?0c[?25l[?1c:[?25h[?0clet r=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc! GetScreenStr(row)
[?25l[?1c
:  [?25h[?0c:   let str = ""

[?25l[?1c:  [?25h[?0c:   for c in range(1,3)

[?25l[?1c:    [?25h[?0c:       let str .= nr2char(screenchar(a:row, c))

[?25l[?1c:    [?25h[?0c:   endfor

[?25l[?1c:  [?25h[?0c:   return str

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c1
2
3
4
5
6[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
[?25l[?1c[No Name] [+]                                                                   :let s3=GetScreenStr(1)test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
[?25l[?1c50
51
52
53
54
55
56
57
58
59
[No Name] [+]                                                                   :let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST

test107.in                                                                      [?25h[?0c[?25l[?1c

:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
[?25l[?1c59
60
61
62
63
64
65
66
67
68
[No Name] [+]                                                                   :let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST

test107.in                                                                      [?25h[?0c[?25l[?1c

:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c:wincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipeout!
[?25l[?1c::exe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
::exe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
:exe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
::wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:":/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0c$put=r
[?25l[?1c3 more linesstart:
[1, '1  ']
[50, '50 ']
[59, '59 ']3 more lines[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 4 lines, 42 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test107 = test61; then \
#	  if diff test.out test107.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test107.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test107.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test108.failed test.ok test.out X* viminfo
cp test108.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test108.in
[?25h[?8c[?25h[?0c[?25l[?1c"test108.in" 88 lines, 1329 charactersTests for backtrace debug commands.     vim: set ft=vim :

STARTTEST
:so small.vim
:lang mess C
:function! Foo()
:   let var1 = 1
:   let var2 = Bar(var1) + 9
:   return var2
:endfunction
:
:function! Bar(var)
:    let var1 = 2 + a:var
:    let var2 = Bazz(var1) + 4
:    return var2
:endfunction
:
:function! Bazz(var)
:    let var1 = 3 + a:var
:    let var3 = "another var"
:    return var1
:endfunction
:new[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for backtrace debug commands.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 83 lines, 1251 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTup
b
echo "fil is not frame or finish, it is file"
fil
echo "\n- relative backtrace movement\n"
fr -1
frame
fra +1
fram
echo "\n- go beyond limits does not crash\n"
fr 100
fra
frame -40
fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang mess C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Foo()
[?25l[?1c
:  [?25h[?0c:   let var1 = 1

[?25l[?1c:  [?25h[?0c:   let var2 = Bar(var1) + 9

[?25l[?1c:  [?25h[?0c:   return var2

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Bar(var)
[?25l[?1c
:  [?25h[?0c:    let var1 = 2 + a:var

[?25l[?1c:  [?25h[?0c:    let var2 = Bazz(var1) + 4

[?25l[?1c:  [?25h[?0c:    return var2

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Bazz(var)
[?25l[?1c
:  [?25h[?0c:    let var1 = 3 + a:var

[?25l[?1c:  [?25h[?0c:    let var3 = "another var"

[?25l[?1c:  [?25h[?0c:    return var1

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       echo "\n- final result 19:"
cont:0debuggreedy
:redir END$put =out
:w! test.out
:qa!ENDTESTtest108.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cdebuggreedy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdebug echo Foo()
[?25l[?1cEntering Debug mode.  Type "cont" to continue.

cmd: echo Foo()

>[?25h[?0cstep

[?25l[?1cfunction Foo

line 1: let var1 = 1

>[?25h[?0cstep

[?25l[?1cfunction Foo

line 2: let var2 = Bar(var1) + 9

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 1: let var1 = 2 + a:var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 2: let var2 = Bazz(var1) + 4

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 1: let var1 = 3 + a:var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho "- show backtrace:\n"

[?25l[?1c- show backtrace:

>[?25h[?0cbacktrace

[?25l[?1c  2 function Foo[2]

  1 Bar[2]

->0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho "\nshow variables on different levels:\n"

[?25l[?1c
show variables on different levels:

>[?25h[?0cecho var1

[?25l[?1c6
>[?25h[?0cup

[?25l[?1c>[?25h[?0cback

[?25l[?1c  2 function Foo[2]

->1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho var1

[?25l[?1c3
>[?25h[?0cu

[?25l[?1c>[?25h[?0cbt

[?25l[?1c->2 function Foo[2]

  1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho var1

[?25l[?1c1
>[?25h[?0cecho "\n- undefined vars:\n"

[?25l[?1c
- undefined vars:

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 3: return var1

>[?25h[?0cframe 2

[?25l[?1c>[?25h[?0cecho "undefined var3 on former level:"

[?25l[?1cundefined var3 on former level:

>[?25h[?0cecho var3

[?25l[?1cError detected while processing function Foo[2]..Bar[2]..Bazz:

line    3:

E121: Undefined variable: var3

E15: Invalid expression: var3

>[?25h[?0cfr 0

[?25l[?1c>[?25h[?0cecho "here var3 is defined with \"another var\":"

[?25l[?1chere var3 is defined with "another var":

>[?25h[?0cecho var3

[?25l[?1canother var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 3: End of function

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 3: return var2

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 3: End of function

>[?25h[?0cup

[?25l[?1c>[?25h[?0cecho "\nundefined var2 on former level"

[?25l[?1c
undefined var2 on former level

>[?25h[?0cecho var2

[?25l[?1cError detected while processing function Foo[2]..Bar:

line    3:

E121: Undefined variable: var2

E15: Invalid expression: var2

>[?25h[?0cdown

[?25l[?1c>[?25h[?0cecho "here var2 is defined with 10:"

[?25l[?1chere var2 is defined with 10:

>[?25h[?0cecho var2

[?25l[?1c10

>[?25h[?0cecho "\n- backtrace movements:\n"

[?25l[?1c
- backtrace movements:

>[?25h[?0cb

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cecho "\nnext command cannot go down, we are on bottom\n"

[?25l[?1c
next command cannot go down, we are on bottom

>[?25h[?0cdown

[?25l[?1cframe is zero

>[?25h[?0cup

[?25l[?1c>[?25h[?0cecho "\nnext command cannot go up, we are on top\n"

[?25l[?1c
next command cannot go up, we are on top

>[?25h[?0cup

[?25l[?1cframe at highest level: 1

>[?25h[?0cb

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cecho "fil is not frame or finish, it is file"

[?25l[?1cfil is not frame or finish, it is file

>[?25h[?0cfil

[?25l[?1c"[No Name]" --No lines in buffer--

>[?25h[?0cecho "\n- relative backtrace movement\n"

[?25l[?1c
- relative backtrace movement

>[?25h[?0cfr -1

[?25l[?1c>[?25h[?0cframe

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cfra +1

[?25l[?1c>[?25h[?0cfram

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cecho "\n- go beyond limits does not crash\n"

[?25l[?1c
- go beyond limits does not crash

>[?25h[?0cfr 100

[?25l[?1cframe at highest level: 1

>[?25h[?0cfra

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cframe -40

[?25l[?1cframe is zero

>[?25h[?0cfram

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cecho "\n- final result 19:"

[?25l[?1c
- final result 19:

>[?25h[?0ccont

[?25l[?1c19

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c0debuggreedy
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST

test108.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =out
[?25l[?1c83 more lines->1 function Foo[2]
  0 Barline 3: End of functionframe is zero  1 function Foo[2]->0 Barline 3: End of function- final result 19:19[+][?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 84 lines, 1390 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test108 = test61; then \
#	  if diff test.out test108.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test108.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test108.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_autocmd_option.failed test.ok test.out X* viminfo
cp test_autocmd_option.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autocmd_option.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_autocmd_option.in" 77 lines, 2954 charactersTest for option autocommand

STARTTEST
:so small.vim
:if !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! test.out | qa! | endif
:fu! AutoCommand(match)
:let c=g:testcase
:let item=remove(g:options, 0)
:let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Scope:
<%s>\n", item[0], item[1], item[2], item[3])
:let c.=printf("Autocmd Option: <%s>,", a:match)
:let c.=printf(" OldVal: <%s>,", v:option_old)
:let c.=printf(" NewVal: <%s>,", v:option_new)
:let c.=printf(" Scope: <%s>\n", v:option_type)
:call setreg('r', printf("%s\n%s", getreg('r'), c))
:endfu
:au OptionSet * :call AutoCommand(expand("<amatch>"))
:let g:testcase="1: Setting number option\n"
:let g:options=[['number', 0, 1, 'global']]
:set nu
:let g:testcase="2: Setting local number option\n"
:let g:options=[['number', 1, 0, 'local']][?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for option autocommand[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 2896 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let g:testcase="13: Setting option backspace through setbufvar()\n"
:let g:options=[['backup', '', '1', 'local']]
: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
:call setbufvar(1, '&l:bk', 1)
: "should trigger, use correct option name
:call setbufvar(1, '&backup', 1)
:let g:testcase="14: Setting number option using setwinvar\n"
:let g:options=[['number', 0, 1, 'local']]
:call setwinvar(0, '&number', 1)
:" Write register now, because next test shouldn't output anything.
:$put r
:let @r=''
:let g:testcase="\n15: Setting key option, shouldn't trigger\n"
:let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
:setlocal key=blah
:setlocal key=
:$put =g:testcase
:$put r
:/^dummy text/,$w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! 

test.out | qa! | endif
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"[?25h[?0c[?25l[?1c
:[?25h[?0cfu! AutoCommand(match)
[?25l[?1c
:  [?25h[?0c:^Ilet c=g:testcase

[?25l[?1c:  [?25h[?0c:       let item=remove(g:options, 0)

[?25l[?1c:  [?25h[?0c:       let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Sco

pe: <%s>\n", item[0], item[1], item[2], item[3])

[?25l[?1c:  [?25h[?0c:       let c.=printf("Autocmd Option: <%s>,", a:match)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" OldVal: <%s>,", v:option_old)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" NewVal: <%s>,", v:option_new)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" Scope: <%s>\n", v:option_type)

[?25l[?1c:  [?25h[?0c:       call setreg('r', printf("%s\n%s", getreg('r'), c))

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"
:let g:options=[['backup', '', '1', 'local']]
: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
:call setbufvar(1, '&l:bk', 1)
: "should trigger, use correct option name
:call setbufvar(1, '&backup', 1)
:let g:testcase="14: Setting number option using setwinvar\n"
:let g:options=[['number', 0, 1, 'local']]
:call setwinvar(0, '&number', 1)[?25h[?0c[?25l[?1c
:[?25h[?0cau OptionSet * :call AutoCommand(expand("<amatch>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="1: Setting number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"
     57 :let g:options=[['backup', '', '1', 'local']]
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
     59 :call setbufvar(1, '&l:bk', 1)
     60 : "should trigger, use correct option name
     61 :call setbufvar(1, '&backup', 1)
     62 :let g:testcase="14: Setting number option using setwinvar\n"
     63 :let g:options=[['number', 0, 1, 'local']]
     64 :call setwinvar(0, '&number', 1)
     65 :" Write register now, because next test shouldn't output anything.
     66 :$put r
     67 :let @r=''
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
     70 :setlocal key=blah
     71 :setlocal key=
     72 :$put =g:testcase
     73 :$put r
     74 :/^dummy text/,$w! test.out
     75 :qa!
     76 ENDTEST
     77 dummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="2: Setting local number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 1, 0, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal nonu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n":let g:options=[['backup', '', '1', 'local']]: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger:call setbufvar(1, '&l:bk', 1): "should trigger, use correct option name:call setbufvar(1, '&backup', 1):let g:testcase="14: Setting number option using setwinvar\n":let g:options=[['number', 0, 1, 'local']]:call setwinvar(0, '&number', 1):" Write register now, because next test shouldn't output anything.:$put r:let @r='':let g:testcase="\n15: Setting key option, shouldn't trigger\n":let g:options=[['key', 'invalid', 'invalid1', 'invalid']]:setlocal key=blah:setlocal key=:$put =g:testcase:$put r:/^dummy text/,$w! test.out:qa!ENDTESTdummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="3: Setting global number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nonu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="4: Setting local autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="5: Setting global autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="6: Setting global autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ai!
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c Should not print anything, use :noa
[?25l[?1cE492: Not an editor command: Should not print anything, use :noa[?25h[?0c[?25l[?1c:[?25h[?0cnoa :set nonu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="7: Setting several global list and number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list nu
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"$
     57 :let g:options=[['backup', '', '1', 'local']]$
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger$
     59 :call setbufvar(1, '&l:bk', 1)$
     60 : "should trigger, use correct option name$
     61 :call setbufvar(1, '&backup', 1)$
     62 :let g:testcase="14: Setting number option using setwinvar\n"$
     63 :let g:options=[['number', 0, 1, 'local']]$
     64 :call setwinvar(0, '&number', 1)$
     65 :" Write register now, because next test shouldn't output anything.$
     66 :$put r$
     67 :let @r=''$
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"$
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]$
     70 :setlocal key=blah$
     71 :setlocal key=$
     72 :$put =g:testcase$
     73 :$put r$
     74 :/^dummy text/,$w! test.out$
     75 :qa!$
     76 ENDTEST$
     77 dummy text$[?25h[?0c[?25l[?1c:[?25h[?0cnoa set nolist nonu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n":let g:options=[['backup', '', '1', 'local']]: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger:call setbufvar(1, '&l:bk', 1): "should trigger, use correct option name:call setbufvar(1, '&backup', 1):let g:testcase="14: Setting number option using setwinvar\n":let g:options=[['number', 0, 1, 'local']]:call setwinvar(0, '&number', 1):" Write register now, because next test shouldn't output anything.:$put r:let @r='':let g:testcase="\n15: Setting key option, shouldn't trigger\n":let g:options=[['key', 'invalid', 'invalid1', 'invalid']]:setlocal key=blah:setlocal key=:$put =g:testcase:$put r:/^dummy text/,$w! test.out:qa!ENDTESTdummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="8: Setting global acd\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autochdir', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal acd
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="9: Setting global autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="10: Setting local autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal ar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="11: Setting global autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal invar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="12: Setting option backspace through :let\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['backspace', '', 'eol,indent,start', 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet &bs="eol,indent,start"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="13: Setting option backspace through setbufvar()\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['backup', '', '1', 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c "try twice, first time, shouldn't trigger because option name is invalid, sec

ond time, it should trigger
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"[?25h[?0c[?25l[?1c
:[?25h[?0ccall setbufvar(1, '&l:bk', 1)
[?25l[?1cE355: Unknown option: l:bk[?25h[?0c[?25l[?1c:[?25h[?0c "should trigger, use correct option name
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setbufvar(1, '&backup', 1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="14: Setting number option using setwinvar\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setwinvar(0, '&number', 1)
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"
     57 :let g:options=[['backup', '', '1', 'local']]
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
     59 :call setbufvar(1, '&l:bk', 1)
     60 : "should trigger, use correct option name
     61 :call setbufvar(1, '&backup', 1)
     62 :let g:testcase="14: Setting number option using setwinvar\n"
     63 :let g:options=[['number', 0, 1, 'local']]
     64 :call setwinvar(0, '&number', 1)
     65 :" Write register now, because next test shouldn't output anything.
     66 :$put r
     67 :let @r=''
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
     70 :setlocal key=blah
     71 :setlocal key=
     72 :$put =g:testcase
     73 :$put r
     74 :/^dummy text/,$w! test.out
     75 :qa!
     76 ENDTEST
     77 dummy text[?25h[?0c[?25l[?1c:[?25h[?0c" Write register now, because next test shouldn't output anything.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put r
[?25l[?1c60 more lines117Autocmd Option: <autoread>, OldVal: <0>, NewVal: <1>, Scope: <global>11811910: Setting local autoread    120 Expected: Name: <autoread>, Oldval: <0>, NewVal: <1>, Scope: <local>121Autocmd Option: <autoread>, OldVal: <1>, NewVal: <1>, Scope: <local>12212311: Setting global autoread124Expected: Name: <autoread>, Oldval: <1>, NewVal: <0>, Scope: <global>125Autocmd Option: <autoread>, OldVal: <1>, NewVal: <0>, Scope: <global>12612712: Setting option backspace through :let128Expected: Name: <backspace>, Oldval: <>, NewVal: <eol,indent,start>, Scope: <global>129Autocmd Option: <backspace>, OldVal: <>, NewVal: <eol,indent,start>, Scope: <global>131313: Setting option backspace through setbufvar()13Expected: Name: <backup>, Oldval: <>, NewVal: <1>, Scope: <local>13Autocmd Option: <backup>, OldVal: <0>, NewVal: <1>, Scope: <local>131314: Setting number option using setwinvar13xpected: Name: <number>, Oldval: <0>, NewVal: <1>, Scope: <local>13Autocmd Option: <number>, OldVal: <0>, NewVal: <1>, Scope: <local>[?25h[?0c[?25l[?1c:[?25h[?0clet @r=''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="\n15: Setting key option, shouldn't trigger\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['key', 'invalid', 'invalid1', 'invalid']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal key=blah
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal key=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:testcase
[?25l[?1c    138 
    139 15: Setting key option, shouldn't trigger[?25h[?0c[?25l[?1c
:[?25h[?0c$put r
[?25l[?1c
    140 [?25h[?0c[?25l[?1c
:[?25h[?0c/^dummy text/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 64 lines, 2700 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_autocmd_option = test61; then \
#	  if diff test.out test_autocmd_option.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_autocmd_option.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autocmd_option.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autoformat_join.in
[?25h[?8c[?25h[?0c[?25l[?1c"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:[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for setting the '[,'] marks when joining lines.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 9 lines, 265 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^\t\t/
[?25l[?1c[?25h[?0c[?25l[?1cattamen consulite per voster honur.
Tua pulchra facies me fay planszer milies[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^This line/;'}-join
[?25l[?1cThis line.  Should be joined with the next line and with this line


~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet b=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='First test: Start/End '.string(a)
[?25l[?1cFirst test: Start/End '[0, 16, 1, 0]/[0, 17, 1, 0]'[?25h[?0c[?25l[?1c:[?25h[?0c$put ='Second test: Start/End '.string(b)
[?25l[?1cSecond test: Start/End '[0, 19, 11, 0]/[0, 19, 67, 0]'[?25h[?0c[?25l[?1c:[?25h[?0c/^\t\t/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 292 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_autoformat_join = test61; then \
#	  if diff test.out test_autoformat_join.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_autoformat_join.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autoformat_join.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_changelist.failed test.ok test.out X* viminfo
cp test_changelist.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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/eval.o eval.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_changelist.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_changelist.in" 22 lines, 288 charactersTest changelist position after splitting window
Set 'undolevels' to make changelist for sourced file

STARTTEST
:so small.vim
Gkylp:set ul=100
Gylp:set ul=100
gg
:vsplit
:try
:  normal g;
:  normal ggVGcpass^[
:catch
:  normal ggVGcfail^[
:finally
:  %w! test.out
:endtry
:qa!
ENDTEST

1
2
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest changelist position after splitting window[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/normal.o normal.c
[New File] 14 lines, 163 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c

[?25l[?1c11[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c22[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cvsplit
[?25l[?1c|
 window                                 |
Set 'undolevels' to make changelist for |
sourced file|
             |
STARTTEST       |
:so small.vim  |
Gkylp:set ul=100|
Gylp:set ul=100|
gg  |
:vsplit     |
:try                 |
:  normal g;|pass|
:catch  |
:  normal ggVGcfail^[|
:finally|
:  %w! test.out|
:endtry|
:qa!|
ENDTEST|
  |
test_changelist.in [+]                   Test changelist position after splitting windowSet 'undolevels' to make changelist forsourced fileSTARTTEST:so small.vimGkylp:set ul=100Gylp:set ul=100gg:vsplit:try:  normal g;:  normal ggVGcpass^[:catch:  normal ggVGcfail^[:finally:  %w! test.out:endtry:qa!ENDTESTtest_changelist.in [+]                 [?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  normal g;

[?25l[?1c:  [?25h[?0c:  normal ggVGcpass
[?25l[?1c21 fewer lines
:  

:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:  normal ggVGcfail

[?25l[?1c:  

:  [?25h[?0c:finally

[?25l[?1c:  [?25h[?0c:  %w! test.out

[?25l[?1c"test.out" [New File] 1 line, 5 characters written

:  [?25h[?0c:endtry
[?25l[?1cpass||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                          pass~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                         [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_changelist = test61; then \
#	  if diff test.out test_changelist.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_changelist.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_changelist.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_close_count.failed test.ok test.out X* viminfo
cp test_close_count.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_close_count.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_close_count.in" 153 lines, 2665 charactersTests for :[count]close! and :[count]hide     vim: set ft=vim :

STARTTEST
:so small.vim
:let tests = []
:for i in range(5)
:new
:endfor
:4wincmd w
:close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:$close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1wincmd w
:2close![?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :[count]close! and :[count]hide     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 41 lines, 749 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(tests, buffers)
:2wincmd w
:+1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(0, map(copy(tests), 'join(v:val, " ")'))
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:for i in range(5)
:new
:endfor
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:4wincmd w
:.hide[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cclose!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?25h[?0c[?25l[?1c


:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c-1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c+1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File]test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 7 lines, 39 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 15 4 25 27 5 27 5~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c"test_close_count.in" 153 lines, 2665 characters:2wincmd w
:+1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(0, map(copy(tests), 'join(v:val, " ")'))
:w:only!:b1ENDTESTSTARTTEST:let tests = []:for i in range(5):new:endfor:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers):4wincmd w:.hide:let buffers = [][?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 44 lines, 815 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:2wincmd w
:+hide
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new
:endfor
:1wincmd w
:$ hide
:let buffers = []
:windo call add(buffers, bufnr('%'))[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c.hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?25h[?0c[?25l[?1c


:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c-hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c+hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 7 lines, 39 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c13 12 11 10 9 113 12 11 9 112 11 9 112 11 9[+][?25h[?0c[?25l[?1c12 9
15 12 9
15 12[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0cw
[?25l[?1c"test.out" 15 lines, 106 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 15 4 25 27 5 27 513 12 11 10 9 113 12 11 9 112 11 9 112 11 912 915 12 9
15 12~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c:+hide:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w:only!:b1ENDTESTSTARTTEST
:let tests = []
:set hidden
:for i in range(5):new:endfor:1wincmd w:$ hide:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers)"test_close_count.in" line 93 of 153 --60%-- col 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 448 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:1wincmd w
:.+close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new
:endfor
:4wincmd w
^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$ hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$-1 close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c.+close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 15 lines, 106 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c[+][?25h[?0c[?25l[?1c15 12 915 120 19 18 17 16
20 19 18 16
20 18 16
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0cw
[?25l[?1c"test.out" 19 lines, 143 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5

13 12 11 10 9 1
13 12 11 9 1
12 11 9 1
12 11 9
12 9
15 12 9
15 12

20 19 18 17 16
20 19 18 16
20 18 16

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c:.+close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w:only!:b1ENDTESTSTARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new:endfor:4wincmd w
^Wc:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers)"test_close_count.in" line 121 of 153 --79%-- col 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 28 lines, 511 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST1^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
9^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1wincmd w
2^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:only!
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" line 19 of 19 --100%-- col 16 5 4 2 1
5 4 2 15 4 25 27 5 27 513 12 11 10 9 113 12 11 9 112 11 9 112 11 912 915 12 915 1220 19 18 17 1620 19 18 1620 18 16[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c25 24 23 21 124 23 21 124 23 2124 21[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 23 lines, 183 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_close_count = test61; then \
#	  if diff test.out test_close_count.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_close_count.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_close_count.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_comparators.failed test.ok test.out X* viminfo
cp test_comparators.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_comparators.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_comparators.in" 21 lines, 283 characters" Test for expression comparators.   vim: set ft=vim :


STARTTEST
:so small.vim
:try
:  let oldisident=&isident
:  set isident+=#
:  if 1 is#1
:    $put ='ok'
:  else
:    $put ='ng'
:  endif
:finally
:  let &isident=oldisident
:endtry
:"
:/^marker/+1,$wq! test.out
ENDTEST

marker
~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c" Test for expression comparators.   vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 200 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  let oldisident=&isident

[?25l[?1c:  [?25h[?0c:  set isident+=#

[?25l[?1c:  [?25h[?0c:  if 1 is#1

[?25l[?1c:    [?25h[?0c:    $put ='ok'

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    $put ='ng'

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:finally

[?25l[?1c:  [?25h[?0c:  let &isident=oldisident

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c" Test for expression comparators.   vim: set ft=vim :


STARTTEST
:so small.vim
:try
:  let oldisident=&isident
:  set isident+=#
:  if 1 is#1
:    $put ='ok'ok[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^marker/+1,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1 line, 3 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_comparators = test61; then \
#	  if diff test.out test_comparators.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_comparators.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_comparators.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_erasebackword.failed test.ok test.out X* viminfo
cp test_erasebackword.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_erasebackword.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_erasebackword.in" 19 lines, 427 charactersTest for erasing backword

STARTTEST
:so small.vim
:so mbyte.vim
:set encoding=utf-8
G
:/^test/,$w! test.out
:qa!
ENDTEST

test starts here:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for erasing backword[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 12 lines, 362 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest for erasing backword

STARTTEST
:so small.vim
:so mbyte.vim
:set encoding=utf-8
G
o wwwこんにちわ世界ワールドvim ^W^[
o wwwこんにちわ世界ワールドvim ^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^W^W^[
:/^test/,$w! test.out
:qa!
ENDTEST

test starts here:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c

[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1cド[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c/^test/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 111 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_erasebackword = test61; then \
#	  if diff test.out test_erasebackword.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_erasebackword.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_erasebackword.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_eval.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_eval.in" 247 lines, 6201 charactersTest for various eval features.   vim: set ft=vim :

Note: system clipboard is saved, changed and restored.

clipboard contents
something else

STARTTEST
:so small.vim
:set encoding=latin1
:set noswapfile
:lang C
:fun AppendRegContents(reg)
  call AppendRegParts(a:reg, getregtype(a:reg), getreg(a:reg), string(getreg(a:reg, 0, 1)), getreg(a:reg, 1), string(getreg(a:reg, 1, 1)))
:endfun
:fun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
  call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)', a:reg, a:type, a:cont, a:strcont, a:cont1, a:strcont1))
endfun
:command -nargs=? AR :call AppendRegContents(<q-args>)
:fun SetReg(...)
    call call('setreg', a:000)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for various eval features.   vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 233 lines, 6010 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=latin1
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun AppendRegContents(reg)
[?25l[?1c
:  [?25h[?0c  call AppendRegParts(a:reg, getregtype(a:reg), getreg(a:reg), string(getreg

(a:reg, 0, 1)), getreg(a:reg, 1), string(getreg(a:reg, 1, 1)))

[?25l[?1c:  [?25h[?0c:endfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n[?25h[?0c[?25l[?1c:[?25h[?0cfun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
[?25l[?1c
:  [?25h[?0c  call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)', a:re

g, a:type, a:cont, a:strcont, a:cont1, a:strcont1))

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n[?25h[?0c[?25l[?1c:[?25h[?0ccommand -nargs=? AR :call AppendRegContents(<q-args>)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun SetReg(...)
[?25l[?1c
:  [?25h[?0c    call call('setreg', a:000)

[?25l[?1c:  [?25h[?0c    call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))

[?25l[?1c:  [?25h[?0c    call AppendRegContents(a:1)

[?25l[?1c:  [?25h[?0c    if a:1 isnot# '='

[?25l[?1c:    [?25h[?0c        execute "silent normal! Go==\n==\e\"".a:1."P"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?25h[?0c[?25l[?1c:[?25h[?0cfun ErrExe(str)
[?25l[?1c
:  [?25h[?0c    call append('$', 'Executing '.a:str)

[?25l[?1c:  [?25h[?0c    try

[?25l[?1c:    [?25h[?0c        execute a:str

[?25l[?1c:    [?25h[?0c    catch

[?25l[?1c:    [?25h[?0c        $put =v:exception

[?25l[?1c:    [?25h[?0c    endtry

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?25h[?0c[?25l[?1c:[?25h[?0cfun Test()
[?25l[?1c
:  [?25h[?0c$put ='{{{1 let tests'

[?25l[?1c:  [?25h[?0clet @" = 'abc'

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @" = "abc\n"

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @" = "abc\<C-m>"

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @= = '"abc"'

[?25l[?1c:  [?25h[?0cAR =

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Basic setreg tests'

[?25l[?1c:  [?25h[?0ccall SetReg('a', 'abcA', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcB', 'v')

[?25l[?1c:  [?25h[?0ccall SetReg('c', 'abcC', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('d', 'abcD', 'V')

[?25l[?1c:  [?25h[?0ccall SetReg('e', 'abcE', 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('f', 'abcF', "\<C-v>")

[?25l[?1c:  [?25h[?0ccall SetReg('g', 'abcG', 'b10')

[?25l[?1c:  [?25h[?0ccall SetReg('h', 'abcH', "\<C-v>10")

[?25l[?1c:  [?25h[?0ccall SetReg('I', 'abcI')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending single lines with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAc', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAc2','c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBc', 'ca')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBb', 'ba')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBc2','ca')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBb2','b50a')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('C', 'abcCl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('C', 'abcCc', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('D', 'abcDb', 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('E', 'abcEb', 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('E', 'abcEl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('F', 'abcFc', 'c')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending NL with setreg()'

[?25l[?1c:  [?25h[?0ccall setreg('a', 'abcA2', 'c')

[?25l[?1c:  [?25h[?0ccall setreg('b', 'abcB2', 'v')

[?25l[?1c:  [?25h[?0ccall setreg('c', 'abcC2', 'l')

[?25l[?1c:  [?25h[?0ccall setreg('d', 'abcD2', 'V')

[?25l[?1c:  [?25h[?0ccall setreg('e', 'abcE2', 'b')

[?25l[?1c:  [?25h[?0ccall setreg('f', 'abcF2', "\<C-v>")

[?25l[?1c:  [?25h[?0ccall setreg('g', 'abcG2', 'b10')

[?25l[?1c:  [?25h[?0ccall setreg('h', 'abcH2', "\<C-v>10")

[?25l[?1c:  [?25h[?0ccall setreg('I', 'abcI2')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('A', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('B', "\n", 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('D', "\n", 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('E', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('F', "\n", 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Setting lists with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('a', ['abcA3'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB3'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('c', ['abcC3'], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('d', ['abcD3'])

[?25l[?1c:  [?25h[?0ccall SetReg('e', [1, 2, 'abc', 3])

[?25l[?1c:  [?25h[?0ccall SetReg('f', [1, 2, 3])

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending lists with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', ['abcA3c'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB3l'], 'la')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ['abcC3b'], 'lb')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ['abcD32'])

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('A', ['abcA32'])

[?25l[?1c:  [?25h[?0ccall SetReg('B', ['abcB3c'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ['abcC3l'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ['abcD3b'], 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending lists with NL with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', ["\n", 'abcA3l2'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('B', ["\n", 'abcB3c2'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ["\n", 'abcC3b2'], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ["\n", 'abcD3b50'],'b50')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Setting lists with NLs with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4

-4-2"])

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\na

bcB4c-4-2"], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\na

bcC4l-4-2"], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\na

bcD4b-4-2"], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4

b10-4\nabcE4b10-4-2"], 'b10')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Search and expressions'

[?25l[?1c:  [?25h[?0ccall SetReg('/', ['abc/'])

[?25l[?1c:  [?25h[?0ccall SetReg('/', ["abc/\n"])

[?25l[?1c:  [?25h[?0ccall SetReg('=', ['"abc/"'])

[?25l[?1c:  [?25h[?0ccall SetReg('=', ["\"abc/\n\""])

[?25l[?1c:  [?25h[?0c$put ='{{{1 System clipboard'

[?25l[?1c:  [?25h[?0cif has('clipboard')

[?25l[?1c:    [?25h[?0c" Save and restore system clipboard.

[?25l[?1c:    [?25h[?0c" If no connection to X-Server is possible, test should succeed.

[?25l[?1c:    [?25h[?0clet _clipreg = ['*', getreg('*'), getregtype('*')]

[?25l[?1c:    [?25h[?0clet _clipopt = &cb

[?25l[?1c:    [?25h[?0clet &cb='unnamed'

[?25l[?1c:    [?25h[?0c5y

[?25l[?1c:    [?25h[?0cAR *

[?25l[?1c:    [?25h[?0ctabdo :windo :echo "hi"

[?25l[?1c:    [?25h[?0c6y

[?25l[?1c:    [?25h[?0cAR *

[?25l[?1c:    [?25h[?0clet &cb=_clipopt

[?25l[?1c:    [?25h[?0ccall call('setreg', _clipreg)

[?25l[?1c:    [?25h[?0celse

[?25l[?1c:    [?25h[?0c  call AppendRegParts('*', 'V', "clipboard contents\n", "['clipboard conte

nts']", "clipboard contents\n", "['clipboard contents']")

[?25l[?1c:    [?25h[?0c  call AppendRegParts('*', 'V', "something else\n", "['something else']", 

"something else\n", "['something else']")

[?25l[?1c:    [?25h[?0cendif

[?25l[?1c:  [?25h[?0c$put ='{{{1 Errors'

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg()')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, 2, 3, 4)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg([], 2)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, {})')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, 2, [])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg("/", ["1", "2"])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg("=", ["1", "2"])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, ["", "", [], ""])')

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Test()
[?25l[?1c*: type V; value: something else^@ (['something else']), expr: something else^@
(['something else'])
{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)
Vim(call):E118: Too many arguments for function: setreg
Executing call setreg([], 2)
Vim(call):E730: using List as a String
Executing call setreg(1, {})
Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction SetReg
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction AppendRegContents
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction ErrExe
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction Test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelcommand AR
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name not starting with capital
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! g:test()

[?25l[?1c:  [?25h[?0c:echo "test"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)8: Too many arguments for function: setreg[], 2)730: using List as a String1, {}1Dictionary as a String2, [])0List as a String"/", ["1", "2"])883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])Vim(call):E730: using List as a String
Vim(function):E128: Function name must start with a capital or "s:": g:test()
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name includes a colon
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! b:test()

[?25l[?1c:  [?25h[?0c:echo "test"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)Vim(function):E128: Function name must start with a capital or "s:": b:test()[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name folowed by #
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! test2() "#

[?25l[?1c:  [?25h[?0c:echo "test2"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1cExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)
Vim(call):E118: Too many arguments for function: setreg
Executing call setreg([], 2)Vim(call):E730: using List as a String
Executing call setreg(1, {})Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a Stringfunction):E128: Function name must start with a capital or "s:": g:test()btest2() "#[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name starting with/without "g:", buffer-local funcref.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! g:Foo(n)
[?25l[?1c
:  [?25h[?0c:  $put ='called Foo(' . a:n . ')'

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg[?25h[?0c[?25l[?1c
:[?25h[?0clet b:my_func = function('Foo')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall b:my_func(1)
[?25l[?1c
called Foo(1)[?25h[?0c[?25l[?1c
:[?25h[?0cecho g:Foo(2)
[?25l[?1c0
called Foo(2)[?25h[?0c[?25l[?1c
:[?25h[?0cecho Foo(3)
[?25l[?1c0
called Foo(3)[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" script-local function used in Funcref must exist.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso test_eval_func.vim
[?25l[?1cs:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Using $ instead of '$' must give an error
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c: call append($, 'foobar')

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1cExecuting call setreg(1, {})
Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a Stringfunction):E128: Function name must start with a capital or "s:": g:test()btest2() "#
called Foo(123
s:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1func Bar exists: 1
Vim(call):E116: Invalid arguments for function append[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='{{{1 getcurpos/setpos'
[?25l[?1c
{{{1 getcurpos/setpos[?25h[?0c[?25l[?1c
/[?25h[?0c^012345678
[?25l[?1csearch hit BOTTOM, continuing at TOP:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:
{{{1 let tests
": type v; value: abc (['abc']), expr: abc (['abc'])
": type V; value: abc^@ (['abc']), expr: abc^@ (['abc'])
": type V; value: abc^M^@ (['abc^M']), expr: abc^M^@ (['abc^M'])
=: type v; value: abc (['abc']), expr: "abc" (['"abc"'])
{{{1 Basic setreg tests
{{{2 setreg('a', 'abcA', 'c')
a: type v; value: abcA (['abcA']), expr: abcA (['abcA'])
search hit BOTTOM, continuing at TOP[?25h[?0c012345[?25l[?1c:[?25h[?0clet sp = getcurpos()
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0ccall setpos('.', sp)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put
[?25l[?1cExecuting call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
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:": b:test()
Vim(function):E128: Function name must start with a capital or "s:": test2() "#
called Foo(1)
called Foo(2)
called Foo(3)
s:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1
Vim(call):E116: Invalid arguments for function append
{{{1 getcurpos/setpos
6[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" substring and variable name
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet str = 'abcdef'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet n = 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[n:]
[?25l[?1c
def[?25h[?0c[?25l[?1c
:[?25h[?0c$put =str[:n]
[?25l[?1c
abcd[?25h[?0c[?25l[?1c
:[?25h[?0c$put =str[n:n]
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0cunlet n
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet nn = 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[nn:]
[?25l[?1cdef
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put =str[:nn]
[?25l[?1cabcd[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[nn:nn]
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0cunlet nn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:nn = 4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[b:nn:]
[?25l[?1cef
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put =str[:b:nn]
[?25l[?1cabcde[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[b:nn:b:nn]
[?25l[?1c
e[?25h[?0c[?25l[?1c
:[?25h[?0cunlet b:nn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/+1,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 362 lines, 11279 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_eval = test61; then \
#	  if diff test.out test_eval.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_eval.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_eval.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_fixeol.failed test.ok test.out X* viminfo
cp test_fixeol.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_fixeol.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_fixeol.in" 40 lines, 780 charactersTests for 'fixeol'vim: set ft=vim :

STARTTEST
:" use Unix fileformat for consistency
:set ff=unix
:enew!
awith eol^[:w! XXEol
:enew!
:set noeol nofixeol
awithout eol^[:w! XXNoEol
:set eol fixeol
:bwipe XXEol XXNoEol
:"
:" try editing files with 'fixeol' disabled
:e! XXEol
ostays eol^[:set nofixeol
:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol
:w! XXTestNoEol
:bwipe XXEol XXNoEol XXTestEol XXTestNoEol
:set fixeol[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'fixeol'vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 698 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" Append "END" to each file so that we can see what the last written char was.
ggdGaEND^[:w >>XXEol
:w >>XXNoEol
:w >>XXTestEol
:w >>XXTestNoEol
:"
:" Concatenate the results
:e! test.out
a0^[:$r XXEol
:$r XXNoEol
Go1^[:$r XXTestEol
:$r XXTestNoEol
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
2 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol:w! XXTestNoEol:bwipe XXEol XXNoEol XXTestEol XXTestNoEol:set fixeol:":" Append "END" to each file so that we can see what the last written char was.ggdGaEND^[:w >>XXEol:w >>XXNoEol:w >>XXTestEol:w >>XXTestNoEol:":" Concatenate the results:e! test.outa0^[:$r XXEol:$r XXNoEolGo1^[:$r XXTestEol:$r XXTestNoEol:w:qa!ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0c" try editing files with 'fixeol' disabled
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" 1 line, 9 characterswith eol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c
stays eol[?25h[?0c[?25l[?1c:[?25h[?0cset nofixeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! XXTestEol
[?25l[?1c"XXTestEol" [New File] 2 lines, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXNoEol
[?25l[?1c"XXNoEol" [Incomplete last line] 1 line, 11 charactersout eol
~                                                                               [?25h[?0c[?25l[?1c
stays without[?25h[?0c[?25l[?1c:[?25h[?0cset nofixeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! XXTestNoEol
[?25l[?1c"XXTestNoEol" [New File][Incomplete last line] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol XXNoEol XXTestEol XXTestNoEol
[?25l[?1c"test_fixeol.in" 40 lines, 780 characters

4 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fixeol
[?25l[?1c:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol:w! XXTestNoEol:bwipe XXEol XXNoEol XXTestEol XXTestNoEol:set fixeol:":" Append "END" to each file so that we can see what the last written char was.ggdGaEND^[:w >>XXEol:w >>XXNoEol:w >>XXTestEol:w >>XXTestNoEol:":" Concatenate the results:e! test.outa0^[:$r XXEol:$r XXNoEolGo1^[:$r XXTestEol:$r XXTestNoEol:w:qa!ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Append "END" to each file so that we can see what the last written char was.
[?25l[?1c[?25h[?0c[?25l[?1cTests for 'fixeol'vim: set ft=vim :

STARTTEST
:" use Unix fileformat for consistency
:set ff=unix
:enew!
awith eol^[:w! XXEol
:enew!
:set noeol nofixeol
awithout eol^[:w! XXNoEol
:set eol fixeol
:bwipe XXEol XXNoEol
:"
:" try editing files with 'fixeol' disabled
:e! XXEol
ostays eol^[:set nofixeol[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cEND[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXEol
[?25l[?1c"XXEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXNoEol
[?25l[?1c"XXNoEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXTestEol
[?25l[?1c"XXTestEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXTestNoEol
[?25l[?1c"XXTestNoEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Concatenate the results
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File][?25h[?0c[?25l[?1c0[?25h[?0c[?25l[?1c:[?25h[?0c$r XXEol
[?25l[?1c"XXEol" 2 lines, 13 characterswith eolEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXNoEol
[?25l[?1c"XXNoEol" 1 line, 15 characterswithout eolEND[?25h[?0c[?25l[?1c
1[?25h[?0c[?25l[?1c:[?25h[?0c$r XXTestEol
[?25l[?1c"XXTestEol" 3 lines, 23 characterswith eolstays eolEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXTestNoEol
[?25l[?1c"XXTestNoEol" 2 lines, 29 characterswithout eolstays withoutEND[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 10 lines, 84 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_fixeol = test61; then \
#	  if diff test.out test_fixeol.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_fixeol.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_fixeol.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_getcwd.failed test.ok test.out X* viminfo
cp test_getcwd.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_getcwd.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_getcwd.in" 96 lines, 2374 charactersTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :

STARTTEST
:so small.vim
:" Do all test in a separate window to avoid E211 when we recursively
:" delete the Xtopdir directory during cleanup
:"
:" This will cause a few errors, do it silently.
:set visualbell
:set nocp viminfo+=nviminfo
:"
:" On windows a swapfile in Xtopdir prevents it from being cleaned up.
:set noswapfile
:"
:function! GetCwdInfo(win, tab)
: let tab_changed = 0
: let mod = ":t"
: if a:tab > 0 && a:tab != tabpagenr()
:   let tab_changed = 1
:   exec "tabnext " . a:tab
: endif
: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)
: if tab_changed[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 90 lines, 2273 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:wincmd W
:lcd Xdir2
:call add(r, GetCwdInfo(0, 0))
:wincmd W
:lcd Xdir3
:call add(r, GetCwdInfo(0, 0))
:call add(r, GetCwdInfo(bufwinnr("x"), 0))
:call add(r, GetCwdInfo(bufwinnr("y"), 0))
:call add(r, GetCwdInfo(bufwinnr("z"), 0))
:let tp_nr = tabpagenr()
:tabrewind
:call add(r, GetCwdInfo(3, tp_nr))
:call add(r, GetCwdInfo(2, tp_nr))
:call add(r, GetCwdInfo(1, tp_nr))
:"
:call writefile(r, test_out, "a")
:q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Do all test in a separate window to avoid E211 when we recursively
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" delete the Xtopdir directory during cleanup
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This will cause a few errors, do it silently.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" On windows a swapfile in Xtopdir prevents it from being cleaned up.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! GetCwdInfo(win, tab)
[?25l[?1c
:  [?25h[?0c: let tab_changed = 0

[?25l[?1c:  [?25h[?0c: let mod = ":t"

[?25l[?1c:  [?25h[?0c: if a:tab > 0 && a:tab != tabpagenr()

[?25l[?1c:    [?25h[?0c:   let tab_changed = 1

[?25l[?1c:    [?25h[?0c:   exec "tabnext " . a:tab

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)

[?25l[?1c:  [?25h[?0c: if tab_changed

[?25l[?1c:    [?25h[?0c:   tabprevious

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: if a:win == 0 && a:tab == 0

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir()

[?25l[?1c:    [?25h[?0c: elseif a:tab == 0

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(a:win), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir(a:win)

[?25l[?1c:    [?25h[?0c: else

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(a:win, a:tab), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir(a:win, a:tab)

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: return bufname . ' ' . dirname . ' ' . lflag

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:wincmd W
:lcd Xdir2
:call add(r, GetCwdInfo(0, 0))
:wincmd W
:lcd Xdir3
:call add(r, GetCwdInfo(0, 0))
:call add(r, GetCwdInfo(bufwinnr("x"), 0))
:call add(r, GetCwdInfo(bufwinnr("y"), 0))
:call add(r, GetCwdInfo(bufwinnr("z"), 0))
:let tp_nr = tabpagenr()
:tabrewind
:call add(r, GetCwdInfo(3, tp_nr))
:call add(r, GetCwdInfo(2, tp_nr))
:call add(r, GetCwdInfo(1, tp_nr))
:"
:call writefile(r, test_out, "a")
:q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST
[?25h[?0c[?25l[?1c

:[?25h[?0c" On windows a stale "Xtopdir" directory may exist, remove it so that
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" we start from a clean state.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xtopdir", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet r=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       test_getcwd.in                                                                  [?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet test_out = cwd . '/test.out'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xtopdir')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xtopdir
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/<<PKGBUILDDIR>>/src/vim-basic/testdir/test_getcwd.in[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir1')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir2')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir3')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew a
[?25l[?1c"a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-basic/testdir/test_getcwd.in             [?25h[?0c[?25l[?1c:[?25h[?0cnew b
[?25l[?1c"b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-basic/testdir/test_getcwd.in             [?25h[?0c[?25l[?1c:[?25h[?0cnew c
[?25l[?1c"c" [New File]~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-basic/testdir/test_getcwd.in             [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1cc                                                                               a                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir1
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/Xdir1/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/b/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/a[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                             b                                                                               a                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                                               b                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir3
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/Xdir3/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/b/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/a[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("a"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("b"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("c"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                                               b                                                             a                                                             /<<PKGBUILDDIR>>/src/vim-basic/testdir/test_getcwd.in             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("a"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("b"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("c"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew x
[?25l[?1c"x" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  x                                               X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew y
[?25l[?1c"y" [New File]2y  Xy                                                                               x                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew z
[?25l[?1c"z" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               z                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               y                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               x                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1cz                                                                               x                                                                               x X[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cy                                                                               x                                                                               y X[?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir2
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/Xdir2/b/v/v/s/v/t/X/y  X/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/z/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/y/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/x[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cz                 Xz                                                                               y                                                                               x                                                             [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir3
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/Xdir3/b/v/v/s/v/t/X/z  X/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/z/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/y/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtopdir/x[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("x"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("y"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("z"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tp_nr = tabpagenr()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-basic/testdir/test_getcwd.in             [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(3, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-basic/testdir/test_getcwd.in             [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(2, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-basic/testdir/test_getcwd.in             [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(1, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-basic/testdir/test_getcwd.in             [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall writefile(r, test_out, "a")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c 4 [No Name]  3 z                                                               X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdirX/z  XXtopdir/cXtopdir/bXtopdir/a
[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xtopdir", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_getcwd = test61; then \
#	  if diff test.out test_getcwd.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_getcwd.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_getcwd.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_insertcount.failed test.ok test.out X* viminfo
cp test_insertcount.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_insertcount.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_insertcount.in" 14 lines, 204 charactersTests for repeating insert and replace.

STARTTEST
:so small.vim
:/Second
4gro
:/^First/,$wq! test.out
:" get here when failed and in Insert mode
^[:.wq! test.out
ENDTEST

First line
Second line
Last line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for repeating insert and replace.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 111 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/Second
[?25l[?1c[?25h[?0c[?25l[?1cooooecond line
ooo[?25h[?0c
Las[?25l[?1c:[?25h[?0c/^First/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/misc2.o misc2.c
[New File] 3 lines, 36 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_insertcount = test61; then \
#	  if diff test.out test_insertcount.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_insertcount.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_insertcount.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listchars.failed test.ok test.out X* viminfo
cp test_listchars.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listchars.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listchars.in" 54 lines, 705 charactersTests for 'listchars' display with 'list' and :list

STARTTEST
:so small.vim
:set ff=unix
:let g:lines = []
:function GetScreenCharsForLine(lnum)
:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val))'), '')
:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\<CR>"
:set listchars+=tab:>-,space:.,trail:<
:set list
:
/^start:/
:normal! jzt
GG
GG
GG
GG
GGH:
:set listchars-=trail:<[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'listchars' display with 'list' and :list[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 431 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTGG
GG
GG
GG
GG:
:put =g:lines
:'[,']w! test.out
ENDTEST[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:lines = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction GetScreenCharsForLine(lnum)
[?25l[?1c
:  [?25h[?0c:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val

))'), '')

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\<CR>"[?25h[?0c[?25l[?1c
:[?25h[?0cnnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))

\<CR>"
[?25l[?1c:endfunction[?25h[?0c[?25l[?1c
:[?25h[?0cset listchars+=tab:>-,space:.,trail:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list
[?25l[?1c$.<expr>.GG.":call..$
:set.$
:set.list$
:$$.jzt$
GG$
GG$
GG$
GG$
GGH:$
:set.$
GG$
GG$
GG$
GG$
GG:$
:put.$.$$
$[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c
start:$[?25h[?0c[?25l[?1c
:[?25h[?0cnormal! jzt
[?25l[?1c>-------aa>-----$
..bb>---<<$
...cccc><$
dd........ee<<>-$
<$
$
$
STARTTEST$
:set.listchars+=trail:<$
:set.nolist$
:$
/^start:/$
:redir!.>>.test.out$
:+1,$list$
:redir.END$
:q!$
ENDTEST$
$
start:$
..fff>--<<$
>-------gg>-----$
.....h>-$
iii<<<<><<$[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(1))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(2))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(3))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(4))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(5))
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset listchars-=trail:<
[?25l[?1c.....
.......>..[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(1))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(2))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(3))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(4))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(5))
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =g:lines
[?25l[?1c10 more >-------aa>-----$$
..bb>---<<$$
...cccc><$$
dd........ee<<>-$$
<$$
>-------aa>-----$$
..bb>---..$$
...cccc>.$$
dd........ee..>-$$
.$$10 more lines[?25h[?0c[?25l[?1c:[?25h[?0c'[,']w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 124 characters written[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 93 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:+1,$list$
:redir.END$
:q!$
ENDTEST$[?25h[?0c[?25l[?1c
$[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset listchars+=trail:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nolist
[?25l[?1c   >>  [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c
start:[?25h[?0c[?25l[?1c
:[?25h[?0credir! >> test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c+1,$list
[?25l[?1c..fff>--<<$

>-------gg>-----$

.....h>-$

iii<<<<><<$

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c>-------aa>-----$
..bb>---..$
...cccc>.$
dd........ee..>-$
.$STARTTEST:set listchars+=trail:<
:set nolist
:
/^start:/
:redir! >> test.out+1,$listredir END
:q!ENDTESTstart:  fff
        ggh
iii   [?25h[?0c[?25l[?1c
:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listchars = test61; then \
#	  if diff test.out test_listchars.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listchars.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listchars.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listlbr.failed test.ok test.out X* viminfo
cp test_listlbr.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listlbr.in" 119 lines, 2868 charactersTest for linebreak and list option (non-utf8)

STARTTEST
:so small.vim
:if !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |
endif
:10new|:vsp|:vert resize 20
:put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width)
:let c=''
:for j in range(1,4)
:for i in range(1,a:width)
:let c.=nr2char(screenchar(j, i))
:endfor
:let c.="\n"
:endfor
:return c
:endfu
:fu! DoRecordScreen()
:wincmd l
:$put =printf(\"\n%s\", g:test)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for linebreak and list option (non-utf8)[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 114 lines, 2792 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTabcd{ef
ghijklm
no}pqrs^[2k0f{^V^Vc%^[
:"
:let g:test ="Test 11: using block replace mode after wrapping"
:$put =g:test
:set linebreak wrap
Go^[150aa^[yypk147|^Vjr0
:"
:let g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$":set list listchars=space:_,trail:-,tab:>-,eol:$
:$put =g:test
:let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |

endif
[?25l[?1cabcd{ef[?25h[?0c[?25l[?1c
:[?25h[?0c10new|:vsp|:vert resize 20
[?25l[?1c       ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name]            ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name]                                                  let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =linenorm! zt
:redraw!let line=ScreenChar(winwidth(0))
:call DoRecordScreen()%w! test.outqaENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0cput =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [+][?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25l[?1cabcdef          
+hijklmn            
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [?25h[?0c[?25l[?1c:[?25h[?0cfu! ScreenChar(width)
[?25l[?1c
:  [?25h[?0c:^Ilet c=''

[?25l[?1c:  [?25h[?0c:^Ifor j in range(1,4)

[?25l[?1c:    [?25h[?0c:^I    for i in range(1,a:width)

[?25l[?1c:      [?25h[?0c:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l[?1c:      [?25h[?0c:^I    endfor

[?25l[?1c:    [?25h[?0c:           let c.="\n"

[?25l[?1c:    [?25h[?0c:^Iendfor

[?25l[?1c:  [?25h[?0c:^Ireturn c

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0cfu! DoRecordScreen()
[?25l[?1c
:  [?25h[?0c:^Iwincmd l

[?25l[?1c:  [?25h[?0c:^I$put =printf(\"\n%s\", g:test)

[?25l[?1c:  [?25h[?0c:^I$put =g:line

[?25l[?1c:  [?25h[?0c:^Iwincmd p

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 1: set linebreak"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 1: set         
+linebreak          
    abcdef          
+hijklmn            
+pqrstuvwxyz_1060ABCTest 1: set linebreak    abcdef          +hijklmn            +pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP      [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 2: set linebreak + set list"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak list listchars=
[?25l[?1c^Iabcdef hijklmn^I  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP      
              
Test 1: set
+linebreak 
    abcdef
+hijklmn  
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c^Iabcdef hijklmn^I  |
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
Test 1: set|
+linebreak|
    abcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      |
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOPTest 1: set linebreakabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP~                                                          ~                                                          [No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines    abcdef                                                 +hijklmn                                                   +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                             ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 3: set linebreak nolist"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak
[?25l[?1c    abcdef          hijklmn            pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
           
Test 1: set
+linebreak
    abcdef
+hijklmn            
+pqrstuvwxyz_1060ABC[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
Test 1: set|
+linebreak|
    abcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
[No Name] [+]        abcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOPTest 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines^Iabcdef hijklmn^I                                         +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Test 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 4: set linebreak with tab and 1 line as long as screen: shou

ld break!"
[?25l[?1cabcdef|^Iabcdef hijklmn^I[?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak ts=8
[?25l[?1c    abcdef[?25h[?0c[?25l[?1c:[?25h[?0clet line="1\t".repeat('a', winwidth(0)-2)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1c      
        
Test 3: set         linebreak nolist
    abcdef
+hijklmn   
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
1       
+aaaaaaaaaaaaaaaaaa [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c1|
+aaaaaaaaaaaaaaaaaa |||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOPTest 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     1aaaaaaaaaaaaaaaaaaTest 4: set linebreak with tab and 1 line as long as screen+: should break!1+aaaaaaaaaaaaaaaaaa~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet line="_S_\t bla"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cTest 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    ~
~
_S_      bla[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c_S_      bla        
                    
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 5: set linebreak with conceal and set list and tab displayed

by different char (line may not be truncated)"
[?25l[?1c_S_      bla|+pqrstuvwxyz_1060ABC[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab
[?25l[?1cabbbb[?25h[?0c[?25l[?1c:[?25h[?0csyn match ConcealVar contained /_/ conceal
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match All /.*/ contains=ConcealVar
[?25l[?1cSabb[?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 5: set         
+linebreak with     
+conceal and set    
+list and tab       
+displayed by       
+different char     
+(line may not be   
+truncated)         ~                                                          ~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _S_      blaTest 5: set linebreak with conceal and set list and tab dis+played by different char (line may not be truncated)Sabbbbbb bla~~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 6: set linebreak with visual block mode"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet line="REMOVE: this not"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cabbbbbb
~
~          
~              
Test 6: set     nebreak withvisual block mode
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cREMOVE: this not    [?25h[?0c[?25l[?1c:[?25h[?0clet line="REMOVE: aaaaaaaaaaaaa"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cREMOVE:             
+aaaaaaaaaaaaa      [?25h[?0c[?25l[?1c:[?25h[?0c1/^REMOVE:
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cR[?25h[?0c[?25l[?1cEMOVE: 
REMOVE:[?25h[?0c[?25l[?1cthis not        
aaaaaaaaaaaaa
~                   [?25h[?0c[?25l[?1c:[?25h[?0c$put
[?25l[?1c~                   
~                   
~                   
Test 6: set         
+linebreak with     
+visual block mode  
this not            
aaaaaaaaaaaaa       
~                   
                    REMOVE:             
REMOVE:[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 7: set linebreak with visual block mode and v_b_A"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cthis not            
aaaaaaaaaaaaa       
REMOVE:             
REMOVE:             
                    
                    
                    
                    
                    
                    Test 7: set
+linebreak with
+visual block mode
+and vbA
~                   
~                   [?25h[?0c[?25l[?1clong line:          [?25h[?0c[?25l[?1c foobar
+foobar foobar      @                   
@                           
             
       
       
           
               
                  
        
                    
                    +foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar[?25h[?0c+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar             
                    [?25l[?1cTARGET at
+end[?25h[?0c[?25l[?1c:[?25h[?0cexe "norm! $3B\<C-v>eAx\<Esc>"
[?25l[?1cx at[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak sbr=
[?25l[?1cfoobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar TARGETx at 
end played by different char (line may not be truncated)[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 8: set linebreak with visual char mode and changing block"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 8: set  
linebreak with
visual char mode
and changing block
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c1111-1111-1111-11-  
1111-1111-1111      [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c111[?25h[?0c[?25l[?1c2222[?25h[?0c[?25l[?1c2222[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 9: using redo after block visual mode"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 9: using redo  
after block visual  
mode                [?25h[?0c[?25l[?1c1111-2222-1111-11-  
1111-2222-1111      
Test 9: using redo  
after block visual  
mode                
~                   
                    
                    
                    
                                        
aaa
aaa
a
~                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
a[?25h[?0c[?25l[?1c3 lines changedA
A
A[?25h[?0c[?25l[?1cA
AaA[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 10: using normal commands after block-visual"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 9: using redo  
after block visual  
mode                
                    
AaA                 
AaA                 
A                   
~                   
                    
                    Test 10: using      
normal commands
after block-visual[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak
[?25l[?1c[?25h[?0c[?25l[?1cAaA                 
AaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
                    
                    
                    abcd{ef
ghijklm
no}pqrs[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cpqrs
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 11: using block replace mode after wrapping"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cAaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
~                   
~                   
                    Test 11: using      
block replace mode  
after wrapping[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak wrap
[?25l[?1c[?25h[?0c[?25l[?1cA                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
Test 11: using      
block replace mode  
after wrapping      
                    [?25h[?0c[?25l[?1caaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa        
~                   
~                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1caaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa
~                   
~                   [?25h[?0c[?25l[?1c0
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?25h[?0c[?25l[?1c@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaa0aaa
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$

"[?25l[?1caaaaaaaaaaaaaaaaaaaa|~[?25h[?0c[?25l[?1c:[?25h[?0cset list listchars=space:_,trail:-,tab:>-,eol:$
[?25l[?1c$[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0clet line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1ca_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1ca_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         
~                   
~                   
~                   
                    
                    
                    
                    ~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1ca_|
aaaaaaaaaaaaaaaaaaaa|
aa>-----a-$||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ~~_S_      blaTest 5: set linebreak with conceal and set list and tab displayed by different char (line may not be truncated)Sabbbbbb bla~~~[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines$                   
Test_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
a------------------ 
$                   Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$a aaaaaaaaaaaaaaaaaaaaaaa12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$a_          aaaaaaaaaaaaaaaaaaaaaa>-----a-$[?25h[?0c[?25l[?1c:[?25h[?0c%w! test.out
[?25l[?1c"test.out" [New File] 62 lines, 2030 characters writtentest.out     test.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listlbr = test61; then \
#	  if diff test.out test_listlbr.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listlbr.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_search_mbyte.failed test.ok test.out X* viminfo
cp test_search_mbyte.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_search_mbyte.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_search_mbyte.in" 15 lines, 226 charactersTest for search('multi-byte char', 'bce')

STARTTEST
:source small.vim
:source mbyte.vim
:set encoding=utf-8
:/^Test bce:/+1
:$put =search('A', 'bce', line('.'))
:1;/^Results:/,$wq! test.out
ENDTEST

Results:

Test bce:
A
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for search('multi-byte char', 'bce')[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 140 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0csource small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csource mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest for search('multi-byte char', 'bce')

STARTTEST
:source small.vim
:source mbyte.vim
:set encoding=utf-8
:/^Test bce:/+1
:$put =search('A', 'bce', line('.'))
:1;/^Results:/,$wq! test.out
ENDTEST

Results:

Test bce:
A
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c/^Test bce:/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =search('A', 'bce', line('.'))
[?25l[?1c15[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results:/,$wq! test.out
[?25l[?1c"test.out" [New File] 5 lines, 27 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_search_mbyte = test61; then \
#	  if diff test.out test_search_mbyte.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_search_mbyte.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_search_mbyte.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_utf8.failed test.ok test.out X* viminfo
cp test_utf8.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_utf8.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_utf8.in" 46 lines, 1245 charactersTests for Unicode manipulationsvim: set ft=vim :

STARTTEST
:so small.vim
:set encoding=utf-8
:"
:" Visual block Insert adjusts for multi-byte char
:new
:exe ":norm! gg0l\<C-V>jjIx\<Esc>"
:let r = getline(1, '$')
:"
:bwipeout!
:$put=r
:"
:" Test for built-in function strchars()
:$put=strchars(str)
:$put=strchars(str, 0)
:$put=strchars(str, 1)
:endfor
:"
:" Test for customlist completion[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for Unicode manipulationsvim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 1151 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete2(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete3(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1c:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:return ['あ', 'い']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete2(lead, line, pos)
:return ['あたし', 'あたま', 'あたりめ']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete3(lead, line, pos)
:return ['Nこ', 'Nん', 'Nぶ']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual block Insert adjusts for multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       function! CustomComplete3(lead, line, pos)
:       return ['Nこ', 'Nん', 'Nぶ']endfunctioncommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')"call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST test_utf8.in                                                                    [?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, ["aaa", "あああ", "bbb"])
[?25l[?1caaa
あああbbb[+][?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! gg0l\<C-V>jjIx\<Esc>"
[?25l[?1cxaa
xあああ
bxbb[?25h[?0c[?25l[?1c:[?25h[?0clet r = getline(1, '$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipeout!
[?25l[?1c:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:       return ['あ', 'い']
:endfunction:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it'):":function! CustomComplete2(lead, line, pos):       return ['あたし', 'あたま', 'あたりめ']:endfunction:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')"function! CustomComplete3(lead, line, pos)
:       return ['Nこ', 'Nん', 'Nぶ']
:endfunctionommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"call garbagecollect(1):/^start:/,$wq! test.out
ENDTEST
 [?25h[?0c[?25l[?1c:[?25h[?0c$put=r
[?25l[?1c3 more linesstart:
axaa
xあああ
bxbb3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for built-in function strchars()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor str in ["a", "あいa", "A\u20dd", "A\u20dd\u20dd", "\u20dd"]
[?25l[?1c
:  [?25h[?0c:^I$put=strchars(str)

[?25l[?1c:  [?25h[?0c:^I$put=strchars(str, 0)

[?25l[?1c:  [?25h[?0c:^I$put=strchars(str, 1)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST

start:axaaxあああbxbb11133322133
1111[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for customlist completion
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete1(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['あ', 'い']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:call garbagecollect(1)
:/^start:/,$wq! test.out[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test1 ...'
:$Test1 '
:$pTest1 '
:$puTest1 '
:$putTest1 '
:$put=Test1 ''Test1 '

Test1[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete2(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['あたし', 'あたま', 'あたりめ']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test2 ...あた'
:$Test2 あた'
:$pTest2 あた'
:$puTest2 あた'
:$putTest2 あた'
:$put=Test2 あた''Test2 あた'

Test2 あた[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete3(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['Nこ', 'Nん', 'Nぶ']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test3 ...N'
:$Test3 N'
:$pTest3 N'
:$puTest3 N'
:$putTest3 N'
:$put=Test3 N''Test3 N'

Test3 N[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 22 lines, 86 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_utf8 = test61; then \
#	  if diff test.out test_utf8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_utf8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_utf8.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_wordcount.failed test.ok test.out X* viminfo
cp test_wordcount.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_wordcount.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_wordcount.in" 126 lines, 2815 charactersTest for wordcount() function

STARTTEST
:so small.vim
:so mbyte.vim
:set enc=utf8
:set selection=inclusive fileformat=unix fileformats=unix
:new
:fu DoRecordWin(...)
:wincmd k
:if exists("a:1")
:call cursor(a:1)
:endif
:let result=[]
:call add(result, g:test)
:call add(result, getline(1, '$'))
:call add(result, wordcount())
:wincmd j
:return result
:endfu
:fu PutInWindow(args)
:wincmd k
:%d _[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for wordcount() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 121 lines, 2753 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:0
v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:let g:test="Test 11: visual mode, single line"
:wincmd k
:set ls=2 stl=%{STL()}
:" start visual mode quickly and select complete buffer
:2
0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:/^RESULT test/,$w! test.out
:qa!
ENDTEST
RESULT test:[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf8
[?25l[?1c:0
v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:let g:test="Test 11: visual mode, single line"
:call PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
:wincmd k
:set ls=2 stl=%{STL()}
:" start visual mode quickly and select complete buffer
:2
0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:/^RESULT test/,$w! test.out
:qa!
ENDTEST
RESULT test:
[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=inclusive fileformat=unix fileformats=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])[2]=g:visual_statcall Log()"/^RESULT test/,$w! test.out
:qa!ENDTEST
RESULT test:
test_wordcount.in                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu DoRecordWin(...)
[?25l[?1c
:  [?25h[?0c:^Iwincmd k

[?25l[?1c:  [?25h[?0c:       if exists("a:1")

[?25l[?1c:    [?25h[?0c:           call cursor(a:1)

[?25l[?1c:    [?25h[?0c:       endif

[?25l[?1c:  [?25h[?0c:       let result=[]

[?25l[?1c:  [?25h[?0c:       call add(result, g:test)

[?25l[?1c:  [?25h[?0c:       call add(result, getline(1, '$'))

[?25l[?1c:  [?25h[?0c:       call add(result, wordcount())

[?25l[?1c:  [?25h[?0c:^Iwincmd j

[?25l[?1c:  [?25h[?0c:       return result

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu PutInWindow(args)
[?25l[?1c
:  [?25h[?0c:       wincmd k

[?25l[?1c:  [?25h[?0c:       %d _

[?25l[?1c:  [?25h[?0c:       call append(1, a:args)

[?25l[?1c:  [?25h[?0c:^Iwincmd j

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu Log()
[?25l[?1c
:  [?25h[?0c:   $put ='----'

[?25l[?1c:  [?25h[?0c:   $put =remove(g:log,0)

[?25l[?1c:  [?25h[?0c:   $put =string(g:log)

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu! STL()
[?25l[?1c
:  [?25h[?0c:    if mode() =~? 'V'

[?25l[?1c:    [?25h[?0c:       let g:visual_stat=wordcount()

[?25l[?1c:    [?25h[?0c:    endif

[?25l[?1c:  [?25h[?0c:    return string(wordcount())

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 1: empty window"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin()
[?25l[?1c[No Name]                                                                       test_wordcount.in                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 1: empty window
[[''], {'chars': 0, 'cursor_chars': 0, 'words': 0, 'cursor_words': 0, 'bytes': 0, 'cursor_bytes': 0}][+][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 2: some words, cursor at start"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1cone two three[+][?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([1,1,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 2: some words, cursor at start
[['', 'one two three'], {'chars': 15, 'cursor_chars': 1, 'words': 3, 'cursor_words': 0, 'bytes': 15, 'cursor_bytes': 1}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 3: some words, cursor at end"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 3: some words, cursor at end
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3, 'bytes': 15, 'cursor_bytes': 14}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 4: some words, cursor at end, ve=all"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 4: some words, cursor at end, ve=all
[['', 'one two three'], {'chars': 15, 'cursor_chars': 15, 'words': 3, 'cursor_words': 3, 'bytes': 15, 'cursor_bytes': 15}][?25h[?0c[?25l[?1c


:[?25h[?0cset ve=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 5: several lines with words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['one two three', 'one two three', 'one two three'])
[?25l[?1cone two threeone two three--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([4,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 5: several lines with words
[['', 'one two three', 'one two three', 'one two three'], {'chars': 43, 'cursor_chars': 42, 'words': 9, 'cursor_words': 9, 'bytes': 43, 'cursor_bytes': 42}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 6: one line with BOM set"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1c[No Name] [+]                                                                   test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset bomb
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 2 lines, 18 characters writtenXtest        [?25h[?0c[?25l[?1c:[?25h[?0cwincmd j
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 6: one line with BOM set
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3, 'bytes': 18, 'cursor_bytes': 14}][?25h[?0c[?25l[?1c


:[?25h[?0cwincmd k
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset nobomb
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtest" 2 lines, 15 characters written   [?25h[?0c[?25l[?1c:[?25h[?0cwincmd j
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 7: one line with multibyte words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh'])
[?25l[?1cÄne M¤ne Müh[+]--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 7: one line with multibyte words
[['', 'Äne M¤ne Müh'], {'chars': 14, 'cursor_chars': 13, 'words': 3, 'cursor_words': 3, 'bytes': 17, 'cursor_bytes': 16}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 8: several lines with multibyte words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1cund raus bist dü!--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 8: several lines with multibyte words
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'cursor_chars': 31, 'words': 7, 'cursor_words': 7, 'bytes': 36, 'cursor_bytes': 35}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 9: visual mode, complete buffer"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 3985, 'words': 579, 'cursor_words': 560, 'bytes': 4153, 'cursor_bytes': 4007}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c0
[?25l[?1c[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual[?25h[?0c[?25l[?1c 
Äne M¤ne Müh 
und raus bist dü! ds': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36[?25h[?0c[?25l[?1cÄne M¤ne Mühnd raus bist dü!3 lines yankedursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1[?25h[?0c213[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 9: visual mode, complete buffer
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 10: visual mode (empty)"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4170, 'words': 606, 'cursor_words': 587, 'bytes': 4342, 'cursor_bytes': 4196}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c0
[?25l[?1c[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor[?25h[?0c213[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 10: visual mode (empty)
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_bytes': 1}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 11: visual mode, single line"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4347, 'words': 632, 'cursor_words': 613, 'bytes': 4521, 'cursor_bytes': 4377}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2
[?25l[?1c213[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 1, 'visual2[?25h[?0c[?25l[?1cÄne M¤ne Mühds': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16[?25h[?0c[?25l[?1c
Äne M¤ne Mühursor_chars': 2, 'words': 7, 'cursor_words': 1, 'bytes': 36, 'cursor_bytes': 3[?25h[?0csor_chars': 15, 'words': 7, 'cursor_words': 4, 'bytes': 36, 'cursor_bytes': 18[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 11: visual mode, single line
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^RESULT test/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 34 lines, 1905 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_wordcount = test61; then \
#	  if diff test.out test_wordcount.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_wordcount.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_wordcount.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test11.in
[?25h[?8c[?25h[?0c[?25l[?1c"test11.in" 84 lines, 3366 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for autocommands:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 48 lines, 2298 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:au! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>"))
:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
: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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" drop out when there is no gzip program
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !executable("gzip")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:au! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>"))
:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
:au! FileReadPost   *.gz   '[,']s/l/L/[?25h[?0c[?25l[?1c:[?25h[?0clet $GZIP = ""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileChangedShell * echo "caught FileChangedShell"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWritePre    *.gz   '[,']!gzip
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWritePost   *.gz   undo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of testfile/,/^end of testfile/w! Xtestfile.gz
[?25l[?1c[?25h[?0c[?25l[?1c11 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[?25h[?0c[?25l[?1c:[?25h[?0cau FileReadPost    *.gz   '[,']!gzip -d
[?25l[?1c:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
: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[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtestfile.gz                " Read and decompress the testfile
[?25l[?1c"Xtestfile.gz" [Incomplete last line] 1 line, 111 characters
[?25h[?0c[?25l[?1cstart of test.c
/*
 * Here is a new .c file
 */
end of test.c
start of testfile[?25h[?0c[?25l[?1c
:[?25h[?0c?startstart?,$w! test.out      " Write contents of this file
[?25l[?1c"test.out" [New File] 29 lines, 788 characters written[?25h[?0c[?25l[?1c:[?25h[?0cau BufNewFile      *.c    read Xtest.c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
[?25l[?1csearch hit BOTTOM, continuing at TOP"Xtest.c" [New File] 3 lines, 32 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! foo.c                       " Will load Xtest.c
[?25l[?1c"foo.c" [New File]
"Xtest.c" 3 lines, 32 characters

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau FileAppendPre   *.out  '[,']s/new/NEW/
[?25l[?1c/*
 * Here is a new .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau FileAppendPost  *.out  !cat Xtest.c >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw>>test.out                    " Append it to the output file
[?25l[?1c"test.out" 4 lines, 33 characters appended

:!cat Xtest.c >>test.out

[?25h[?0c
Press ENTER or type command to continue[?25l[?1c:[?25h[?0cau! FileAppendPre
[?25l[?1c/*
 * Here is a NEW .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" setup autocommands to decompress before reading and re-compress afterwards
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPre      *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPre      *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost     *.gz   call rename(expand("<afile>"), expand("<afile>:r"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost     *.gz   exe '!gzip ' . shellescape(expand("<afile>:r"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile.gz                " Edit compressed file
[?25l[?1c:!gzip -d 'Xtestfile.gz'

[?25h[?0c[?25l[?1c"Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters:!gzip 'Xtestfile'

[?25h[?0c[?25l[?1ccaught FileChangedShell

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw>>test.out                    " Append it to the output file
[?25l[?1c"test.out" 11 lines, 357 characters appended

:!cat Xtest.c >>test.out

[?25h[?0c
Press ENTER or type command to continue[?25l[?1c:[?25h[?0cset shelltemp                  " need temp files here
[?25l[?1cstart 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  call rename(expand("<afile>"), expand("<afile>") . "

.t")
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  exe 'silent !sed s/e/E/ ' . shellescape(expand("<afi

le>")) . ".t >" . shellescape(expand("<afile>"))
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  exe 'silent !rm ' . shellescape(expand("<afile>")) .

'.t'
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPost  *.out  '[,']s/x/X/g
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out                    " Edit the output file
[?25l[?1c"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.cstart of testfileline 2  Abcdefghijklmnopqrstuvwxyzline 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 4  Abcdefghijklmnopqrstuvwxyzline 5  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[?25h[?0c[?25l[?1c:[?25h[?0c23,$!cat
[?25l[?1c[?25h[?0c[?25l[?1c218 substitutions on 15 lines

28 lines filtered

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c23,$s/\r$//                 " remove CR for when sed adds them
[?25l[?1cE486: Pattern not found: \r$
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>

"))
[?25l[?1cstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE 5  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX[?25h[?0c[?25l[?1c
:[?25h[?0cau  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau! FileReadPost   *.gz   '[,']s/l/L/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$r Xtestfile.gz             " Read compressed file
[?25l[?1c[?25h[?0c[?25l[?1c"Xtestfile.gz" 11 lines, 357 characters

11 substitutions on 11 lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw                           " write it, after filtering
[?25l[?1c"test.out"61 lines, 1599 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau!             " remove all autocommands
[?25l[?1cE216: No such group or event: " remove all autocommands

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce               " Edit test.out again
[?25l[?1c"test.out"61 lines, 1599 charactersstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"test.out" 61 lines, 1599 characters[?25h[?0c[?25l[?1c:[?25h[?0cset nobin ff&   " use the default fileformat for writing
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 61 lines, 1599 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test11 = test61; then \
#	  if diff test.out test11.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test11.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test11.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test52.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for reading and writing files with conversion for Win32.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 57 lines, 1333 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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

[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make this a dummy test for non-Win32 systems
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("win32") | e! test.ok | wq! test.out | endif
[?25l[?1c"test.ok" 18 lines, 1374 characters

"test.out" [New File] 18 lines, 1374 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test52 = test61; then \
#	  if diff test.out test52.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test52.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test52.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test85.failed test.ok test.out X* viminfo
cp test85.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test85.in
[?25h[?8c[?25h[?0c[?25l[?1c"test85.in" 85 lines, 1868 charactersTest for Lua interface and luaeval() function

STARTTEST
:so small.vim
:so lua.vim
:set nocompatible viminfo+=nviminfo
:lua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
:lua h = vim.dict(); h.list = l
:call garbagecollect()
/^1
:" change buffer contents
:lua curbuf = vim.buffer()
:lua curline = vim.eval"line('.')"
:lua curbuf[curline] = "1 changed line 1"
:" scalar test
:let tmp_string = luaeval('"string"')
:let tmp_1000 = luaeval('1000')
:if printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
:let scalar_res = "OK"
:else
:let scalar_res = "FAILED"
:endif
:call append(search("^1"), "scalar test " . scalar_res)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Lua interface and luaeval() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 77 lines, 1775 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")
:lua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
:lua d[4] = d[0]
:lua d[5] = d[1]
:lua d[6] = d[2]
:lua d[7] = d[3]
:lua d[3] = nil
:lua d[2] = nil
:lua d[1] = nil
:lua d[0] = nil
:lua d = nil
:$put =string(d)

:?^1?,$w! test.out
:qa!
ENDTEST

1 line 1
2 line 2
3 line 3[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso lua.vim
[?25l[?1c"test.ok" 7 lines, 206 characters

"test.out" [New File] 7 lines, 206 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test85 = test61; then \
#	  if diff test.out test85.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test85.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test85.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test86.failed test.ok test.out X* viminfo
cp test86.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test86.in
[?25h[?8c[?25h[?0c[?25l[?1c"test86.in" 1711 lines, 48481 charactersTests for various python features.     vim: set ft=vim :

NOTE: This will cause errors when run under valgrind.
This would require recompiling Python with:
  ./configure --without-pymalloc
See http://svn.python.org/view/python/trunk/Misc/README.valgrind?view=markup

STARTTEST
:so small.vim
:set encoding=latin1
:set noswapfile
:if !has('python') | e! test.ok | wq! test.out | endif
:lang C
:fun Test()
:py import vim
:py cb = vim.current.buffer
:let l = []
:py l=vim.bindeval('l')
:py f=vim.bindeval('function("strlen")')
:" Extending List directly with different types
:py l.extend([1, "as'd", [1, 2, f, {'a': 1}]])
:$put =string(l)
:$put =string(l[-1])[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for various python features.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1700 lines, 48188 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:   endif
:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=latin1
[?25l[?1c:   endif
:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c[?25l[?1c

:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('python') | e! test.ok | wq! test.out | endif
[?25l[?1c"test.ok" 1445 lines, 67439 characters

"test.out" [New File] 1445 lines, 67439 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test86 = test61; then \
#	  if diff test.out test86.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test86.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test86.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test87.failed test.ok test.out X* viminfo
cp test87.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test87.in
[?25h[?8c[?25h[?0c[?25l[?1c"test87.in" 1707 lines, 49069 charactersTests for various python features.     vim: set ft=vim :

STARTTEST
:so small.vim
:set noswapfile
:if !has('python3') | e! test.ok | wq! test.out | endif
:lang C
:fun Test()
:py3 import vim
:py3 cb = vim.current.buffer
:let l = []
:py3 l=vim.bindeval('l')
:py3 f=vim.bindeval('function("strlen")')
:" Extending List directly with different types
:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]
:$put =string(l)
:$put =string(l[-1])
:try
:  $put =string(l[-4])
:catch
:  $put =v:exception[:13]
:endtry
:" List assignment[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for various python features.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1701 lines, 48985 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:/^start:/,$w! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('python3') | e! test.ok | wq! test.out | endif
[?25l[?1c"test.ok" 1445 lines, 77744 characters

"test.out" [New File] 1445 lines, 77744 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test87 = test61; then \
#	  if diff test.out test87.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test87.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test87.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test12.in
[?25h[?8c[?25h[?0c[?25l[?1c"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/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'directory' option.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 965 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset dir=.,~
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/start of testfile/,/end of testfile/w! Xtest1
[?25l[?1c"Xtest1" [New] 4L, 70C written[?25h[?0c[?25l[?1c:[?25h[?0c" do an ls of the current dir to find the swap file (should not be there)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:  !ls .X*.swp >test.out

[?25l[?1c:!ls .X*.swp >test.out[?25h[?0c
ls: cannot access '.X*.swp': No such file or directory

shell returned 2

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:  r !ls X*.swp >test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:!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[?25h[?0c[?25l[?1c:[?25h[?0c!echo first line >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1c"Xtest1" 4L, 70Cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest1" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:" Do an ls of the current dir to find the swap file, remove the leading dot

[?25l[?1c:  [?25h[?0c:" to make the result the same for all systems.

[?25l[?1c:  [?25h[?0c:  r!ls .X*.swp

[?25l[?1c:  [?25h[?0c:  s/\.*X/X/

[?25l[?1c:  [?25h[?0c:  .w >>test.out
[?25l[?1c"test.out" 1L, 11C appended

:  [?25h[?0c:  undo

[?25l[?1c1 line less; before #1  1 seconds ago

:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:  !ls X*.swp >>test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c!echo under Xtest1.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir Xtest2
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0cset dir=./Xtest2,.,~
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1c"Xtest1" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0c!ls X*.swp >>test.out
[?25l[?1c[?25h[?0c
ls: cannot access 'X*.swp': No such file or directory

shell returned 2


Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under under >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ls Xtest2 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest1.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir Xtest.je
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c/start of testfile/,/end of testfile/w! Xtest2/Xtest3
[?25l[?1csearch hit BOTTOM, continuing at TOP"Xtest2/Xtest3" [New] 4L, 70C written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset dir=Xtest.je,~
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce Xtest2/Xtest3
[?25l[?1c"Xtest2/Xtest3" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0cswap
[?25l[?1cXtest.je/Xtest3.swp[?25h[?0c[?25l[?1c:[?25h[?0c!ls Xtest2 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest3 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ls Xtest.je >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest3.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test12 = test61; then \
#	  if diff test.out test12.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test12.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test12.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test25.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 540 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Create a link from test25.dir to the current directory.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!rm -f test25.dir
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ln -s . test25.dir
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c" Create tags.text, with the current directory name inserted.
[?25l[?1cTest 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
[?25h[?0c[?25l[?1c
/[?25h[?0ctags line
[?25l[?1chis 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:
[?25h[?0c[?25l[?1c:[?25h[?0cr !pwd
[?25l[?1c[?25h[?0c[?25l[?1cSTARTTEST
: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:
/<<PKGBUILDDIR>>/src/vim-basic/testdir
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0ctest
[?25l[?1c
SECTION_OFF     /test25.dir/test25.in   /^#define  SECTION_OFF  3$/[?25h[?0c[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir/test25.dir/@                                                                               
SECTION_OFF     /<<PKGBUILDDIR>>/src/vim-basic/testdir/test25.dir/test25.in/^#define  SECTION_OFF  3$/[?25h[?0c[?25l[?1c

:[?25h[?0c.w! tags.test
[?25l[?1c"tags.test" [New File] 1 line, 114 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Try jumping to a tag in the current file, but with a path that contains a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" symbolic link.  When wrong, this will give the ATTENTION message.  The next
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tags=tags.test
[?25l[?1c[?25h[?0c[?25l[?1c/*tx.c*/
#define  SECTION_OFF  3
#define  NUM_SECTIONS 3

SECTION_OFF[?25h[?0c#[?25l[?1cefine  SECTION_OFF  3[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 23 characters written[?25h[?0c[?25l[?1c:[?25h[?0c!rm -f test25.dir tags.test
[?25l[?1c[?25h[?0c
[No write since last change]


Press ENTER or type command to continue[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test25 = test61; then \
#	  if diff test.out test25.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test25.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test25.in; \
#	  fi \
#	fi"
# 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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/move.o move.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test49.in
[?25h[?8c[?25h[?0c[?25l[?1c"test49.in" 32 lines, 705 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
:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cThis is a test of the script language.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 23 lines, 475 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:endfor
:for v in keys(g:)
:  silent! exe "unlet " . v
:endfor
:unlet v
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cse nocp nomore viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang mess C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso test49.vim
[?25l[?1cError detected while processing function F:

line    5:

E583: multiple :else:     else^I^I

Error detected while processing function G:

line    5:

E584: :elseif after :else:     elseif 1^I^I" aborts function

Error detected while processing function H:

line    7:

E583: multiple :else:     else^I^I

Error detected while processing function I:

line    7:

E584: :elseif after :else:     elseif 1^I^I" aborts function

*** Test  16: OK (8722)

Error detected while processing function F:

line   18:

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

line   34:

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

line   47:

E580: :endif without :if: ^Iendif^I

E580: :endif without :if: ^Iendif^I

E580: :endif without :if: ^Iendif^I

Error detected while processing /<<PKGBUILDDIR>>/src/vim-basic/te

stdir/test49.vim:

line  784:

E171: Missing :endif: endwhile 

*** Test  17: OK (285127993)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"/tmp/vCwvDh7/0" [New] 53L, 1582C written14L, 358C appended26L, 824C appended34L, 986C appended

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/1[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/1" 16L, 304C appended17L, 326C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/2[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/2"' -c 'breakad

dfile 8 /tmp/vCwvDh7/1' -S /tmp/vCwvDh7/1[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/2" 3L, 6C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/3[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/3" 6L, 127C appended7L, 149C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/4[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/4"' -c 'breakad

dfile 4 /tmp/vCwvDh7/3' -S /tmp/vCwvDh7/3[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/4" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/5[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/5" 21L, 486C appended22L, 508C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/6[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/6"' -c 'breakad

dfunc 7 F' -S /tmp/vCwvDh7/5[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/6" 3L, 18C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/evalfunc.o evalfunc.c

<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/7[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/7" 13L, 364C appended14L, 386C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/8[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/8"' -c 'breakad

dfunc 3 G' -S /tmp/vCwvDh7/7[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/8" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  18: OK (67224583)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/9[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/9" 12L, 201C appended13L, 223C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/10[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/10"' -S /tmp/vCwvD

h7/9[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/10" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/11[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/11" 12L, 205C appended13L, 227C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/12[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/12"' -S /tmp/vCwvD

h7/11[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/12" 2L, 7C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/13[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/13" 6L, 122C appended7L, 144C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/14[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/14"' -S /tmp/vCwvD

h7/13[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/14" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/15[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/15" 8L, 176C appended9L, 198C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/16[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/16"' -S /tmp/vCwvD

h7/15[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/16" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/17[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/17" 10L, 215C appended11L, 237C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/18[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/18"' -S /tmp/vCwvD

h7/17[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/18" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/19[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/19" 7L, 149C appended8L, 171C8L, 170C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/20[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/20"' -S /tmp/vCwvD

h7/19[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/20" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  19: OK (69275973)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/21[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/21" 9L, 135C appended10L, 157C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/22[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/22"' -S /tmp/vCwvD

h7/21[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/22" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/23[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/23" 10L, 155C appended11L, 177C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/24[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/24"' -S /tmp/vCwvD

h7/23[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/24" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/25[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/25" 12L, 204C appended13L, 226C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/26[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/26"' -S /tmp/vCwvD

h7/25[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/26" 4L, 18C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/27[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/27" 12L, 214C appended13L, 236C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/28[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/28"' -S /tmp/vCwvD

h7/27[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/28" 4L, 22C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/29[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/29" 12L, 211C appended13L, 233C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/30[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/30"' -S /tmp/vCwvD

h7/29[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/30" 3L, 22C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/31[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/31" 14L, 263C appended15L, 285C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/32[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/32"' -S /tmp/vCwvD

h7/31[?25h[?0c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ops.o ops.c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/32" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/33[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/33" 14L, 277C appended15L, 299C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/34[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/34"' -S /tmp/vCwvD

h7/33[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/34" 4L, 40C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  20: OK (1874575085)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/35[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/35" 58L, 1022C appended59L, 1044C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/36[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/36"' -S /tmp/vCwvD

h7/35[?25h[?0c
[?25l[?1c"/tmp/vCwvDh7/36" 9L, 56C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  21: OK (147932225)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/37[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/37" 23L, 418C appended24L, 440C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/38[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/38"' -S /tmp/vCwvD

h7/37[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/38" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/39[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/39" 23L, 437C appended24L, 459C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/40[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/40"' -c 'breaka

dd func 2 Interrupt' -S /tmp/vCwvDh7/39[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/40" 1L, 3C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/41[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/41" 21L, 386C appended22L, 408C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/42[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/42"' -S /tmp/vCwvD

h7/41[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/42" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  22: OK (4161)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/43[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/43" 25L, 432C appended26L, 454C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/44[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/44"' -S /tmp/vCwvD

h7/43[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/44" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  23: OK (49)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/45[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/45" 16L, 392C appended17L, 414C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/46[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/46"' -S /tmp/vCwvD

h7/45[?25h[?0c
[?25l[?1c"/tmp/vCwvDh7/46" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  24: OK (41)

*** Test  25: OK (260177811)

*** Test  26: OK (1681500476)

*** Test  27: OK (1996459)

   function F()

1      try

2Xpath 1" X: 1

3try

4Xpath 2" X: 2

5return

6Xpath 4" X: 0

7finally

8Xpath 8" X: 8

9endtry

10Xpath 16" X: 0

11     finally

12Xpath 32" X: 32

13     endtry

14     Xpath 64" X: 0

   endfunction"/tmp/vCwvDh7/47"[noeol] 17L, 552C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vCwvDh7/47" 14L, 502C written
"test49.in" 32L, 705C
   function G()
1      try
2Xpath 128" X: 128
3return
4Xpath 256" X: 0
5      finally
6Xpath 512" X: 512
7call F()
8Xpath 1024" X: 1024
9      endtry
10     Xpath 2048" X: 0
   endfunction"/tmp/vCwvDh7/48"[noeol] 13L, 406C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vCwvDh7/48" 10L, 378C written
"test49.in" 32L, 705C
   function H()
1      try
2Xpath 4096" X: 4096
3call G()
4Xpath 8192" X: 8192
5      finally
6Xpath 16384" X: 16384
7return
8Xpath 32768" X: 0
9      endtry

10     Xpath 65536" X: 0

   endfunction"/tmp/vCwvDh7/49"[noeol] 13L, 409C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vCwvDh7/49" 10L, 381C written
"test49.in" 32L, 705C
*** Test  28: OK (1996459)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/50[?25h[?0c[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/50" 39L, 721C appended40L, 743C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/51[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/51"' -S /tmp/vCwvD

h7/50[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/51" 6L, 21C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/52[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/52" 23L, 509C appended24L, 531C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/53[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/53"' -S /tmp/vCwvD

h7/52[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/53" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  29: OK (170428555)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/54[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/54" 60L, 1101C appended61L, 1123C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/55[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nv

iminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/55"' -

c'breakadd func 3 F' -c 'breakadd file 19 /tmp/vCwvDh7/54' -c 'breakadd file 31

/tmp/vCwvDh7/54' -S /tmp/vCwvDh7/54[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/55" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  30: OK (190905173)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/56[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/56" 60L, 1122C appended61L, 1144C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/57[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/57"' -S /tmp/vCwvD

h7/56[?25h[?0c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/mbyte.o mbyte.c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/57" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  31: OK (190905173)

*** Test  32: OK (354833067)

*** Test  33: OK (1216907538)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/58[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/58" 63L, 1288C appended64L, 1310C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/59[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvD

h7/59"' -c 'breakadd func 16 C' -S /tmp/vCwvDh7/58[?25h[?0c
[?25l[?1c"/tmp/vCwvDh7/59" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  34: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/60[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/60" 63L, 1285C appended64L, 1307C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/61[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvD

h7/61"' -c 'breakadd func 16 B' -S /tmp/vCwvDh7/60[?25h[?0c
[?25l[?1c"/tmp/vCwvDh7/61" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  35: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/62[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/62" 66L, 1430C appended67L, 1452C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/63[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vimin

fo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/

63"' -c 'breakadd func 16 R' -S /tmp/vCwvDh7/62[?25h[?0c
[?25l[?1c"/tmp/vCwvDh7/63" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  36: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/64[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/64" 73L, 1488C appended74L, 1510C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/65[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/65"' -c 'breakadd

func 16 F' -S /tmp/vCwvDh7/64[?25h[?0c
[?25l[?1c"/tmp/vCwvDh7/65" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  37: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/66[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/66" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/67[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvD

h7/67"' -c 'breakadd func 16 E' -S /tmp/vCwvDh7/66[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/67" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  38: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/68[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/68" 83L, 1538C appended84L, 1560C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/69[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -

c'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVi

mResult = "/tmp/vCwvDh7/69"' -c 'breakadd func 16 I' -c 'breakadd func 22 I' -S

/tmp/vCwvDh7/68[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/69" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  39: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/70[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/70" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/71[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvD

h7/71"' -c 'breakadd func 16 T' -S /tmp/vCwvDh7/70[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/71" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  40: OK (357908480)

*** Test  41: OK (3076095)

*** Test  42: OK (1505155949)

*** Test  43: OK (1157763329)

*** Test  44: OK (1031761407)

*** Test  45: OK (1157763329)

*** Test  46: OK (739407)

*** Test  47: OK (371213935)

*** Test  48: OK (756255461)

*** Test  49: OK (179000669)

   function C()

1      try

2Xpath 1" X: 1

3throw "arrgh"

4Xpath 2" X: 0

5      catch /arrgh/

6Xpath 4" X: 4

7      endtry

8      Xpath 8" X: 8

   endfunction"/tmp/vCwvDh7/72"[noeol] 11L, 334C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vCwvDh7/72" 8L, 295C written
"test49.in" 32L, 705C
   function T1()
1      XloopNEXT
2      try
3Xloop 1" X: 16 + 16*16
4throw "arrgh"
5Xloop 2" X: 0
6      finally

7Xloop 4" X: 64 + 64*16

8      endtry

9      Xloop 8" X: 0

   endfunction"/tmp/vCwvDh7/73"[noeol] 12L, 364C
9 substitutions on 9 lines
Pattern not found: ^\s*$
"/tmp/vCwvDh7/73" 9L, 323C written
"test49.in" 32L, 705C
   function T2()
1      try
2Xpath 4096" X: 4096
3call T1()
4Xpath 8192" X: 0
5      finally
6Xpath 16384" X: 16384
7      endtry

8      Xpath 32768" X: 0

   endfunction"/tmp/vCwvDh7/74"[noeol] 11L, 332C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vCwvDh7/74" 8L, 305C written
"test49.in" 32L, 705C
*** Test  50: OK (363550045)
*** Test  51: OK (40744667)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/76[?25h[?0c[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/76" 2L, 41C appended3L, 63C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/77[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/77"' -S /tmp/vCwvDh7/76[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/77" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/75" 8L, 182C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/78[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/78" 7L, 115C appended8L, 137C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/79[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/79"' -S /tmp/vCwvDh7/78[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/79" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/75" 8L, 181C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/80[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/80" 12L, 180C appended13L, 202C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/81[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/81"' -S /tmp/vCwvDh7/80[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/81" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/75" 10L, 209C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/82[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/82" 8L, 139C appended9L, 161C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/83[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/83"' -S /tmp/vCwvDh7/82[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/83" 2L, 11C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/75" 10L, 217C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/84[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/84" 5L, 87C appended6L, 109C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/85[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir!

>/tmp/vCwvDh7/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin =

1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/85"' -c 'breakadd file 4 /tmp/vCwvDh7

/84' -S /tmp/vCwvDh7/84[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/85" 1L, 7C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/75" [noeol] 9L, 202C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/86[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/86" 7L, 189C appended8L, 211C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/87[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/87"' -S /tmp/vCwvDh7/86[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/87" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/75" 9L, 252C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/88[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/88" 7L, 199C appended8L, 221C8L, 220C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/89[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/89"' -S /tmp/vCwvDh7/88[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/89" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/75" 9L, 214C
"test49.in" 32L, 705C

*** Test  52: OK (1247112011)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/91[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/91" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/92[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/92"' -S /tmp/vCwvDh7/91[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/92" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/93[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/93" 3L, 39C appended4L, 61C

3 substitutions on 3 lines
"/tmp/vCwvDh7/93" 4L, 58C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/94[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/94"' -S /tmp/vCwvDh7/93[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/94" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/95[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/95" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vCwvDh7/95" 5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/96[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/96"' -S /tmp/vCwvDh7/95[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/96" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/97[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/97" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vCwvDh7/97" 4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/98[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/98"' -S /tmp/vCwvDh7/97[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/98" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/99[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/99" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vCwvDh7/99" 6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/100[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/100"' -S /tmp/vCwvDh7/99[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/100" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/101[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/101" 1L, 9C appended2L, 31C2L, 30C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/102[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/102"' -S /tmp/vCwvDh7/101[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/102" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 153C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/103[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/103" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vCwvDh7/103"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/104[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/104"' -S /tmp/vCwvDh7/103[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/104" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/105[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/105" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vCwvDh7/105"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/106[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/106"' -S /tmp/vCwvDh7/105[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/106" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/107[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/107" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vCwvDh7/107"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/108[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/108"' -S /tmp/vCwvDh7/107[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/108" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/109[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/109" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vCwvDh7/109"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/110[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/110"' -S /tmp/vCwvDh7/109[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/110" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/111[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/111" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/112[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/112"' -S /tmp/vCwvDh7/111[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/112" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/113[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/113" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vCwvDh7/113"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/114[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/114"' -S /tmp/vCwvDh7/113[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/114" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/115[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/115" 4L, 46C appended5L, 68C

4 substitutions on 4 lines
"/tmp/vCwvDh7/115"5L, 64C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/116[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/116"' -S /tmp/vCwvDh7/115[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/116" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/117[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/117" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vCwvDh7/117"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/118[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/118"' -S /tmp/vCwvDh7/117[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/118" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/119[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/119" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/normal.o normal.c
5L, 66C appended6L, 88C

5 substitutions on 5 lines
"/tmp/vCwvDh7/119"6L, 83C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/120[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/120"' -S /tmp/vCwvDh7/119[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/120" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/121[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/121" 4L, 37C appended5L, 59C

4 substitutions on 4 lines
"/tmp/vCwvDh7/121"5L, 55C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/122[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/122"' -S /tmp/vCwvDh7/121[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/122" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 150C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/123[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/123" 4L, 41C appended5L, 63C

4 substitutions on 4 lines
"/tmp/vCwvDh7/123"5L, 59C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/124[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vCwvDh7/124"' -S /tmp/vCwvDh7/123[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/124" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/90" 6L, 159C
"test49.in" 32L, 705C

*** Test  53: OK (131071)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/126[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/126" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/127[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/127"' -S /tmp/vCwvDh7/126[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/127" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/125" 6L, 164C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/128[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/128" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vCwvDh7/128"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/129[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/129"' -S /tmp/vCwvDh7/128[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/129" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/130[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/130" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vCwvDh7/130"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/131[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/131"' -S /tmp/vCwvDh7/130[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/131" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/132[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/132" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vCwvDh7/132"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/133[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/133"' -S /tmp/vCwvDh7/132[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/133" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/134[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/134" 4L, 53C appended5L, 75C

4 substitutions on 4 lines
"/tmp/vCwvDh7/134"5L, 71C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/135[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/135"' -S /tmp/vCwvDh7/134[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/135" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/136[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/136" 5L, 62C appended6L, 84C

5 substitutions on 5 lines
"/tmp/vCwvDh7/136"6L, 79C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/137[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/137"' -S /tmp/vCwvDh7/136[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/137" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/138[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/138" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vCwvDh7/138"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/139[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/139"' -S /tmp/vCwvDh7/138[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/139" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/140[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/140" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vCwvDh7/140"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/141[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/141"' -S /tmp/vCwvDh7/140[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/141" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/142[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/142" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vCwvDh7/142"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/143[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/143"' -S /tmp/vCwvDh7/142[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/143" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/125" 6L, 167C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/144[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/144" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vCwvDh7/144"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/145[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/145"' -S /tmp/vCwvDh7/144[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/145" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/146[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/146" 7L, 95C appended8L, 117C

7 substitutions on 7 lines
"/tmp/vCwvDh7/146"gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/lua5.2 -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE   -I/usr/include/python3.5m -DPYTHON3_HOME='L"/usr"' -pthread -fPIE -I/usr/include/ruby-2.3.0 -I/usr/include/arm-linux-gnueabihf/ruby-2.3.0 -DRUBY_VERSION=23 -I/usr/include/tcl8.6  -D_REENTRANT=1  -D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1  -o objects/option.o option.c
8L, 110C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/147[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/147"' -S /tmp/vCwvDh7/146[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/147" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/125" 6L, 167C
"test49.in" 32L, 705C

*** Test  54: OK (2047)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/149[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/149" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/150[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/150"' -S /tmp/vCwvDh7/149[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/150" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/148" 6L, 172C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/151[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/151" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vCwvDh7/151"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/152[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/152"' -S /tmp/vCwvDh7/151[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/152" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/153[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/153" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vCwvDh7/153"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/154[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/154"' -S /tmp/vCwvDh7/153[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/154" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/155[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/155" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vCwvDh7/155"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/156[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/156"' -S /tmp/vCwvDh7/155[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/156" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/157[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_cmds.o ex_cmds.c
"/tmp/vCwvDh7/157" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vCwvDh7/157"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/158[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/158"' -S /tmp/vCwvDh7/157[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/158" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/159[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/159" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/160[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/160"' -S /tmp/vCwvDh7/159[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/160" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/148" 6L, 166C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/161[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/161" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vCwvDh7/161"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/162[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/162"' -S /tmp/vCwvDh7/161[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/162" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/163[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/163" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vCwvDh7/163"5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/164[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/164"' -S /tmp/vCwvDh7/163[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/164" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/165[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/165" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vCwvDh7/165"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/166[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/166"' -S /tmp/vCwvDh7/165[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/166" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/167[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/167" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vCwvDh7/167"6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/168[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/168"' -S /tmp/vCwvDh7/167[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/168" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/148" 6L, 170C
"test49.in" 32L, 705C

*** Test  55: OK (1023)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/170[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/170" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/171[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/171"' -S /tmp/vCwvDh7/170[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/171" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/169" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/172[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/172" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vCwvDh7/172"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/173[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/173"' -S /tmp/vCwvDh7/172[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/173" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/174[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/174" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vCwvDh7/174"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/175[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/175"' -S /tmp/vCwvDh7/174[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/175" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/176[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/176" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vCwvDh7/176"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/177[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/177"' -S /tmp/vCwvDh7/176[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/177" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/178[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/178" 3L, 35C appended4L, 57C

3 substitutions on 3 lines
"/tmp/vCwvDh7/178"4L, 54C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/179[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/179"' -S /tmp/vCwvDh7/178[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/179" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/180[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/180" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vCwvDh7/180"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/181[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/181"' -S /tmp/vCwvDh7/180[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/181" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/182[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/182" 4L, 47C appended5L, 69C

4 substitutions on 4 lines
"/tmp/vCwvDh7/182"5L, 65C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/183[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/183"' -S /tmp/vCwvDh7/182[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/183" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/184[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/184" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vCwvDh7/184"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/185[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/185"' -S /tmp/vCwvDh7/184[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/185" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/186[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/186" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vCwvDh7/186"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/187[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vCwvDh7/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vCwvDh7/187"' -S /tmp/vCwvDh7/186[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/187" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vCwvDh7/169" 6L, 155C
"test49.in" 32L, 705C

*** Test  56: OK (511)

   function FuncException()

1      let g:exception = v:exception

   endfunction"/tmp/vCwvDh7/188" [noeol] 4L, 80C
Pattern not found: ^\s*$
"/tmp/vCwvDh7/188"1L, 36C written
"test49.in" 32L, 705C
   function FuncThrowpoint()

1      let g:throwpoint = v:throwpoint

   endfunction"/tmp/vCwvDh7/189" [noeol] 4L, 83C
Pattern not found: ^\s*$
"/tmp/vCwvDh7/189"1L, 38C written
"test49.in" 32L, 705C
   function T(arg, line)

1      if a:line == 2

2throw a:arg" in line 2

3      elseif a:line == 4

4throw a:arg" in line 4

5      elseif a:line == 6

6throw a:arg" in line 6

7      elseif a:line == 8

8throw a:arg" in line 8

9      endif

   endfunction"/tmp/vCwvDh7/190"[noeol] 12L, 341C
9 substitutions on 9 lines
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vCwvDh7/190"9L, 292C written
"test49.in" 32L, 705C
   function G(arg, line)
1      call T(a:arg, a:line)
   endfunction"/tmp/vCwvDh7/191"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vCwvDh7/191"1L, 30C written
"test49.in" 32L, 705C
   function F(arg, line)
1      call G(a:arg, a:line)
   endfunction"/tmp/vCwvDh7/192"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vCwvDh7/192"1L, 30C written
"test49.in" 32L, 705C
*** Test  57: OK (2147450880)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/193[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/193" 87L, 1700C appended88L, 1722C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/194[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/194"' -c 'break

add func 4 T' -S /tmp/vCwvDh7/193[?25h[?0c
[?25l[?1c"/tmp/vCwvDh7/194" 8L, 36C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  58: OK (624945)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/195[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/195" 293L, 5789C appended294L, 5811C

3 substitutions on 3 lines
"/tmp/vCwvDh7/195"294L, 5808C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/196[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/196"' -c 'br

eakadd file 115 /tmp/vCwvDh7/195' -c 'breakadd file 225 /tmp/vCwvDh7/195' -S /tm

p/vCwvDh7/195[?25h[?0c
[?25l[?1c"/tmp/vCwvDh7/196" 28L, 162C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  59: OK (2038431743)
"/n/o/n/w/r/i/t/a/b/l/e/_/f/i/l/e"
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/197[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/197" 33L, 765C appended34L, 787C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/198[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/198"' -c 'break

add file 7 /tmp/vCwvDh7/197' -S /tmp/vCwvDh7/197[?25h[?0c
[?25l[?1c"/tmp/vCwvDh7/198" 3L, 27C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  60: OK (311511339)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/199[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/199" 115L, 2272C appended116L, 2294C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/200[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vimin

fo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/

200"' -c 'breakadd file 8 /tmp/vCwvDh7/199' -c 'breakadd file 36 /tmp/vCwvDh7/19

9' -c 'breakadd file 40 /tmp/vCwvDh7/199' -c 'breakadd file 69 /tmp/vCwvDh7/199'

-c 'breakadd file 95 /tmp/vCwvDh7/199' -c 'breakadd file 97 /tmp/vCwvDh7/199' -

S/tmp/vCwvDh7/199[?25h[?0c
[?25l[?1c"/tmp/vCwvDh7/200" 14L, 81C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  61: OK (374889517)

   function F()

1      while 1

2      " Missing :endwhile

   endfunction"/tmp/vCwvDh7/201"[noeol] 5L, 73C
Pattern not found: ^\s*$
"/tmp/vCwvDh7/201"2L, 40C written
"test49.in" 32L, 705C
*** Test  62: OK (286331153)
"/i/m/p/o/s/s/i/b/l/e" line 5500:

"/i/m/p/o/s/s/i/b/l/e" E212: Can't open file for writing

*** Test  63: OK (236978127)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/202[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/202" 149L, 2828C appended150L, 2850C

6 substitutions on 6 lines
"/tmp/vCwvDh7/202"150L, 2844C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/203[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/203"' -c 'break

add file 63 /tmp/vCwvDh7/202' -S /tmp/vCwvDh7/202[?25h[?0c
[?25l[?1c"/tmp/vCwvDh7/203" 16L, 97C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  64: OK (1499645335)

*** Test  65: OK (70187)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/204[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/204" 78L, 1520C appended79L, 1542C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/205[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/205"' -c 'break

add func 8 F' -S /tmp/vCwvDh7/204[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/205" 6L, 22C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  66: OK (5464)

*** Test  67: OK (212514423)

*** Test  68: OK (212514423)

*** Test  69: OK (8995471)

*** Test  70: OK (69544277)

*** Test  71: OK (34886997)

*** Test  72: OK (1789569365)

   function F0()

   endfunction

   function F1()

   endfunction

*** Test  73: OK (9032615)
"/tmp/vCwvDh7/206" [New File]
"test49.in" 32L, 705C
"/tmp/vCwvDh7/207" [New File]
"test49.in" 32L, 705C

*** Test  74: OK (224907669)

*** Test  75: OK (2000403408)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/208[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/208" 253L, 6369C appended254L, 6391C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/209[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|

set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp

/vCwvDh7/209"' -c 'breakadd func 2 INT' -S /tmp/vCwvDh7/208[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/209" 28L, 167C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  76: OK (1610087935)

Error detected while processing function ERR:

line    2:

E492: Not an editor command:     asdf

E492: Not an editor command:     asdf

E492: Not an editor command:     asdf

*** Test  77: OK (1388671)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/210[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/210" 161L, 4543C appended162L, 4565C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/211[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/211"' -S /tmp/vCwv

Dh7/210[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/211" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  78: OK (134217728)

Error detected while processing function NEXT:

line    1:

E121: Undefined variable: novar

E15: Invalid expression: novar | Xloop 1

E121: Undefined variable: novar

E488: Trailing characters

E108: No such variable: "novar"

E488: Trailing characters

E121: Undefined variable: novar

E15: Invalid expression: novar

E475: Invalid argument: {novar} | Xloop 1

E121: Undefined variable: novar

E15: Invalid expression:  novar

E475: Invalid argument: { novar} | Xloop 1

*** Test  79: OK (70288929)

Error detected while processing /<<PKGBUILDDIR>>/src/vim-basic/te

stdir/test49.vim:

line 7985:

E584: :elseif after :else: elseif 1 ||| 2

line 7995:

E584: :elseif after :else: elseif 1 ||| 2

line 8003:

E582: :elseif without :if: elseif 1 ||| 2

line 8011:

E582: :elseif without :if:     elseif 1 ||| 2

*** Test  80: OK (17895765)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/212[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/212" 15L, 272C appended16L, 294C16L, 293C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/213[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/213"' -S /tmp/vCwv

Dh7/212[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/213" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/214[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/214" 12L, 227C appended13L, 249C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/215[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/215"' -c 'break

add file 8 /tmp/vCwvDh7/214' -S /tmp/vCwvDh7/214[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/215" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  81: OK (387)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/216[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/216" 20L, 417C appended21L, 439C21L, 438C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/217[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/217"' -S /tmp/vCwv

Dh7/216[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/217" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/218[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/218" 24L, 480C appended25L, 502C25L, 501C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/219[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/219"' -S /tmp/vCwv

Dh7/218[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/219" 1L, 4C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/220[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/220" 17L, 390C appended18L, 412C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/221[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/221"' -c 'break

add file 7 /tmp/vCwvDh7/220' -S /tmp/vCwvDh7/220[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/221" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/222[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/222" 21L, 444C appended22L, 466C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/223[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/223"' -c 'break

add func 6 I' -S /tmp/vCwvDh7/222[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/223" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  82: OK (8454401)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/224[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/224" 17L, 307C appended18L, 329C18L, 328C written
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/225[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/225"' -S /tmp/vCwv

Dh7/224[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/225" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/226[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/226" 14L, 266C appended15L, 288C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/227[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/227"' -c 'break

add file 8 /tmp/vCwvDh7/226' -S /tmp/vCwvDh7/226[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vCwvDh7/227" 3L, 13C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  83: OK (2835)
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/228[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/228" 154L, 3580C appended155L, 3602C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/229[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/229"' -c 'br

eakadd func 1 INT' -S /tmp/vCwvDh7/228[?25h[?0c
[?25l[?1c"/tmp/vCwvDh7/229" 18L, 118C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  84: OK (934782101)

TMP
"/tmp/vCwvDh7/230" [noeol] 2L, 6C/  
"test49.in" 32L, 705C
"/n/o/n/e/x/i/s/t/e/n/t"

"/tmp/vCwvDh7/232" 1L, 1C
"test49.in" 32L, 705C

:!echo XYZ >/tmp/vCwvDh7/233[?25h[?0c
[?25l[?1c"/tmp/vCwvDh7/234" [New File]
"test49.in" 32L, 705C

*** Test  85: OK (198689)

line 8769:

E123: Undefined function: F

Make_all.mak
"Make_all.mak" line 1 of 207 --0%-- col 1

line 8772:

E926: Current location list was changed

line 8773:

E193: :endfunction not inside a function

Error detected while processing function ExecAsScript[2]..MakeScript:

line    3:

E123: Undefined function: Fgcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ops.o ops.c

"/tmp/vCwvDh7/235" [noeol] 4L, 109C

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/vCwvDh7/235"3L, 109C written
"Make_all.mak" 207L, 3846C

Error detected while processing /tmp/vCwvDh7/235:

line    1:

E492: Not an editor command: Error detected while processing function ExecAsScr

ipt[2]..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 /<<PKGBUILDDIR>>/src/vim-basic/te

stdir/test49.vim:

line 8779:

E130: Unknown function: F

*** Test  86: OK (0)

5
*** Test  87: OK (0)gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_cmds2.o ex_cmds2.c

"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vCwvDh7/0' >/tmp/vCwvDh7/236[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vCwvDh7/236" 151L, 3929C appended152L, 3951C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vCwvDh7/237[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nvimi

nfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vCwvDh7/237"' -c

'breakadd func 5 ThrowOnInterrupt' -S /tmp/vCwvDh7/236[?25h[?0c
[?25l[?1c"/tmp/vCwvDh7/237" 16L, 281C
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/test49.vim"
<Zm5mB/vim-8.0.0197/src/vim-basic/testdir/test49.vim" [readonly] 9009L, 206880C
"Make_all.mak" 207L, 3846C

*** Test  88: OK (50443995)

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c" Go back to this file and append the results from register r.
[?25l[?1c#
# Common Makefile, defines the list of tests to run.
#

NO_PLUGIN = -U NONE --noplugin --not-a-term

# The first script creates small.vim.
SCRIPTS_FIRST = \test1.out

# Tests that run on all systems.
SCRIPTS_ALL = \test3.out \test4.out \test5.out \test7.out \test8.out \test9.out \test14.out \test15.out \test19.out \test20.out \test22.out \[?25h[?0c[?25l[?1c:[?25h[?0cbuf test49.in
[?25l[?1c"test49.in" 32L, 705C:so test49.vim
:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:":" make valgrind happy
:redir => funclis: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!ENDTESTResults of test49.vim:[?25h[?0c
[?25l[?1c
83 more lines
*** Test  16: OK (8722)83 more lines[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 84L, 2484C written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make valgrind happy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => funclist
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csilent func
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor line in split(funclist, "\n")
[?25l[?1c
:  [?25h[?0c:  let name = matchstr(line, 'function \zs[A-Z]\w*\ze(')

[?25l[?1c:  [?25h[?0c:  if name != ''

[?25l[?1c:    [?25h[?0c:    exe "delfunc " . name

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:"
:" make valgrind happy[?25h[?0c[?25l[?1c
:[?25h[?0cfor v in keys(g:)
[?25l[?1c
:  [?25h[?0c:  silent! exe "unlet " . v

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:" Go back to this file and append the results from register r.
:buf test49.in[?25h[?0c[?25l[?1c
:[?25h[?0cunlet v
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test49 = test61; then \
#	  if diff test.out test49.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test49.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test49.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test97.failed test.ok test.out X* viminfo
cp test97.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test97.in
[?25h[?8c[?25h[?0c[?25l[?1c"test97.in" 23 lines, 484 charactersTest whether glob()/globpath() return correct results with certain escaped
characters.

STARTTEST
:so small.vim
:" make sure glob() doesn't use the shell
:set shell=doesnotexist
:" consistent sorting of file names
:set nofileignorecase
:e! test.out
:$put =glob('Xxx\{')
:$put =glob('Xxx\$')
:w! Xxx{
:w! Xxx\$
:$put =glob('Xxx\{')
:$put =glob('Xxx\$')
:"
:$put =string(globpath('sautest/autoload', '*.vim'))
:$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest whether glob()/globpath() return correct results with certain escaped[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 377 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure glob() doesn't use the shell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset shell=doesnotexist
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" consistent sorting of file names
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nofileignorecase
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\{')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xxx{
[?25l[?1c
Cannot execute shell doesnotexist


E79: Cannot expand wildcards

"Xxx{" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! Xxx\$
[?25l[?1c"Xxx$" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\{')
[?25l[?1cXxx{
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\$')
[?25l[?1cXxx$[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(globpath('sautest/autoload', '*.vim'))
[?25l[?1c'sautest/autoload/Test104.vimsautest/autoload/footest.vim'[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
[?25l[?1c['sautest/autoload/Test104.vim', 'sautest/autoload/footest.vim'][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 8 lines, 138 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test97 = test61; then \
#	  if diff test.out test97.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test97.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test97.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listlbr_utf8.failed test.ok test.out X* viminfo
cp test_listlbr_utf8.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr_utf8.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listlbr_utf8.in" 134 lines, 4027 charactersTest for linebreak and list option in utf-8 mode

STARTTEST
:so small.vim
:if !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!
test.out | qa! | endif
:so mbyte.vim
:set encoding=utf8
:if &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
:10new|:vsp|:vert resize 20
:put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width, lines)
:let c=''
:for j in range(1,a:lines)
:for i in range(1,a:width)
:let c.=nr2char(screenchar(j, i))
:endfor
:let c.="\n"
:endfor
:return c
:endfu[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for linebreak and list option in utf-8 mode[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 129 lines, 3948 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set list nolinebreak cc=3
:sign define foo text=^Vuff0b
:sign place 1 name=foo line=50 buffer=2
:norm! 2kztj
:let line1=line('.')
0GGlGGlGGlGGl
:let line2=line('.')
:let attr2=attr
:let attr=[]
0GGlGGlGGlGGl
:redraw!
:let line=ScreenChar(winwidth(0),3)
:call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!

test.out | qa! | endif
[?25l[?1c:set list nolinebreak cc=3[?25h[?0c[?25l[?1c
:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf8
[?25l[?1c:set list nolinebreak cc=3
:sign define foo text=^Vuff0b
:sign place 1 name=foo line=50 buffer=2
:norm! 2kztj
:let line1=line('.')
0GGlGGlGGlGGl
:let line2=line('.')
:let attr2=attr
:let attr=[]
0GGlGGlGGlGGl
:redraw!
:let line=ScreenChar(winwidth(0),3)
:call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
[?25h[?0c[?25l[?1c
:[?25h[?0cif &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c10new|:vsp|:vert resize 20
[?25l[?1c                    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name]            ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name]                                                  call DoRecordScreen()" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")else   call append('$', "Screen attributes are the same!")
:endif%w! test.out
:qaENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0cput =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [+][?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25l[?1cabcdef          
+hijklmn            
+pqrstuvwxyz 1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [?25h[?0c[?25l[?1c:[?25h[?0cfu! ScreenChar(width, lines)
[?25l[?1c
:  [?25h[?0c:^Ilet c=''

[?25l[?1c:  [?25h[?0c:^Ifor j in range(1,a:lines)

[?25l[?1c:    [?25h[?0c:^I    for i in range(1,a:width)

[?25l[?1c:      [?25h[?0c:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l[?1c:      [?25h[?0c:^I    endfor

[?25l[?1c:    [?25h[?0c:           let c.="\n"

[?25l[?1c:    [?25h[?0c:^Iendfor

[?25l[?1c:  [?25h[?0c:^Ireturn c

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0cfu! DoRecordScreen()
[?25l[?1c
:  [?25h[?0c:^Iwincmd l

[?25l[?1c:  [?25h[?0c:^I$put =printf(\"\n%s\", g:test)

[?25l[?1c:  [?25h[?0c:^I$put =g:line

[?25l[?1c:  [?25h[?0c:^Iwincmd p

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 1: set linebreak + set list + fancy listchars"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eo

l:\ub6"
[?25l[?1c▕———abcdef|▕———␣ˑ¶[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c▕———abcdef|
+hijklmn▕———|
+pqrstuvwxyz␣1060ABC|
+DEFGHIJKLMNOPˑ¶|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines¶                   
Test 1: set         
+linebreak + set    
+list + fancy       
+listchars¶         
▕———abcdefˑˑˑˑˑˑˑˑˑˑ
@                   Test 1: set linebreak + set list + fancy listchars▕———abcdef          +hijklmn▕———        +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶    [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 2: set nolinebreak list"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list nolinebreak
[?25l[?1chijklmn▕—pqrstuvwxyz␣1060ABCDEFGHIJKLMNOPˑ¶    
¶               
Test 1: set linebrea
+k + set list + fancy listchars¶   
▕———abcdefˑˑˑˑˑˑˑˑˑˑ¶         
+hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c▕———abcdef hijklmn▕—|
+pqrstuvwxyz␣1060ABC|
+DEFGHIJKLMNOPˑ¶|
¶|
Test 1: set linebrea|
+k + set list + fanc|
+y listchars¶|
▕———abcdefˑˑˑˑˑˑˑˑˑˑ|
+¶|
+hijklmn▕———ˑˑˑˑˑˑˑˑ|
@                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOPTest 1: set linebreak + set list + fancy listchars▕———abcdef+hijklmn▕———+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶~                                                          ~                                                          [No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            +hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines▕———abcdef                                                 +hijklmn▕———                                               +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 3: set linebreak nolist"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\t*mask = nil;\"
[?25l[?1c▕———▕—¶                  
+pqrstuvwxyz␣1060ABC
+¶+DEFGHIJKLMNOPˑ¶ˑˑˑˑ¶                 
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ
+¶                  
▕———*mask = nil;¶~[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c▕———*mask = nil;¶   
~                   
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak
[?25l[?1c     
    [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c*mask = nil;    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ▕———abcdef+hijklmn▕———+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 3: set         
+linebreak nolist   
    *mask = nil;    
~                   
~                   
~                   +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ¶                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       *mask = nil;Test 3: set linebreak nolist*mask = nil;~~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 4: set linebreak list listchars and concealing"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet c_defines=['#define ABCDE^I^I1','#define ABCDEF^I^I1','#define ABCDEFG^I^I

1','#define ABCDEFGH^I1', '#define MSG_MODE_FILE^I^I^I1','#define MSG_MODE_CONSO

LE^I^I2','#define MSG_MODE_FILE_AND_CONSOLE^I3','#define MSG_MODE_FILE_THEN_CONS

OLE^I4']
[?25l[?1c*mask = nil;    ||
Test 3: set|+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', c_defines)
[?25l[?1c#define             
+ABCDE      1       [?25h[?0c[?25l[?1c:[?25h[?0cvert resize 40
[?25l[?1c                    |                    |linebreak nolist|
    *mask = nil;                        |
~                    |                    |                    |
#define ABCDE1 |ABCDEF      1 |
#define ABCDEFG     1 |                    +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶*mask = nil;Test 3: set linebreak nolist*mask = nil;~~~[No Name] [+][?25h[?0c[?25l[?1c:[?25h[?0c$-7
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c#define ABCDE       1                   
#define ABCDEF      1                   
#define ABCDEFG     1                   
                                        
                                        
                                        
                                        
                                        
                                        
                                        #define ABCDEFGH    1
#define MSG_MODE_FILE1
#define MSG_MODE_CONSOLE2
#define MSG_MODE_FILE_AND_CONSOLE   3
#define MSG_MODE_FILE_THEN_CONSOLE  4
~                                       
~                                       [?25h[?0c[?25l[?1c:[?25h[?0cset list linebreak listchars=tab:>- cole=1
[?25l[?1c>-->--->->--->>--->--->-->--->--->--->--->-->-[?25h[?0c[?25l[?1c:[?25h[?0csyn match Conceal conceal cchar=>'AB\|MSG_MODE'
[?25l[?1cAB>CDEF>->CDEFG>->CDEFGH>->_FILE>------->_CONSOLE>------->_FILE_AND_CONSOLE>------->_FILE_THEN_CONSOLE>-------AB[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c#define ABCDE>-->---1|
#define >CDEF>-->---1|
#define >CDEFG>->---1|
#define >CDEFGH>----1|
#define >_FILE>--------->--->---1|
#define >_CONSOLE>---------->---2|
#define >_FILE_AND_CONSOLE>---------3   |
#define >_FILE_THEN_CONSOLE>--------4   |||~                                       
~                                       
[No Name] [+]                            +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶*mask = nil;Test 3: set linebreak nolist*mask = nil;~~~[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),7)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c>CDE>-7 more lines                                        
Test 4: set linebreak list listchars    
@                                       #define >CDEFG>->---1+ #define >CDEFGH>----1+#define >_FILE>--------->--->---1+ #define >_CONSOLE>---------->---2+#define >_FILE_AND_CONSOLE>---------3+ABCDE>
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 5: set linebreak list listchars and concealing part2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet c_defines=['bbeeeeee^I^I;^Isome text']
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', c_defines)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c@                                       
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        Test 4: set linebreak list listchars    
+and concealing
#define >CDE>-->---1
#define >CDEF>-->---1
#define >CDEFG>->---1
#define >CDEFGH>----1
#define >_FILE>--------->--->---1
#define >_CONSOLE>---------->---2
#define >_FILE_AND_CONSOLE>---------3
bbeeeeee>--->---;>--some text[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1cbbeeeeee>--->---;>--some text           
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       [?25h[?0c[?25l[?1c:[?25h[?0cset nowrap ts=2 list linebreak listchars=tab:>- cole=2 concealcursor=n
[?25l[?1c>;>some text      [?25h[?0c[?25l[?1c:[?25h[?0csyn clear
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match meaning    /;\s*\zs.*/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match hasword    /^\x\{8}/    contains=word
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match word       /\<\x\{8}\>/ contains=beginword,endword contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match beginword  /\<\x\x/     contained conceal
[?25l[?1ceeeeee>--[?25h[?0c[?25l[?1c:[?25h[?0csyn match endword    /\x\{6}\>/   contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi meaning   guibg=blue
[?25l[?1csome text[?25h[?0c[?25l[?1c:[?25h[?0chi beginword guibg=green
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi endword   guibg=red
[?25l[?1ceeeeee[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1ceeeeee>--->-;>some text||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
[No Name] [+]                            #define >CDEFG>->---1+#define >CDEFGH>----1+#define >_FILE>--------->--->---1+#define >_CONSOLE>---------->---2+#define >_FILE_AND_CONSOLE>---------3+[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c                                        
Test 5: set linebreak list listchars and
eeeeee>--->-;>some text                 #define >_CONSOLE>---------->---2      +                                      #define >_FILE_AND_CONSOLE>---------3  +                                                                                                                                                                                                                                                                                bbeeeeee    ; some textTest 5: set linebreak list listchars an+d concealing part2eeeeee>--->-;>some text                + [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 6: Screenattributes for comment"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 6: Screenattributes for comment    [?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', ' /*^I^I and some more */')
[?25l[?1c /*>>- and some more */                 [?25h[?0c[?25l[?1c:[?25h[?0cexe "set ft=c ts=7 linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail

:\u02d1,eol:\ub6"
[?25l[?1ceeeeee▕———————▕——————;▕—————some text¶|
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ¶▕———▕—————— and some more */¶#define >_CONSOLE>---------->---2         ;      some text[?25h[?0c[?25l[?1c:[?25h[?0csyntax on
[?25l[?1cbbeeeeee▕some text5>some text6for
 /* and some more */#define >_CONSOLE>---------->---2       #define >_FILE_AND_CONSOLE>---------3   bbeeeeeesome text5>some text                 [?25h[?0c[?25l[?1c:[?25h[?0chi SpecialKey term=underline ctermfg=red guifg=red
[?25l[?1c▕—————▕——————▕—————ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ▕———▕——————[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnnoremap <expr> GG ":let attr += ['".screenattr(screenrow(),screencol())."']\n

"[?25l[?1cbbeeeeee▕—————▕——————;▕—————some text¶|#define >_CONSOLE>---------->---2      [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt0
[?25l[?1c /*▕———▕—————— and some more */¶        
~                                       
~                                       
~                                       
~                                       
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       [?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['99']
[?25h[?0c[?25l[?1c:let attr += ['99']
[?25h[?0c[?25l[?1c:let attr += ['82']
[?25h[?0c[?25l[?1c:let attr += ['82']
[?25h[?0c[?25l[?1c:let attr += ['99']
[?25h[?0c[?25l[?1c:let attr += ['99']
[?25h[?0c[?25l[?1c:let attr += ['99']
[?25h[?0c[?25l[?1c:let attr += ['99']
[?25h[?0c[?25l[?1c:let attr += ['99']
[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', ['ScreenAttributes for test6:'])
[?25l[?1cScreenAttributes for test6:¶            [?25h[?0c[?25l[?1c:[?25h[?0cif attr[0] != attr[1] && attr[1] != attr[3] && attr[3] != attr[5]
[?25l[?1c
:  [?25h[?0c:   call append('$', "Attribut 0 and 1 and 3 and 5 are different!")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:   call append('$', "Not all attributes are different")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c/*▕———▕—————— and some more */¶|
ScreenAttributes for test6:¶|
Attribut 0 and 1 and 3 and 5 are differe||
~                                       #define >_CONSOLE>---------->---2      + #define >_FILE_AND_CONSOLE>---------3  + [?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 8: set linebreak with visual block mode and v_b_A and select

ion=exclusive and multibyte char"
[?25l[?1c/*▕———▕—————— and some more */¶|#define >_CONSOLE>---------->---2      [?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 8: set linebreak with visual block [?25h[?0c[?25l[?1clong line:ˑ¶                            [?25h[?0c[?25l[?1c¶                               
¶                           
¶                                       
¶                                      
oobar foobar foobar foobar foobarˑ¶[?25h[?0c[?25l[?1c
foobar foobar TARGET¶              [?25h[?0c[?25l[?1cÃ' at end¶[?25h[?0c[?25l[?1c:[?25h[?0cexe "norm! $3B\<C-v>eAx\<Esc>"
[?25l[?1cx' at end¶[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 9: a multibyte sign and colorcolumn"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr2=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c /*▕———▕—————— and some more */¶ScreenAttributes for test6:¶Attribut 0 and 1 and 3 and 5 are differe
Test 8: set linebreak with visual block
long line: foobar foobar foobar foobar f
¶                                       [?25h[?0c[?25l[?1c:[?25h[?0c$put ='a b c'
[?25l[?1ca b c¶                                  [?25h[?0c[?25l[?1c:[?25h[?0c$put ='a b c'
[?25l[?1ca b c¶                                  [?25h[?0c[?25l[?1c:[?25h[?0cset list nolinebreak cc=3
[?25l[?1c*
Scr
Att
Tesn 
a b
a b[?25h[?0c[?25l[?1c:[?25h[?0csign define foo text=^+
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csign place 1 name=foo line=50 buffer=2
[?25l[?1c   /*▕—▕—— and some more */¶  ScreenAttributes for test6:¶  Attribut 0 and 1 and 3 and 5 are diff
  Test 8: set linebreak with visual bloc
  long line: foobar foobar foobar foobar
  ¶ 
+a b c¶  a b c¶  
  ~~  #define >_CONSOLE>-->---2  +     #define >_FILE_AND_CONSOLE>--3  +     bbeeeeee  ;      some text    Test 5: set linebreak list listchars   +and concealing part2  eeeeee>--->-;>some text  +[?25h[?0c[?25l[?1c:[?25h[?0cnorm! 2kztj
[?25l[?1c  ¶                                     
+a b c¶                                
  a b c¶                                
  ~                                     
  ~                                     
                                        
                                        
                                        
                                        
                                          
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     [?25h[?0c[?25l[?1c:[?25h[?0clet line1=line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['92']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:[?25h[?0clet line2=line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr2=attr
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['92']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c  ¶ |
+a b c¶|
  a b c¶||||||||  
  
  
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     
[No Name] [+]                              #define >_CONSOLE>---------->---2      +     #define >_FILE_AND_CONSOLE>---------3  +     bbeeeeee;      some text    Test 5: set linebreak list listchars  +and concealing part2  eeeeee>--->-;>some text  +[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),3)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c3 more lines¶                                     Test 9: a multibyte sign and colorcolu  ¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ+a b c¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ  a b c¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑa b cTest 9: a multibyte sign and colorcolumn  ¶                     ++a b c¶                                 a b c¶               [?25h[?0c[?25l[?1c:[?25h[?0c" expected: attr[2] is different because of colorcolumn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
[?25l[?1c
:  [?25h[?0c:   call append('$', "Screen attributes are different!")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:   call append('$', "Screen attributes are the same!")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c  ¶ |
+a b c¶|
  a b c¶|
  ¶ |Screen attributes are the same!¶        a b c    Test 9: a multibyte sign and colorcol  +umn[?25h[?0c[?25l[?1c:[?25h[?0c%w! test.out
[?25l[?1c"test.out" [New File] 57 lines, 1882 characters writtentest.out     test.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listlbr_utf8 = test61; then \
#	  if diff test.out test_listlbr_utf8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listlbr_utf8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr_utf8.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test54.failed test.ok test.out X* viminfo
cp test54.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test54.in
[?25h[?8c[?25h[?0c[?25l[?1c"test54.in" 22 lines, 658 charactersSome tests for buffer-local autocommands

STARTTEST
:so small.vim
:e xx
:if has("vms")
: !del test.out.*
: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out
:else
: !rm -f test.out
: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out
:endif
:e somefile" here, autocommand for xx shall write test.out
:" but autocommand shall not apply to buffer named <buffer>:bwipe xx" here, autocommand shall be auto-deleted
:e xx" nothing shall be written
:e somefile" nothing shall be written
:qa!
ENDTEST

start of test file xx
end of test file xx[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cSome tests for buffer-local autocommands[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 15 lines, 555 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce xx
[?25l[?1c"xx" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: !del test.out.*

[?25l[?1c:  [?25h[?0c: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > te

st.out

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: !rm -f test.out

[?25l[?1c:!rm -f test.out[?25h[?0c
[?25l[?1c:  [?25h[?0c: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce somefile           " here, autocommand for xx shall write test.out 
[?25l[?1c:!echo buffer-local autommand in xx>> test.out

[?25h[?0c[?25l[?1c"somefile" [New File]

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c                     " but autocommand shall not apply to buffer named <buffer

>[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe xx             " here, autocommand shall be auto-deleted
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce xx                 " nothing shall be written
[?25l[?1c"xx" [New File][?25h[?0c[?25l[?1c:[?25h[?0ce somefile           " nothing shall be written
[?25l[?1c"somefile" [New File][?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test54 = test61; then \
#	  if diff test.out test54.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test54.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test54.in; \
#	  fi \
#	fi"
# 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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/os_unix.o os_unix.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test17.in
[?25h[?8c[?25h[?0c[?25l[?1c"test17.in" 135 lines, 2431 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
:"
:if has("unix")
:let $CDIR = "."
/CDIR
:else
:if has("amiga")
:let $TDIR = "/testdir"
:else
:let $TDIR = "."
:endif
/TDIR
:endif[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 564 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("ebcdic")
[?25l[?1c
:  [?25h[?0c: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:if has("unix")
:let $CDIR = "."
/CDIR[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:let $CDIR = "."

[?25l[?1c:  [?25h[?0c/CDIR

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:if has("amiga")

[?25l[?1c:    [?25h[?0c:let $TDIR = "/testdir"

[?25l[?1c:    [?25h[?0c:else

[?25l[?1c:    [?25h[?0c:let $TDIR = "."

[?25l[?1c:    [?25h[?0c:endif

[?25l[?1c:  [?25h[?0c/TDIR

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:if has("unix")
:let $CDIR = "."
/CDIR
:else
:if has("amiga")
:let $TDIR = "/testdir"
:else
:let $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.outw! test.outgf:set ff=unix
:w! test.out
:brewindENDTEST${CDIR}/test17a.in[?25h[?0c[?25l[?1c
:[?25h[?0c" Dummy writing for making that sure gf doesn't fail even if the current
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" file is modified. It can be occurred when executing the following command
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" directly on Windows without fixing the 'fileformat':
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  > nmake -f Make_dos.mak test17.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 135 lines, 2431 characters written[?25h[?0c[?25l[?1c
"/<<PKGBUILDDIR>>/src/vim-basic/testdir/./test17a.in" 3 lines, 88

characters

Press ENTER or type command to continue[?25h[?0c[?25l[?1cThis file is just to test "gf" in test 17.
The contents is not important.
Just testing!
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" 3 lines, 88 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 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.outgf:set ff=unix:w! test.out:brewindENDTEST        ${CDIR}/test17a.in        $TDIR/test17a.inSTARTTEST:" check for 'include' without \zs or \ze:lang C:call delete("./Xbase.a"):call delete("Xdir1", "rf"):!mkdir Xdir1:!mkdir "Xdir1/dir2":e! Xdir1/dir2/foo.ai#include   "bar.a"^[:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 23 lines, 396 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:e Xdir1/dir2/baz.a
i#include"foo.a"^[:
:w
:e Xbase.a
:set path=Xdir1/dir2
i#include    <foo.a>^[:
:w
:redir! >>test.out
:checkpath!
:redir END
:brewind
ENDTEST

STARTTEST
:" check for 'include' with \zs and \ze
:call delete("./Xbase.b")
:call delete("Xdir1", "rf")
:!mkdir Xdir1
:!mkdir "Xdir1/dir2"
:let &include='^\s*%inc\s*/\zs[^/]\+\ze'
:function! DotsToSlashes()
:  return substitute(v:fname, '\.', '/', 'g') . '.b'
:endfunction[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' without \zs or \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.a")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.a
[?25l[?1c"Xdir1/dir2/foo.a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c#include   "bar.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.a" [New File] 1 line, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.a
[?25l[?1c"Xdir1/dir2/bar.a" [New File][?25h[?0c[?25l[?1c#include      "baz.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.a" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.a
[?25l[?1c"Xdir1/dir2/baz.a" [New File][?25h[?0c[?25l[?1c#include"foo.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.a" [New File] 1 line, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.a
[?25l[?1c"Xbase.a" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c#include    <foo.a>[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.a" [New File] 1 line, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c#include    <foo.a>
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 charactersi#include            "foo.a"^[:
:w:e Xbase.a:set path=Xdir1/dir2i#include    <foo.a>^[::w:redir! >>test.out:checkpath!:redir END:brewindENDTESTSTARTTEST:" check for 'include' with \zs and \ze:call delete("./Xbase.b"):call delete("Xdir1", "rf"):!mkdir Xdir1:!mkdir "Xdir1/dir2":let &include='^\s*%inc\s*/\zs[^/]\+\ze':function! DotsToSlashes():  return substitute(v:fname, '\.', '/', 'g') . '.b':endfunction:let &includeexpr='DotsToSlashes()'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 27 lines, 532 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 delete("Xdir1", "rf")
:!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][?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' with \zs and \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.b")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0clet &include='^\s*%inc\s*/\zs[^/]\+\ze'
[?25l[?1c: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 delete("Xdir1", "rf")
:!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][?25h[?0c[?25l[?1c:[?25h[?0cfunction! DotsToSlashes()
[?25l[?1c
:  [?25h[?0c:  return substitute(v:fname, '\.', '/', 'g') . '.b'

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:e Xdir1/dir2/baz.b
i%inc/foo/^[:[?25h[?0c[?25l[?1c:[?25h[?0clet &includeexpr='DotsToSlashes()'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.b
[?25l[?1c"Xdir1/dir2/foo.b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c%inc   /bar/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.b" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.b
[?25l[?1c"Xdir1/dir2/bar.b" [New File][?25h[?0c[?25l[?1c%inc      /baz/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.b" [New File] 1 line, 16 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.b
[?25l[?1c"Xdir1/dir2/baz.b" [New File][?25h[?0c[?25l[?1c%inc/foo/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.b" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.b
[?25l[?1c"Xbase.b" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c%inc    /foo/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.b" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c%inc    /foo/
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 charactersi%inc            /foo/^[:
:w:e Xbase.b:set path=Xdir1/dir2i%inc    /foo/^[::w:redir! >>test.out:checkpath!:redir END:brewindENDTESTSTARTTEST:" check for 'include' with \zs and no \ze:call delete("./Xbase.c"):call delete("Xdir1", "rf"):!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[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 39 lines, 745 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' with \zs and no \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.c")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0clet &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0cfunction! StripNewlineChar()
[?25l[?1c
:  [?25h[?0c:  if v:fname =~ '\n$'

[?25l[?1c:    [?25h[?0c:    return v:fname[:-2]

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  return v:fname

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:w
:e Xdir1/dir2/baz.c
i%incfoo.c^[:
:w
:e Xdir1/dir2/FALSE.c[?25h[?0c[?25l[?1c
:[?25h[?0clet &includeexpr='StripNewlineChar()'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.c
[?25l[?1c"Xdir1/dir2/foo.c" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c%inc   bar.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.c" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.c
[?25l[?1c"Xdir1/dir2/bar.c" [New File][?25h[?0c[?25l[?1c%inc      baz.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.c" [New File] 1 line, 16 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.c
[?25l[?1c"Xdir1/dir2/baz.c" [New File][?25h[?0c[?25l[?1c%incfoo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/FALSE.c
[?25l[?1c"Xdir1/dir2/FALSE.c" [New File][?25h[?0c[?25l[?1c%incfoo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/FALSE.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.c
[?25l[?1c"Xbase.c" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c%inc    FALSE.c foo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c%inc    FALSE.c foo.c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 characters:w:e Xdir1/dir2/baz.ci%inc            foo.c^[::w:e Xdir1/dir2/FALSE.ci%inc            foo.c^[::w:e Xbase.c:set path=Xdir1/dir2i%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:qENDTEST[?25h[?0c[?25l[?1c:[?25h[?0c" change "\" to "/" for Windows and fix 'fileformat'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce test.out
[?25l[?1c"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)[?25h[?0c[?25l[?1c:[?25h[?0c%s#\\#/#g
[?25l[?1cE486: Pattern not found: \\[?25h[?0c[?25l[?1c:[?25h[?0cset ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 33 lines, 655 characters written[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test17 = test61; then \
#	  if diff test.out test17.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test17.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test17.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test30.in
[?25h[?8c[?25h[?0c[?25l[?1c"test30.in" 237 lines, 3762 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=
:/^unix/;/eof/-1w! XXUnix
:/^dos/;/eof/-1w! XXDos
:set bin noeol
:$w! XXMac
Gonoeol^[
:$w! XXEol
:set nobin eol
:enew!
:bwipe XXUnix XXDos XXMac
:" create mixed format files
:if has("vms")
: !copy XXUnix,XXDos XXUxDs.
: !copy XXUnix,XXMac XXUxMac.
: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for a lot of variations of the 'fileformats' option[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 221 lines, 3592 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72
Go8^[:$r XXtt81
:$r XXtt82
Go9^[:$r XXtt91
:$r XXtt92
:$r XXtt93
Go10^[:$r XXUnix
:set nobinary ff&
:w
:qa!
ENDTEST

unix
unix
eof

dos^M
dos^M
eof

mac^Mmac^M[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" first write three test files, one in each format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^unix/;/eof/-1w! XXUnix
[?25l[?1c"XXUnix" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^dos/;/eof/-1w! XXDos
[?25l[?1c"XXDos" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset bin noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$w! XXMac
[?25l[?1c"XXMac" [New File][Incomplete last line] 1 line, 8 characters written[?25h[?0c[?25l[?1c
noeol[?25h[?0c[?25l[?1c
:[?25h[?0c$w! XXEol
[?25l[?1c"XXEol" [New File][Incomplete last line] 1 line, 5 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset nobin eol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cenew!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c3 buffers wiped out[?25h[?0c[?25l[?1c:[?25h[?0c" create mixed format files
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: !copy XXUnix,XXDos XXUxDs.

[?25l[?1c:  [?25h[?0c: !copy XXUnix,XXMac XXUxMac.

[?25l[?1c:  [?25h[?0c: !copy XXDos,XXMac  XXDosMac.

[?25l[?1c:  [?25h[?0c: !copy XXMac,XXEol  XXMacEol.

[?25l[?1c:  [?25h[?0c: !copy XXUnix,XXDos,XXMac XXUxDsMc.

[?25l[?1c:  [?25h[?0c:elseif has("win32")

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXDos XXUxDs

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXMac XXUxMac

[?25l[?1c:  [?25h[?0c: !copy /b XXDos+XXMac XXDosMac

[?25l[?1c:  [?25h[?0c: !copy /b XXMac+XXEol XXMacEol

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXDos+XXMac XXUxDsMc

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: !cat XXUnix XXDos >XXUxDs

[?25l[?1c:!cat XXUnix XXDos >XXUxDs[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXUnix XXMac >XXUxMac

[?25l[?1c:!cat XXUnix XXMac >XXUxMac[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXDos XXMac >XXDosMac

[?25l[?1c:!cat XXDos XXMac >XXDosMac[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXMac XXEol >XXMacEol

[?25l[?1c:!cat XXMac XXEol >XXMacEol[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXUnix XXDos XXMac >XXUxDsMc

[?25l[?1c:!cat XXUnix XXDos XXMac >XXUxDsMc[?25h[?0c
[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' empty
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" 2 lines, 10 charactersunix
unix[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" 2 lines, 10 charactersdos^M
dos^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt01
[?25l[?1c"XXtt01" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [Incomplete last line] 1 line, 8 charactersmacmac^M
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt02
[?25l[?1c"XXtt02" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=dos
[?25l[?1c:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72Go8^[:$r XXtt81:$r XXtt82Go9^[:$r XXtt91:$r XXtt92:$r XXtt93Go10^[:$r XXUnix:set nobinary ff&:w:qa!ENDTESTunixunixeofdos^Mdos^Meofmac^Mmac^M[?25h[?0c[?25l[?1c
:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" [CR missing][dos format] 2 lines, 10 charactersunixunix~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt11
[?25l[?1c"XXtt11" [New File][dos format] 2 lines, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" [dos format] 2 lines, 10 charactersdosdos[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt12
[?25l[?1c"XXtt12" [New File][dos format] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [Incomplete last line][dos format] 1 line, 8 charactersmac^Mmac^M
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt13
[?25l[?1c"XXtt13" [New File][dos format] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=mac
[?25l[?1c:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72Go8^[:$r XXtt81:$r XXtt82Go9^[:$r XXtt91:$r XXtt92:$r XXtt93Go10^[:$r XXUnix:set nobinary ff&:w:qa!ENDTESTunixunixeofdosdoseofmac^Jmac[?25h[?0c[?25l[?1c
:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" [Incomplete last line][mac format] 1 line, 10 charactersunix^Junix^J
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt21
[?25l[?1c"XXtt21" [New File][mac format] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" [Incomplete last line][mac format] 3 lines, 10 charactersdos^Jdos^J[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt22
[?25l[?1c"XXtt22" [New File][mac format] 3 lines, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [mac format] 2 lines, 8 charactersmac
mac~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt23
[?25l[?1c"XXtt23" [New File][mac format] 2 lines, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c^Jdos
^Jeof^J^Jmac
mac^J[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to one format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt31
[?25l[?1c"XXtt31" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt32
[?25l[?1c"XXtt32" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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] 237 lines, 3762 characters[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [mac format] 4 lines, 28 charactersunix^Junix^Jdos^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt33
[?25l[?1c"XXtt33" [New File][mac format] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters^Jdoseof^J^Jmac
mac^J[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to two formats
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt41
[?25l[?1c"XXtt41" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxMac
[?25l[?1c"XXUxMac" [Incomplete last line] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt42
[?25l[?1c"XXtt42" [New File] 3 lines, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDosMac
[?25l[?1c"XXDosMac" [Incomplete last line][dos format] 3 lines, 18 charactersdodos
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt43
[?25l[?1c"XXtt43" [New File][dos format] 3 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXDosMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDs
[?25l[?1c"XXUxDs" 4 lines, 20 charactersunixunix
dos^Mdos^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt51
[?25l[?1c"XXtt51" [New File] 4 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDs
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt52
[?25l[?1c"XXtt52" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDosMac
[?25l[?1c"XXDosMac" [mac format] 4 lines, 18 charactersdo^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt53
[?25l[?1c"XXtt53" [New File][mac format] 4 lines, 18 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXDosMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cunix,mac:unix[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt54
[?25l[?1c"XXtt54" [New File] 2 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDs
[?25l[?1c"XXUxDs" [CR missing][dos format] 4 lines, 20 charactersunixunix
dosdos
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt61
[?25l[?1c"XXtt61" [New File][dos format] 4 lines, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDs
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxMac
[?25l[?1c"XXUxMac" [Incomplete last line][CR missing][dos format] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cdos,mac:dos[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt62
[?25l[?1c"XXtt62" [New File][dos format] 4 lines, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxMac
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt63
[?25l[?1c"XXtt63" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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] 237 lines, 3762 characters[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMacEol
[?25l[?1c"XXMacEol" [Incomplete last line][mac format] 3 lines, 13 charactersmacmac
noeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cdos,mac:mac[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt64
[?25l[?1c"XXtt64" [New File][mac format] 4 lines, 26 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXMacEol
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to three formats
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt71
[?25l[?1c"XXtt71" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cunix,dos,mac:unix[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt72
[?25l[?1c"XXtt72" [New File] 2 lines, 24 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac,dos,unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt81
[?25l[?1c"XXtt81" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line][mac format] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cmac,dos,unix:mac[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt82
[?25l[?1c"XXtt82" [New File][mac format] 2 lines, 23 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0c" try with 'binary' set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac,unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset binary
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt91
[?25l[?1c"XXtt91" [New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt92
[?25l[?1c"XXtt92" [New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt93
[?25l[?1c"XXtt93" [New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Append "END" to each file so that we can see what the last written char was.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix nobin
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cEND[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt01
[?25l[?1c"XXtt01" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt02
[?25l[?1c"XXtt02" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt11
[?25l[?1c"XXtt11" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt12
[?25l[?1c"XXtt12" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt13
[?25l[?1c"XXtt13" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt21
[?25l[?1c"XXtt21" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt22
[?25l[?1c"XXtt22" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt23
[?25l[?1c"XXtt23" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt31
[?25l[?1c"XXtt31" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt32
[?25l[?1c"XXtt32" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_docmd.o ex_docmd.c
1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt33
[?25l[?1c"XXtt33" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt41
[?25l[?1c"XXtt41" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt42
[?25l[?1c"XXtt42" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt43
[?25l[?1c"XXtt43" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt51
[?25l[?1c"XXtt51" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt52
[?25l[?1c"XXtt52" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt53
[?25l[?1c"XXtt53" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt54
[?25l[?1c"XXtt54" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt61
[?25l[?1c"XXtt61" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt62
[?25l[?1c"XXtt62" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt63
[?25l[?1c"XXtt63" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt64
[?25l[?1c"XXtt64" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt71
[?25l[?1c"XXtt71" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt72
[?25l[?1c"XXtt72" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt81
[?25l[?1c"XXtt81" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt82
[?25l[?1c"XXtt82" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt91
[?25l[?1c"XXtt91" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt92
[?25l[?1c"XXtt92" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt93
[?25l[?1c"XXtt93" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Concatenate the results.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Make fileformat of test.out the native fileformat.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Add a newline at the end.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset binary
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 2 lines, 10 charactersunix
unix[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt01
[?25l[?1c"XXtt01" 3 lines, 14 charactersdos^Mdos^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt02
[?25l[?1c"XXtt02" 2 lines, 13 charactersmac^Mmac^MEND[?25h[?0c
[?25l[?1c
1[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt11
[?25l[?1c"XXtt11" 3 lines, 16 charactersunix^Munix^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt12
[?25l[?1c"XXtt12" 3 lines, 14 charactersdos^Mdos^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt13
[?25l[?1c"XXtt13" 2 lines, 14 charactersmac^Mmac^M^MEND[?25h[?0c
[?25l[?1c
2[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt21
[?25l[?1c"XXtt21" 3 lines, 15 charactersunixunix^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt22
[?25l[?1c"XXtt22" 3 lines, 15 charactersdos^Mdos^M^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt23
[?25l[?1c"XXtt23" 1 line, 12 characters
mac^Mmac^MEND[?25h[?0c[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt31
[?25l[?1c"XXtt31" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt32
[?25l[?1c"XXtt32" 6 lines, 36 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt33
[?25l[?1c"XXtt33" 5 lines, 32 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
unix[?25h[?0c[?25l[?1cunix
dos^M
dos^M
mac^Mmac^MEND
[?25h[?0c[?25l[?1c
4[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt41
[?25l[?1c"XXtt41" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt42
[?25l[?1c"XXtt42" 4 lines, 23 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt43
[?25l[?1c"XXtt43" 4 lines, 24 charactersunix
mac^Mmac^M
END
dos^M[?25h[?0c[?25l[?1cdos^M
mac^Mmac^M^M
END
[?25h[?0c[?25l[?1c
5[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt51
[?25l[?1c"XXtt51" 5 lines, 24 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt52
[?25l[?1c"XXtt52" 6 lines, 33 charactersunix
dos^M
dos^M
END
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt53
[?25l[?1c"XXtt53" 3 lines, 22 charactersunix
dos^M
dos^M
mac^Mmac^M
END
dos^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt54
[?25l[?1c"XXtt54" 3 lines, 24 charactersdos^M
mac^Mmac^MEND
unix,mac:unix[?25h[?0c[?25l[?1cnoeol
END
[?25h[?0c[?25l[?1c
6[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt61
[?25l[?1c"XXtt61" 5 lines, 26 characters
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt62
[?25l[?1c"XXtt62" 5 lines, 39 charactersunix^M
dos^M
dos^M
END
dos,mac:dos^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt63
[?25l[?1c"XXtt63" 6 lines, 36 charactersunix^M
unix^M
mac^Mmac^M^M
END
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt64
[?25l[?1c"XXtt64" 1 line, 30 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
dos,mac:mac^Mmac^Mmac^Mnoeol^MEND[?25h[?0c[?25l[?1c
7[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt71
[?25l[?1c"XXtt71" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt72
[?25l[?1c"XXtt72" 3 lines, 28 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix,dos,mac:unix[?25h[?0c[?25l[?1cnoeol
END
[?25h[?0c[?25l[?1c
8[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt81
[?25l[?1c"XXtt81" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt82
[?25l[?1c"XXtt82" 1 line, 27 charactersunix
dos^M
dos^M
mac^Mmac^M
END
mac,dos,unix:mac^Mnoeol^MEND[?25h[?0c[?25l[?1c
9[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt91
[?25l[?1c"XXtt91" 5 lines, 32 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt92
[?25l[?1c"XXtt92" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt93
[?25l[?1c"XXtt93" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?25h[?0c[?25l[?1cunix
dos^M
dos^M
mac^Mmac^MEND
[?25h[?0c[?25l[?1c
10[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXUnix
[?25l[?1c"XXUnix" 2 lines, 10 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0cset nobinary ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 130 lines, 786 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test30 = test61; then \
#	  if diff test.out test30.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test30.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test30.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test32.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for insert expansion[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c[?25l[?1c
:so small.vim[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 533 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cse nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
[?25l[?1c"Xtestfile" [New] 3L, 57C written[?25h[?0c[?25l[?1c:[?25h[?0cse cot=
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       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
ENDTESTstart of testfile
run1run2test32.in                                                                       [?25h[?0c[?25l[?1c-- 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[+][?25h[?0c[?25l[?1c-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?25h[?0c[?25l[?1c3[?25h[?0c
[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?25h[?0c
[?25l[?1c:[?25h[?0cse cpt=.,w,i
[?25l[?1c[?25h[?0c[?25l[?1c-- 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 matchMakefileto      run3
Makefileto      run3
Makefileto      run3[?25h[?0c[?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=kXtestfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw Xtest11.one
[?25l[?1c"Xtest11.one" [New] 9L, 104C writtenXtest11.one  [?25h[?0c[?25l[?1c:[?25h[?0cw Xtest11.two
[?25l[?1c"Xtest11.two" [New] 9L, 104C written[?25h[?0c[?25l[?1c-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning dictionary: Xtestfilematch in file Xtestfile-- Keyword completion (^N^P) match 1 of 9test11[+]I[?25h[?0c [?25l[?1c-- Keyword completion (^N^P) match 1 of 9-- INSERT --[?25h[?0c[?25l[?1c-- INSERT --Xtest11
[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0c" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" CTRL-X CTRL-F again to verify this doesn't cause trouble.
[?25l[?1c[?25h[?0c[?25l[?1c-- 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 442
Make_all.mak
run1 run2d[?25h[?0c [?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c
run1 run2~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0cse cpt=w
[?25l[?1c[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=u nohid
[?25l[?1c[?25h[?0c[?25l[?1c

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
[?25l[?1c[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c
ru[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New] 15L, 175C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test32 = test61; then \
#	  if diff test.out test32.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test32.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test32.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test58.in
[?25h[?8c[?25h[?0c[?25l[?1c"test58.in" 656 lines, 11024 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for spell checking.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2591 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" NOSLITSUGS
:call TestOne('8', '8')
:" Numbers
:call TestOne('9', '9')
:"
:" clean up for valgrind
:delfunc TestOne
:set spl= enc=latin1
:"
gg:/^test output:/,$wq! test.out
ENDTEST

1affstart
SET ISO8859-1


[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Don't want to depend on the locale from the environment
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c:"
:" NOSLITSUGS
:call TestOne('8', '8')
:" Numbers
:call TestOne('9', '9')
:"
:" clean up for valgrind
:delfunc TestOne
:set spl= enc=latin1
:"
gg:/^test output:/,$wq! test.out
ENDTEST

1affstart
SET ISO8859-1


:"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check using z= in new buffer (crash fixed by patch 7.4a.028).
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset maxmem=512 spell
[?25l[?1cvim

STARTTESTlatin1maxmem
iasdaff/.dic
:func TestOne(aff, dicspellfilea:affa:dicspldic and .aff
  exea:aff . 'affstarta:aff . 'affend/-1w! Xtest.aff
  exea:dic . 'dicstarta:dic . 'dicend/-1w! Xtest.dic
  mkspell! Xtest Xtest[?25h[?0c[?25l[?1casdTests for spell checking.     vim: set ft=vim :[?25h[?0c[?25l[?1cChange "asdTests" to:

 1 "Acid tests"

 2 "Attests"

 3 "Ass Tests"

 4 "As Tests"

 5 "Sad Tests"

 6 "Ads Tests"

 7 "As tests"

 8 "As detests"

 9 "Add Tests"

10 "Aid Tests"

11 "Ash Tests"

12 "Ad Tests"

13 "And Tests"

14 "Ask Tests"

15 "Asp Tests"

16 "USD Tests"

17 "Astutest"

18 "Autotests"

19 "Sadists"

20 "Asst Tests"

21 "Assad Tests"

22 "SSD Tests"

Type number and <Enter> or click with mouse (empty cancels): [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Function to test .aff/.dic with list of good and bad words.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc TestOne(aff, dic)
[?25l[?1c
:  [?25h[?0c  set spellfile=

[?25l[?1c:  [?25h[?0c  $put =''

[?25l[?1c:  [?25h[?0c  $put ='test '. a:aff . '-' . a:dic

[?25l[?1c:  [?25h[?0c  " Generate a .spl file from a .dic and .aff file.

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l[?1c:  [?25h[?0c  mkspell! Xtest Xtest

[?25l[?1c:  [?25h[?0c  " use that spell file

[?25l[?1c:  [?25h[?0c  set spl=Xtest.latin1.spl spell

[?25l[?1c:  [?25h[?0c  " list all valid words

[?25l[?1c:  [?25h[?0c  spelldump

[?25l[?1c:  [?25h[?0c  %yank

[?25l[?1c:  [?25h[?0c  quit

[?25l[?1c:  [?25h[?0c  $put

[?25l[?1c:  [?25h[?0c  $put ='-------'

[?25l[?1c:  [?25h[?0c  " find all bad words and suggestions for them

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'good:'

[?25l[?1c:  [?25h[?0c  normal 0f:]s

[?25l[?1c:  [?25h[?0c  let prevbad = ''

[?25l[?1c:  [?25h[?0c  while 1

[?25l[?1c:    [?25h[?0c    let [bad, a] = spellbadword()

[?25l[?1c:    [?25h[?0c    if bad == '' || bad == prevbad || bad == 'badend'

[?25l[?1c:      [?25h[?0c      break

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let prevbad = bad

[?25l[?1c:    [?25h[?0c    let lst = spellsuggest(bad, 3)

[?25l[?1c:    [?25h[?0c    normal mm

[?25l[?1c:    [?25h[?0c    $put =bad

[?25l[?1c:    [?25h[?0c    $put =string(lst)

[?25l[?1c:    [?25h[?0c    normal `m]s

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('1', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1cthe 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']
end
['put', 'uk', 'test']th['put', 'uk', 'test']gebletegek[?25h[?0c[?25l[?1c
kepereneven[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
everles gesvets etele[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l[?1c"Xtest.aff" 151 lines, 3412 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest Xtest
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1c-------
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']
end['put', 'uk', 'test']
the['put', 'uk', 'test']gebletegekkepereneveneverles gesvet etelekbltykk[?25h[?0c[?25l[?1c
kprnfn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
*fls kswts tl[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" also use an addition file
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^addstart/+1,/^addend/-1w! Xtest.latin1.add
[?25l[?1c"Xtest.latin1.add" [New File] 3 lines, 38 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest.latin1.add.spl Xtest.latin1.add
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0cset spellfile=Xtest.latin1.add
[?25l[?1casdTests for spell checking.     vim: set ft=vim :

STARTTEST
:so small.vim
:"
:" Don't want to depend on the locale from the environment[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cinputs
['input', 'puts', 'outputs']
comment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_us.latin1.spl
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['input', 'puts', 'outputs']
comment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ccomment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_gb.latin1.spl
[?25l[?1celequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
elekwent
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_nz.latin1.spl
[?25l[?1celequint
elekwint
elekwint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
elekwent
elequint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cOk
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_ca.latin1.spl
[?25l[?1celequint
elekwint
elekwint

elequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ctest
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet str a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Postponed prefixes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('2', '1')
[?25l[?1c"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

2affend

2good: puts
badendaddstar
/regions=usgbnz
elequ/2/3
addendtest2:test elekwint test elekwent asdf[?25h[?0c[?25l[?1c:[?25h[?0c" Compound words
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('3', '3')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('4', '4')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('5', '5')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('6', '6')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('7', '7')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c1234
mee/391,111,9999
bar/17,61003,123
lead/2
tail/123
middle/77,1
7dicend

bad: mee meea2 prabar probarmaat middle leadmiddle middletail tailleadleadprobar
badend

Test NOSLITSUGS

8affstart
SET ISO8859-1

NOSPLITSUGS
8affend

8dicstart[?25h[?0c[?25l[?1c:[?25h[?0c" NOSLITSUGS
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('8', '8')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c" Numbers
[?25l[?1cNOSPLITSUGS
8affend

8dicstart
1234
foo
bar
faabar
8dicend

8good: foo bar faabar
bad: foobar barfooTest Numbers9affstart9affend9dicstart
1234
foo[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('9', '9')
[?25l[?1cError detected while processing function TestOne:

line    5:

E493: Backwards range given: 1;/^9affstart/+1,/^9affend/-1w! Xtest.aff

"Xtest.dic" 3 lines, 13 characters written

Reading affix file Xtest.aff ...

Reading dictionary file Xtest.dic ...

line      2, word      0 - foo
Compressing word tree...
Compressed 2 of 15 nodes; 13 (86%) remaining

Writing spell file Xtest.latin1.spl ...

Done!

Estimated runtime memory use: 65 bytes

3 lines yanked

3 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1cTest Numbers

9affstart
9affend

9dicstart
1234
foo
bar
9dicend

9good: 0b1011 0777 1234 0x01ff
badend


test output:

test 1-1# ile: Xtest.latin1.spl
Comment
input[?25h[?0c[?25l[?1c:[?25h[?0c" clean up for valgrind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestOne
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset spl= enc=latin1
[?25l[?1cTest Numbers

9affstart
9affend

9dicstart
1234
foo
bar
9dicend

9good: 0b1011 0777 1234 0x01ff
badend


test output:

test 1-1
# file: Xtest.latin1.spl
Comment
deol
input[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^test output:/,$wq! test.out
[?25l[?1c"test.out" [New File] 289 lines, 3844 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test58 = test61; then \
#	  if diff test.out test58.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test58.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test58.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test59.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 106 lines, 2520 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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


[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Don't want to depend on the locale from the environment.  The .aff and .dic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" text is in latin1, the test text is utf-8.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c: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


:" 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[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf-8
[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Function to test .aff/.dic with list of good and bad words.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc TestOne(aff, dic)
[?25l[?1c
:  [?25h[?0c  set spellfile=

[?25l[?1c:  [?25h[?0c  $put =''

[?25l[?1c:  [?25h[?0c  $put ='test '. a:aff . '-' . a:dic

[?25l[?1c:  [?25h[?0c  " Generate a .spl file from a .dic and .aff file.

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l[?1c:  [?25h[?0c  mkspell! Xtest Xtest

[?25l[?1c:  [?25h[?0c  " use that spell file

[?25l[?1c:  [?25h[?0c  set spl=Xtest.utf-8.spl spell

[?25l[?1c:  [?25h[?0c  " list all valid words

[?25l[?1c:  [?25h[?0c  spelldump

[?25l[?1c:  [?25h[?0c  %yank

[?25l[?1c:  [?25h[?0c  quit

[?25l[?1c:  [?25h[?0c  $put

[?25l[?1c:  [?25h[?0c  $put ='-------'

[?25l[?1c:  [?25h[?0c  " find all bad words and suggestions for them

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'good:'

[?25l[?1c:  [?25h[?0c  normal 0f:]s

[?25l[?1c:  [?25h[?0c  let prevbad = ''

[?25l[?1c:  [?25h[?0c  while 1

[?25l[?1c:    [?25h[?0c    let [bad, a] = spellbadword()

[?25l[?1c:    [?25h[?0c    if bad == '' || bad == prevbad || bad == 'badend'

[?25l[?1c:      [?25h[?0c      break

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let prevbad = bad

[?25l[?1c:    [?25h[?0c    let lst = spellsuggest(bad, 3)

[?25l[?1c:    [?25h[?0c    normal mm

[?25l[?1c:    [?25h[?0c    $put =bad

[?25l[?1c:    [?25h[?0c    $put =string(lst)

[?25l[?1c:    [?25h[?0c    normal `m]s

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('1', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1cthe 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[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('kóopërÿnôven')
[?25l[?1c
kepereneven[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
everles gesvets etele[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l[?1c"Xtest.aff" 153 lines, 3426 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest Xtest
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1c-------
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[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('kóopërÿnôven')
[?25l[?1c
kprnfn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
*fls kswts tl[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" also use an addition file
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^addstart/+1,/^addend/-1w! Xtest.utf-8.add
[?25l[?1c"Xtest.utf-8.add" [New File] 3 lines, 38 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest.utf-8.add.spl Xtest.utf-8.add
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0cset spellfile=Xtest.utf-8.add
[?25l[?1cTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1ctomato 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 !![?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cinputs
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_us.utf-8.spl
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ccomment
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_gb.utf-8.spl
[?25l[?1celequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cok
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_nz.utf-8.spl
[?25l[?1celequint
elekwint
elekwint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cOk
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_ca.utf-8.spl
[?25l[?1celequint
elekwint
elekwint

elequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ctest
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet str a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Postponed prefixes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('2', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1caddstart
/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[?25h[?0c[?25l[?1c:[?25h[?0c" Compound words
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('3', '3')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('4', '4')
[?25l[?1c"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 bytesgcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/lua5.2 -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE   -I/usr/include/python3.5m -DPYTHON3_HOME='L"/usr"' -pthread -fPIE -I/usr/include/ruby-2.3.0 -I/usr/include/arm-linux-gnueabihf/ruby-2.3.0 -DRUBY_VERSION=23 -I/usr/include/tcl8.6  -D_REENTRANT=1  -D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1  -o objects/option.o option.c


12 lines yanked

12 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('5', '5')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('6', '6')
[?25l[?1c"Xtest.aff" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/pathdef.o auto/pathdef.c
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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('7', '7')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c1234
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[?25h[?0c[?25l[?1c:[?25h[?0c" clean up for valgrind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestOne
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset spl= enc=latin1
[?25l[?1c1234
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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^test output:/,$wq! test.out
[?25l[?1c"test.out" [New File] 270 lines, 3685 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test59 = test61; then \
#	  if diff test.out test59.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test59.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test59.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test72.in
[?25h[?8c[?25h[?0c[?25l[?1c"test72.in" 146 lines, 2110 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/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for undo file.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 135 lines, 1913 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:bwipe!
:e Xtestfile
foo2bar
:set key=
/bar
:.w >>test.out
u:.w >>test.out
u:.w >>test.out
u:.w >>test.out
:"
:" Rename the undo file so that it gets cleaned up.
:if has("vms")
: call rename("_un_Xtestfile", "Xtestundo")
:else
: call rename(".Xtestfile.un~", "Xtestundo")
:endif
:qa!
ENDTEST

1111 -----
2222 -----

123456789[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile': first a simple one-line change.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100 undofile nomore
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-- INSERT --this is one line[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cs/one/ONE/
[?25l[?1cONE
[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" [New] 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!:e Xtestfilefoo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 1L, 17Cthis is ONE line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1 change; before #2  0 seconds agoone
[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New] 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile', change in original file fails check
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noundofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 1L, 17CONE
[?25h[?0c[?25l[?1c:[?25h[?0cs/line/Line/
[?25l[?1cL
[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cset undofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!:e Xtestfilefoo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 1L, 17Cthis is ONE Line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" TODO: this beeps
[?25l[?1c[?25h[?0c[?5h[?5l[?25l[?1cAlready at oldest change[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 17C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile', add 10 lines, delete 6 lines, undo 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset undofile
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --one
twothreefourfivesixseveneightnineten[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" 4L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2bar
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Conetwonineten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1 more line; before #7  1 seconds agoeight[?25h[?0c[?25l[?1c1 more line; before #6  1 seconds agoseven[?25h[?0c[?25l[?1c1 more line; before #5  1 seconds agosix[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 7L, 33C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test that reading the undofiles when setting undofile works
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noundofile ul=0
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --six
u[?25h[?0cs[?25l[?1c[?25h[?0c[?25l[?1c1 line less; before #8  0 seconds ago
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Cnine
ten~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset undofile ul=100
[?25l[?1c[?25h[?0c[?25l[?1c1 more line; before #7  1 seconds agoeight[?25h[?0c[?25l[?1c1 more line; before #6  1 seconds agoseven[?25h[?0c[?25l[?1c1 more line; before #5  1 seconds agosix[?25h[?0c[?25l[?1c1 more line; before #4  1 seconds agofive[?25h[?0c[?25l[?1c1 more line; before #3  1 seconds agofour[?25h[?0c[?25l[?1c1 more line; before #2  1 seconds agothree[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 10L, 49C appended[?25h[?0c[?25l[?1c:[?25h[?0c" And now with encryption, cryptmethod=zip
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Cninten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=zip
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --monday
tuesdaywednesdaythursdayfriday[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1cEnter same key again: [?25h[?0c******

[?25l[?1cmonday
friday
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile" [crypted] 2L, 14C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1c"Xtestfile" [crypted] 2L, 14Cmonday
friday
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [crypted] 2L, 14C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
[?25l[?1c[?25h[?0c[?25l[?1c1 more line; before #11  1 seconds agothursday[?25h[?0c[?25l[?1c1 more line; before #10  1 seconds agowednesday[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 4L, 33C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" With encryption, cryptmethod=blowfish
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c*******

~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][crypted] 1L, 14C[?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=blowfish ff&
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --jan
febmaraprjun[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c-- INSERT --foo mar[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --bar apr[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1cEnter same key again: [?25h[?0c******

[?25l[?1cjan
feb
bar apr[?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile"gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui_gtk_x11.o gui_gtk_x11.c
 [blowfish] 4L, 20C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2ba
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1c"Xtestfile" [blowfish] 4L, 20Cjan
feb
bar apr
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish] 4L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #15  1 seconds agoap[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c1 more line; before #14  1 seconds agofoo mar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #13  1 seconds agomar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" With encryption, cryptmethod=blowfish2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c*******

~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][blowfish] 1L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=blowfish2 ff&
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --jan
febmaraprjun[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c-- INSERT --foo mar[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --bar apr[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cEnter encryption key: [?25h[?0c*******

[?25l[?1cEnter same key again: [?25h[?0c*******

[?25l[?1cjan
feb[?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile" [blowfish2] 4L, 20C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2ba
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Enter encryption key: [?25h[?0c*******

[?25l[?1c"Xtestfile" [blowfish2] 4L, 20Cjan
feb
bar ap
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish2] 4L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #19  1 seconds agoap[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c1 more line; before #18  1 seconds agofoo mar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #17  2 seconds agomar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Rename the undo file so that it gets cleaned up.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: call rename("_un_Xtestfile", "Xtestundo")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: call rename(".Xtestfile.un~", "Xtestundo")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cjan
feb
mar
apr[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test72 = test61; then \
#	  if diff test.out test72.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test72.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test72.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test78.failed test.ok test.out X* viminfo
cp test78.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test78.in
[?25h[?8c[?25h[?0c[?25l[?1c"test78.in" 46 lines, 1464 charactersInserts 10000 lines with text to fill the swap file with two levels of pointer
blocks.  Then recovers from the swap file and checks all text is restored.

We need about 10000 lines of 100 characters to get two levels of pointer
blocks.

STARTTEST
:so small.vim
:set nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
:e! Xtest
ggdG
:let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
:let i = 1
:let linecount = 10000
:while i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
:preserve
:" get the name of the swap file
:redir => swapname
:swapname
:redir END
:let swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][:cntrl:]]*$', '\1', '')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cInserts 10000 lines with text to fill the swap file with two levels of pointer[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1208 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set nobin
:new
:only!
:bwipe! Xtest
:call rename('Xswap', swapname)
:recover Xtest
:call delete(swapname)
:new
:call append(0, 'recovery start')
:wincmd w
:let linedollar = line('$')
:if linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected ". linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let linecount = linedollar | endif
:let i = 1
:while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call append(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
:q!
:call append(line('$'), 'recovery end')
:w! test.out
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest
[?25l[?1c"Xtest" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01

23456789abcdefghijklmnoparstuvwxyz0123456789"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet linecount = 10000
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
[?25l[?1c9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899991    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899992    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899993    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899994    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899995    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899996    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899997    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899998    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678910000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[?25h[?0c[?25l[?1c:[?25h[?0cpreserve
[?25l[?1cFile preserved[?25h[?0c[?25l[?1c:[?25h[?0c" get the name of the swap file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => swapname
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cswapname
[?25l[?1c.Xtest.swp[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][

:cntrl:]]*$', '\1', '')
[?25l[?1c9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[?25h[?0c[?25l[?1c

10000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789

~                                                                               Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe! Xtest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall rename('Xswap', swapname)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0crecover Xtest
[?25l[?1cUsing swap file ".Xtest.swp"

Original file "/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtest"

"/<<PKGBUILDDIR>>/src/vim-basic/testdir/Xtest" [New File]Recovery completed. You should check if everything is OK.

(You might want to write out this file under another name

and run diff with the original file to check for changes)

You may want to delete the .swp file now.



Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ccall delete(swapname)
[?25l[?1c1abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
2abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
3abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
4abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
5       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567896       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567897       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567898       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678910      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678911      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678912      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1

2

3

4 

5 

Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, 'recovery start')
[?25l[?1crecovery start[+][?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name] [+]                                                                   Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet linedollar = line('$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected 

" . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let li

necount = linedollar | endif
[?25l[?1crecovery start[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appen

d(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
[?25l[?1crecovery start[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), 'recovery end')
[?25l[?1crecovery end[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New] 3L, 29C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test78 = test61; then \
#	  if diff test.out test78.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test78.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test78.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test83.failed test.ok test.out X* viminfo
cp test83.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test83.in
[?25h[?8c[?25h[?0c[?25l[?1c"test83.in" 76 lines, 1273 charactersTests for tag search with !_TAG_FILE_ENCODING.

STARTTEST
:so mbyte.vim
:set enc=utf8
:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
: e! test.ok
: w! test.out
: qa!
:endif
:
:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
:
ggdG:
:
:call setline('.', 'Results of test83')
:
:" case1:
:new
:set tags=Xtags1[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for tag search with !_TAG_FILE_ENCODING.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 58 lines, 1021 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'
:else
: close
: put ='case3: ok'
:endif
:close
:
:wq! test.out
ENDTEST

text for tags1
abcdefghijklmnopqrs

text for tags2
ABC

text for tags3
ABC

tags1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf8
[?25l[?1c:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'
:else
: close
: put ='case3: ok'
:endif
:close
:
:wq! test.out
ENDTEST

text for tags1
abcdefghijklmnopqrs

text for tags2
ABC

text for tags3
ABC

tags1[?25h[?0c[?25l[?1c:[?25h[?0cif !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
[?25l[?1c"Xtags1.txt" [New File] 2 lines, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
[?25l[?1c"Xtags2.txt" [New File] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
[?25l[?1c"Xtags3.txt" [New File] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^tags1$/+1,/^tags1-end$/-1w! Xtags1
[?25l[?1c"Xtags1" [New File] 2 lines, 81 characters written[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTests for tag search with !_TAG_FILE_ENCODING.

STARTTEST
:so mbyte.vim
:set enc=utf8
:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
: e! test.ok
: w! test.out
: qa!
:endif
:
:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
:
ggdG:
:
:call setline('.', 'Results of test83')
:
:" case1:
:new
:set tags=Xtags1[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setline('.', 'Results of test83')
[?25l[?1cResults of test83
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case1:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c[No Name]                                                                       Results of test83test83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=Xtags1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag abcdefghijklmnopqrs
[?25l[?1c"Xtags1.txt" 2 lines, 35 characterstext for tags1
abcdefghijklmnopqrsXtags1.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case1: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case1: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case2:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               [No Name]                                                                       Results of test83case1: oktest83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=test83-tags2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag /.BC
[?25l[?1c"Xtags2.txt" 2 lines, 25 characterstext for tags2
ABCXtags2.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case2: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case2: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
case2: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case3:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       case1: okcase2: oktest83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=test83-tags3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag abc50
[?25l[?1c"Xtags3.txt" 2 lines, 25 characterstext for tags3
ABCXtags3.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case3: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case3: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
case2: ok
case3: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 4 lines, 48 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test83 = test61; then \
#	  if diff test.out test83.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test83.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test83.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test89.failed test.ok test.out X* viminfo
cp test89.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test89.in
[?25h[?8c[?25h[?0c[?25l[?1c"test89.in" 71 lines, 1514 characters- Some tests for setting 'number' and 'relativenumber'
  This is not all that useful now that the options are no longer reset when
  setting the other.
- Some tests for findfile() function

STARTTEST
:so small.vim
:set hidden nocp nu rnu viminfo+=nviminfo
:redir @a | set nu? rnu? | redir END
:e! xx
:redir @b | set nu? rnu? | redir END
:e! #
:$put ='results:'
:$put a
:$put b
:"
:set nonu nornu
:setglobal nu
:setlocal rnu
:redir @c | setglobal nu? | redir END
:set nonu nornu
:setglobal rnu
:setlocal nu[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c- Some tests for setting 'number' and 'relativenumber'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 63 lines, 1305 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =':set MUST reset the other global value'
:$put g
:$put h
:"
:let cwd=getcwd()
:cd ..
:" Tests may be run from a shadow directory, so an extra cd needs to be done to
:" get above src/
:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
:$put =''
:$put ='Testing findfile'
:$put =''
:set ssl
:$put =findfile('test19.in','src/test*')
:exe "cd" cwd
:cd ..
:$put =findfile('test19.in','test*')
:$put =findfile('test19.in','testdir')
:exe "cd" cwd
:/^results/,$w! test.out
:q!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden nocp nu rnu viminfo+=nviminfo
[?25l[?1c 21 :$put g 20 :$put h
 19 :" 18 :let cwd=getcwd()
 17 :cd .. 16 :" Tests may be run from a shadow directory, so an extra cd needs to be done     to 15 :" get above src/
 14 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 13 :$put =''
 12 :$put ='Testing findfile'
 11 :$put =''
 10 :set ssl
  9 :$put =findfile('test19.in','src/test*')
  8 :exe "cd" cwd
  7 :cd ..
  6 :$put =findfile('test19.in','test*')
  5 :$put =findfile('test19.in','testdir')
  4 :exe "cd" cwd
  3 :/^results/,$w! test.out
  2 :q!
  1 ENDTEST
71  [?25h[?0c[?25l[?1c:[?25h[?0credir @a | set nu? rnu? | redir END
[?25l[?1c  number

  relativenumber

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! xx
[?25l[?1c"xx" [New File]1   
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0credir @b | set nu? rnu? | redir END
[?25l[?1c  number

  relativenumber

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! #
[?25l[?1c"test89.in" line 71 of 71 --100%-- col 1 21 :$put g
 20 :$put h
 19 :" 18 :let cwd=getcwd() 17 :cd .. 16 :" Tests may be run from a shadow directory, so an extra cd needs to be done     to 15 :" get above src/ 14 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif 13 :$put ='' 12 :$put ='Testing findfile' 11 :$put ='' 10 :set ssl  9 :$put =findfile('test19.in','src/test*')  8 :exe "cd" cwd  7 :cd ..  6 :$put =findfile('test19.in','test*')  5 :$put =findfile('test19.in','testdir')  4 :exe "cd" cwd  3 :/^results/,$w! test.out  2 :q!  1 ENDTEST71  "test89.in" line 71 of 71 --100%-- col 1[?25h[?0c[?25l[?1c:[?25h[?0c$put ='results:'
[?25l[?1c
1
 20
 19
 18
 17

 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
72  results:[?25h[?0c[?25l[?1c
:[?25h[?0c$put a
[?25l[?1c3 more lines21
 20

 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
75    relativenumber3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put b
[?25l[?1c3 more lines22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
78    relativenumber3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:" get above src/:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif:$put ='':$put ='Testing findfile':$put ='':set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal rnu
[?25l[?1c 22 :" get above src/
 21 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 20 :$put =''
 19 :$put ='Testing findfile'
 18 :$put =''
 17 :set ssl
 16 :$put =findfile('test19.in','src/test*')
 15 :exe "cd" cwd
 14 :cd ..
 13 :$put =findfile('test19.in','test*')
 12 :$put =findfile('test19.in','testdir')
 11 :exe "cd" cwd
 10 :/^results/,$w! test.out
  9 :q!
  8 ENDTEST
  7 
  6 results:
  5 
  4   number
  3   relativenumber
  2 
  1   number
  0   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0credir @c | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:" get above src/:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif:$put ='':$put ='Testing findfile':$put ='':set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal nu
[?25l[?1c 56 :" get above src/
 57 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 58 :$put =''
 59 :$put ='Testing findfile'
 60 :$put =''
 61 :set ssl
 62 :$put =findfile('test19.in','src/test*')
 63 :exe "cd" cwd
 64 :cd ..
 65 :$put =findfile('test19.in','test*')
 66 :$put =findfile('test19.in','testdir')
 67 :exe "cd" cwd
 68 :/^results/,$w! test.out
 69 :q!
 70 ENDTEST
 71 
 72 results:
 73 
 74   number
 75   relativenumber
 76 
 77   number
 78   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0credir @d | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':setlocal must NOT reset the other global value'
[?25l[?1c
 79 :setlocal must NOT reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put c
[?25l[?1c 80 
 81   number[?25h[?0c[?25l[?1c
:[?25h[?0c$put d
[?25l[?1c 82 
 83   relativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber:setlocal must NOT reset the other global value  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir @e | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir @f | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':setglobal MUST reset the other global value'
[?25l[?1c
:setglobal MUST reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put e
[?25l[?1cnumber[?25h[?0c[?25l[?1c
:[?25h[?0c$put f
[?25l[?1crelativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c 66 :$put =findfile('test19.in','testdir')
 67 :exe "cd" cwd
 68 :/^results/,$w! test.out
 69 :q!
 70 ENDTEST
 71 
 72 results:
 73 
 74   number
 75   relativenumber
 76 
 77   number
 78   relativenumber
 79 :setlocal must NOT reset the other global value
 80 
 81   number
 82 
 83   relativenumber
 84 :setglobal MUST reset the other global value
 85 
 86   number
 87 
 88   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset rnu
[?25l[?1c22
 21
 20
 1
 18
 17
 16
 15
 1
 13
 12
 11
 10
  
  8
  7
  6
  5
  
  3
  2
  1
88    [?25h[?0c[?25l[?1c:[?25h[?0credir @g | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber:setlocal must NOT reset the other global value  number  relativenumber:setglobal MUST reset the other global value  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset rnu
[?25l[?1c 22 :$put =findfile('test19.in','testdir')
 21 :exe "cd" cwd
 20 :/^results/,$w! test.out
 19 :q!
 18 ENDTEST
 17 
 16 results:
 15 
 14   number
 13   relativenumber
 12 
 11   number
 10   relativenumber
  9 :setlocal must NOT reset the other global value
  8 
  7   number
  6 
  5   relativenumber
  4 :setglobal MUST reset the other global value
  3 
  2   number
  1 
  0   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c88    [?25h[?0c[?25l[?1c:[?25h[?0credir @h | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':set MUST reset the other global value'
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
89  :set MUST reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put g
[?25l[?1c2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
91    number[?25h[?0c[?25l[?1c
:[?25h[?0c$put h
[?25l[?1c2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
93    relativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic[?25h[?0c[?25l[?1c:[?25h[?0c" Tests may be run from a shadow directory, so an extra cd needs to be done to
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" get above src/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[?25l[?1c/<<PKGBUILDDIR>>[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
94  [?25h[?0c[?25l[?1c
:[?25h[?0c$put ='Testing findfile'
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
95  Testing findfile[?25h[?0c[?25l[?1c
:[?25h[?0c$put =''
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
96  [?25h[?0c[?25l[?1c
:[?25h[?0cset ssl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =findfile('test19.in','src/test*')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
97  src/testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0cexe "cd" cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic[?25h[?0c[?25l[?1c:[?25h[?0c$put =findfile('test19.in','test*')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
98  testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0c$put =findfile('test19.in','testdir')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
99  testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0cexe "cd" cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-basic/testdir[?25h[?0c[?25l[?1c:[?25h[?0c/^results/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 28L, 356C written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test89 = test61; then \
#	  if diff test.out test89.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test89.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test89.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_arglist.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_arglist.vim" 318 lines, 6653 characters

Executing Test_argadd()
"a" [New File]bababababd

Executing Test_argc()
"a" [New File]
Executing Test_argdelete()
"a" [New File]a" [New File]
"bb

Executing Test_argedit()
"a" [New File]ba

"c" [New File]
"x

"y" [New File]

Executing Test_argidx()
"a" [New File]cabc

Executing Test_arglist_autocmd()
"Xxx1" 1L, 15C
"Xxx21L, 15C1L, 15C
"Xxx1" line 1 of 1 --100%-- col 1 ((3) of 2)
"Xxx21 of 2)
3 buffers wiped out

Executing Test_arglistid()
"a" [New File]
Executing Test_argpos()
"a" [New File]d

"c" [New File]
"ba

"d" [New File]
"a

Executing Test_argument()
"d" [New File]cbafile] --No lines in buffer-- (1 of 4)
"c3

a b [c] d
"c" [New File]

"x" [New File]
"z

Executing Test_argv()
"a" [New file] --No lines in buffer--

Executing Test_zero_argadd()
"b" [New file] --No lines in buffer-- (2 of 4)
"aFbedited" [New File]
"a" [New File]test_arglist.res" [New File][New] 0L, 0C written

Executed 11 tests
"messages" [New File][New] 15L, 326C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_assert.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_assert.vim" 127 lines, 2933 characters

Executing Test_assert_equal()

Executing Test_assert_exception()

Executing Test_assert_fail_fails()

Executing Test_assert_false()

Executing Test_assert_inrange()

Executing Test_assert_notequal()

Executing Test_assert_true()

Executing Test_compare_fail()

Executing Test_match()

Executing Test_notmatch()

Executing Test_user_is_happy()


oooo$$$$$$$$$$$$oooo

oo$$$$$$$$$$$$$$$$$$$$$$$$o

oo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$oo$   $$ o$

     o $ ooo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o$$ $$ $$o$

  oo $ $ "$      o$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$o$$$o$$o$

  "$$$$$$o$     o$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$o    $$$$$$$$

    $$$$$$$    $$$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$

    $$$$$$$$$$$$$$$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$$$$$$  """$$$

     "$$$""""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$

      $$$   o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$o

     o$$"   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o

     $$$    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" "$$$$$$ooooo$$$$o

    o$$$oooo$$$$$  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$   o$$$$$$$$$$$$$$$$$

    $$$$$$$$"$$$$   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     $$$$""""""""

   """"$$$$    "$$$$$$$$$$$$$$$$$$$$$$$$$$$$"      o$$$

"$$$o     """$$$$$$$$$$$$$$$$$$"$$"$$$

$$$o"$$""$$$$$$""""o$$$

$$$$oo$$$"

"$$$$o      o$$$$$$o"$$$$oo$$$$

"$$$$$oo     ""$$$$o$$$$$o   o$$$$""

""$$$$$oooo  "$$$o$$$$$$$$$"""

""$$$$$$$oo $$$$$$$$$$

""""$$$$$$$$$$$

$$$$$$$$$$$$

$$$$$$$$$$"

"$$$""""

[?25h[?0c[?25l[?1cExecuting Test_wrong_error_type()
"test_assert.res" [New File][New] 0L, 0C written

Executed 12 tests
"messages" 15L, 326C30L, 734C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_autochdir.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_autochdir.vim" 17 lines, 332 characters

Executing Test_set_filename()
"samples/Xtest" [New] 0L, 0C written
"test_autochdir.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"30L, 734C34L, 806C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_backspace_opt.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_backspace_opt.vim" 59 lines, 1673 characters

Executing Test_backspace_option()
"test_backspace_opt.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"34L, 806C38L, 886C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_breakindent.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_breakindent.vim" 241 lines, 7365 characters

Executing Test_breakindent01()|
    abcdefghijklmnop|
    qrstuvwxyzABCDEF|
    GHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent02()|
    abcdefghijklmnop|
    >>qrstuvwxyzABCD|
    >>EFGHIJKLMNOP  |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent03()|
    abcdefghijklmnop|
++  qrstuvwxyzABCDEF|
++  GHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent04()|
    abcdefghijklmnop|
  qrstuvwxyzABCDEFGH|
  IJKLMNOP|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent05()|
    abcdefghijklmnop|qrstuvwxyzABCD|EFGHIJKLMNOP  |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent06()|
    abcdefghijklmnop|
   qrstuvwxyzABCDEFG|
   HIJKLMNOP|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent07()  1 |
  2     abcdefghijkl|
?mnopqrstuvw|
?xyzABCDEFGH|
?IJKLMNOP   ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent07a()  1 |
  2     abcdefghijkl|
    ?    mnopqrstuvw|
    ?    xyzABCDEFGH|
    ?    IJKLMNOP   ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent08()  1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent08a()  1 $|
  2 ^Iabcdefghijklmn|
    #  opqrstuvwxyzA|
    #  BCDEFGHIJKLMN|
    #  OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent09()  1 $|
  2 ^Iabcdefghijklmn|
       #opqrstuvwxyz|
       #ABCDEFGHIJKL|
       #MNOP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent10()  1 |
  2 abcdefgh|
~ijklmnop|
~qrstuvwx|
~yzABCDEF|
~GHIJKLMN|
~OP      ||||~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 |
  2     abcdefghijkl|
~mnopqrstuvwx|
~yzABCDEFGHIJ|
~KLMNOP      ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 |
  2     abcdefghijkl|
~mnopqrstuvwx|
~yzABCDEFGHIJ|
~KLMNOP      ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent11()

Executing Test_breakindent12() 1 |
 2 >--->--->--->--->|
   ---{      ||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        {~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent13()

Executing Test_breakindent14()|
e|||||||||~                             
~                             
~                             
~                             
~                             
~                             
~                             
~                             
[No Name] [+]                  e~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                [No Name] [+]                                    " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent15()|1234567890|||||||||~                             
~                             
~                             
~                             
~                             
~                             
~                             
~                             
[No Name] [+]                  1234567890~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                [No Name] [+]                                    " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent16()1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            "test_breakindent.res" [New File][New] 0L, 0C written

Executed 18 tests
"messages" 38L, 886C59L, 1492C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_bufwintabinfo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_bufwintabinfo.vim" 116 lines, 3459 characters

Executing Test_get_buf_options()

Executing Test_get_win_options()

Executing Test_getbufwintabinfo()
"Xtestfile1" [New File]212

Already only one window
"test_bufwintabinfo.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"59L, 1492C65L, 1639C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cdo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cdo.vim" 205 lines, 5116 characters

Executing Test_cdo()
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile1" 3L, 18C33L, 18C

(1 of 1): Line3
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2

(5 of 8): Line2

(1 of 1): Line2

Executing Test_ldo()
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile1" 3L, 18C33L, 18C

(1 of 1): Line3
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2

(5 of 8): Line2

(1 of 1): Line2
"test_cdo.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"65L, 1639C70L, 1718C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_channel.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_channel.vim" 1641 lines, 47075 characters
"test_channel.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"70L, 1718C73L, 1758C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_charsearch.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_charsearch.vim" 62 lines, 1475 characters

Executing Test_charsearch()

Executing Test_search_cmds()
"test_charsearch.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"73L, 1758C78L, 1859C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cmdline.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cmdline.vim" 243 lines, 7346 characters

Executing Test_complete_list():e test

test1.intest85.ok

test1.oktest85.out

test1.outtest86.in

test103.intest86.ok

test103.oktest86.out

test103.outtest87.in

test104.intest87.ok

test104.oktest87.out

test104.outtest88.in

test107.intest88.ok

test107.oktest88.out

test107.outtest89.in

test108.intest89.ok

test108.oktest89.out

test108.outtest9.in

test11.intest9.ok

test11.oktest9.out

test11.outtest90.in

test12.intest90.ok

test12.oktest90.out

test12.outtest91.in

test14.intest91.ok

test14.oktest91.out

test14.outtest94.in

test15.intest94.ok

test15.oktest94.out

test15.outtest95.in

test17.intest95.ok

test17.oktest95.out

test17.outtest97.in

test17a.intest97.ok

test19.intest97.out

test19.oktest98.in

test19.outtest98.ok

test20.intest98.out

test20.oktest99.in

test20.outtest99.ok

test22.intest99.out

test22.oktest_alot.vim

test22.outtest_alot_latin.vim

test23.intest_alot_utf8.vim

test23.oktest_arglist.res

test23.outtest_arglist.vim

test24.intest_assert.res

test24.oktest_assert.vim

test24.outtest_assign.vim

test25.intest_autochdir.res

test25.oktest_autochdir.vim

test25.outtest_autocmd.vim

test26.intest_autocmd_option.in

test26.oktest_autocmd_option.ok

test26.outtest_autocmd_option.out

test28.intest_autoformat_join.in

test28.oktest_autoformat_join.ok

test28.outtest_autoformat_join.out

test29.intest_backspace_opt.res

test29.oktest_backspace_opt.vim

test29.outtest_breakindent.res

test3.intest_breakindent.vim

test3.oktest_bufwintabinfo.res

test3.outtest_bufwintabinfo.vim

test30.intest_cdo.res

test30.oktest_cdo.vim

test30.outtest_changelist.in

test31.intest_changelist.ok

test31.oktest_changelist.out

test31.outtest_channel.py

test32.intest_channel.res

test32.oktest_channel.vim

test32.outtest_channel_pipe.py

test33.intest_charsearch.res

test33.oktest_charsearch.vim

test33.outtest_close_count.in

test34.intest_close_count.ok

test34.oktest_close_count.out

test34.outtest_cmdline.vim

test36.intest_command_count.vim

test36.oktest_comparators.in

test36.outtest_comparators.ok

test37.intest_comparators.out

test37.oktest_crypt.vim

test37.outtest_cscope.vim

test38.intest_cursor_func.vim

test38.oktest_delete.vim

test38.outtest_diffmode.vim

test39.intest_digraph.vim

test39.oktest_display.vim

test39.outtest_erasebackword.in

test4.intest_erasebackword.ok

test4.oktest_erasebackword.out

test4.outtest_eval.in

test40.intest_eval.ok

test40.oktest_eval.out

test40.outtest_eval_func.vim

test41.intest_ex_undo.vim

test41.oktest_execute_func.vim

test41.outtest_expand.vim

test42.intest_expand_dllpath.vim

test42.oktest_expr.vim

test42.outtest_expr_utf8.vim

test43.intest_farsi.vim

test43.oktest_feedkeys.vim

test43.outtest_file_perm.vim

test44.intest_fileformat.vim

test44.oktest_filter_cmd.vim

test44.outtest_filter_map.vim

test45.intest_fixeol.in

test45.oktest_fixeol.ok

test45.outtest_fixeol.out

test48.intest_float_func.vim

test48.oktest_fnameescape.vim

test48.outtest_fnamemodify.vim

test49.intest_fold.vim

test49.oktest_functions.vim

test49.outtest_getcwd.in

test49.vimtest_getcwd.ok

test5.intest_getcwd.out

test5.oktest_gf.vim

test5.outtest_glob2regpat.vim

test50.intest_gn.vim

test50.oktest_goto.vim

test51.intest_gui.vim

test51.oktest_hardcopy.vim

test51.outtest_help_tagjump.vim

test52.intest_hide.vim

test52.oktest_history.vim

test52.outtest_hlsearch.vim

test53.intest_increment.vim

test53.oktest_increment_dbcs.vim

test53.outtest_insertcount.in

test54.intest_insertcount.ok

test54.oktest_insertcount.out

test54.outtest_job_fails.vim

test55.intest_join.vim

test55.oktest_json.vim

test55.outtest_jumps.vim

test56.intest_lambda.vim

test56.oktest_langmap.vim

test56.outtest_largefile.vim

test57.intest_lispwords.vim

test57.oktest_listchars.in

test57.outtest_listchars.ok

test58.intest_listchars.out

test58.oktest_listlbr.in

test58.outtest_listlbr.ok

test59.intest_listlbr.out

test59.oktest_listlbr_utf8.in

test59.outtest_listlbr_utf8.ok

test60.intest_listlbr_utf8.out

test60.oktest_man.vim

test60.outtest_mapping.vim

test60.vimtest_marks.vim

test64.intest_match.vim

test64.oktest_matchadd_conceal.vim

test64.outtest_matchadd_conceal_utf8.vim

test65.intest_menu.vim

test65.oktest_messages.vim

test65.outtest_mksession.vim

test66.intest_mksession_utf8.vim

test66.oktest_nested_function.vim

test66.outtest_netbeans.py

test67.intest_netbeans.vim

test67.oktest_normal.vim

test67.outtest_options.vim

test68.intest_packadd.vim

test68.oktest_partial.vim

test68.outtest_perl.vim

test69.intest_popup.vim

test69.oktest_profile.vim

test69.outtest_quickfix.vim

test7.intest_regexp_latin.vim

test7.oktest_regexp_utf8.vim

test7.outtest_reltime.vim

test70.intest_ruby.vim

test70.oktest_search.vim

test70.outtest_search_mbyte.in

test72.intest_search_mbyte.ok

test72.oktest_search_mbyte.out

test72.outtest_searchpos.vim

test73.intest_set.vim

test73.oktest_signs.vim

test73.outtest_smartindent.vim

test75.intest_sort.vim

test75.oktest_source_utf8.vim

test75.outtest_startup.vim

test77.intest_startup_utf8.vim

test77.oktest_stat.vim

test77.outtest_statusline.vim

test77a.intest_substitute.vim

test77a.oktest_syn_attr.vim

test78.intest_syntax.vim

test78.oktest_system.vim

test78.outtest_tabline.vim

test79.intest_tabpage.vim

test79.oktest_tagcase.vim

test79.outtest_tagjump.vim

test8.intest_textobjects.vim

test8.oktest_timers.vim

test8.outtest_true_false.vim

test80.intest_undo.vim

test80.oktest_unlet.vim

test80.outtest_usercommands.vim

test82.intest_utf8.in

test82.oktest_utf8.ok

test82.outtest_utf8.out

test83-tags2test_viminfo.vim

test83-tags3test_viml.vim

test83.intest_visual.vim

test83.oktest_window_cmd.vim

test83.outtest_window_id.vim

test84.intest_wordcount.in

test84.oktest_wordcount.ok

test84.outtest_wordcount.out

test85.intest_writefile.vim

:e test
"test" [New File]

Executing Test_complete_tab():e Xtest...file
"Xtestfile" 1L, 9C

Executing Test_complete_wildmenu():e Xtest...file1...

Xtestfile1  Xtestfile2  
Xtestfile1                                                        :e Xtest...Xtestfile1
Xtestfile1file1...Xtestfile1Xtestfile22:e Xtestfile2"Xtestfile2" 1L, 10C
Executing Test_expand_star_star():find **/fileXname...gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE  -o objects/gui_gtk_gresources.o auto/gui_gtk_gresources.c
a/b/fileXname
"a/b/fileXname" 1L, 9C
"Xtestfile2" [New File]

Executing Test_getcompletion():cscope find 

a  c  d  e  f  g  i  s  t

:cscope find :sign list 

Testing

:sign list gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE  -o objects/if_perl.o auto/if_perl.c
Executing Test_illegal_address()

Executing Test_paste_in_cmdline():abc "def ghi
:"abc def ghi
:"
:aaa "asdf bbb
:"aaa asdf bbb
:"
:aaa "/tmp/some bbb
:"aaa /tmp/some bbb
:"
:aaa veryl"ongword bbb
:"aaa verylongword bbb
:"
:aaa "a;b-c*d bbb
:"aaa a;b-c*d bbb
:"
:=toupper(getline(1))
:ASDF.X /TMP/SOME VERYLONGWORD A;B-C*D 
:"ASDF.X /TMP/SOME VERYLONGWORD A;B-C*D
:"

Executing Test_remove_char_in_cmdline():abc defef
:"abc ef
:"
:abc defdef
:"abcdef
:"
:abc def ghighi
:"abc ghi
:"
:abc def
:def"def
"test_cmdline.res" [New File][New] 0L, 0C written

Executed 8 tests
"messages"78L, 1859C89L, 2168C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_command_count.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_command_count.vim" 191 lines, 4742 characters

Executing Test_command_count_0()
"DoesNotExistEver" [New File]
Executing Test_command_count_1()

"a" [New File]

loading buffers

"b" [New File]

loading buffers

"c" [New File]

loading buffers

"d" [New File]

loading buffers

"e" [New File]

loading buffers
"c" [New File]beb

Executing Test_command_count_2()

"d" [New File]
"a

Already only one window
"x" [New File]
Already only one window

Executing Test_command_count_3()
"aaa" [New File]bbb
"ccc
"test_command_count.vim" 191L, 4742C

2 buffers deleted

Executing Test_command_count_4()
"cc" [New File]
"dd" [New File]

"ee" [New File]
"aa

"bb" [New File]

"cc" [New File]

"dd" [New File]

"ee" [New File]
"cc

"ee" [New File]

"ff" [New File]
"test_command_count.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"89L, 2168C97L, 2380C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_crypt.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_crypt.vim" 83 lines, 2590 characters

Executing Test_crypt_blowfish()
"Xtest.txt" [New File]:X

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

Enter same key again: ******

"Xtest.txt" [New][blowfish] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [blowfish] 3L, 98C

Executing Test_crypt_blowfish2()
"Xtest.txt" [New File]:X
Enter encryption key: ******
Enter same key again: ******

"Xtest.txt" [New][blowfish2] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: ******

"Xtest.txt" [blowfish2] 3L, 98C

Executing Test_crypt_zip()
"Xtest.txt" [New File]:X

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

Enter same key again: ******

"Xtest.txt" [New][crypted] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [crypted] 3L, 98C

Executing Test_head_only_2()
"Xtest.txt" [New File][New] 1L, 16C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [readonly] 1L, 16C

Executing Test_head_only_3()
"Xtest.txt" [New File][New] 1L, 16C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: ******

"Xtest.txt" [readonly] 1L, 16C

Executing Test_uncrypt_blowfish()
"Xtest.txt" [New File][converted][New][noeol] 1L, 80C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [blowfish] 2L, 27C

Executing Test_uncrypt_blowfish2()
"Xtest.txt" [New File][converted][New][noeol] 1L, 103C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: *******

"Xtest.txt" [blowfish2] 2L, 44C

Executing Test_uncrypt_zip()
"Xtest.txt" [New File][converted][New][noeol] 1L, 45C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [converted][crypted] 2L, 26C"test_crypt.res" [New File][converted][New] 0L, 0C written
Executed 8 tests
"messages"97L, 2380C108L, 2667C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cscope.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cscope.vim" 279 lines, 10568 characters
"test_cscope.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"108L, 2667C111L, 2706C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_diffmode.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_diffmode.vim" 237 lines, 4954 characters

Executing Test_diff_fold_sync()

Executing Test_diffget_diffput()

gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_eval.o ex_eval.c
Executing Test_diffoff()  -------------------------------------|
  -------------------------------------|
  Two|
  Three|||||||||||||||||||  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    
[No Name] [+]                             One                                                                             Two  Three                                    ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     [No Name] [+]                           Two                                    
Three                                  
~                                      
~                                      
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  OneTwoThree~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  

Executing Test_filler_lines()

7 more lines

10 more lines

Executing Test_setting_cursor()
"Xtest1" [New File]
90 more lines
"Xtest1" [New] 91L, 262C written2" [New File]
100 more lines
"Xtest2"[New] 101L, 293C written101L, 293C191L, 262C

Executing Test_vert_split()
"Xtest" [New] 5L, 25C written"Xtest2" [New] 6L, 29C written

"Nop" [Modified][Not edited] line 4 of 6 --66%-- col 3"Xtest" 5L, 25C2" 6L, 29C
"test_diffmode.vim" 237L, 4954Cres" [New File][New] 0L, 0C written

Executed 6 tests
"messages"111L, 2706C120L, 2928C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_digraph.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_digraph.vim" 461 lines, 14928 characters

Executing Test_digraph_cmndline()
Executing T

Executing Test_digraphs()
Executing Test_digraphs_option()
Executing Test_digraphs_output()

Executing Test_loadkeymap()"test_digraph.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"120L, 2928C128L, 3123C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_display.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_display.vim" 39 lines, 849 characters[?25h[?0cExecuting Test_display_foldcolumn()e more noise blah blah<82|
> more stuff here||||||||||~                        
~                        
~                        
~                        
~                        
~                        
~                        
~                        
~                        
[No Name] [+]             ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     [No Name]                                             " Test for displaying stuff
if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum, nr) abort
  let line = []
  for j in range(a:nr)
    for c in range(1, winwidth(0))call add(line, nr2char(screenchar(a:lnum+j, c)))
test_display.vim                                                                  e more noise blah blah<|
  82> more stuff here    ||||||||||  
  
  
  
  
  
  
  
  ~                      ~                      ~                      ~                      ~                      ~                      ~                      ~                      ~                      
[No Name] [+]             ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     [No Name]                                             " Test for displaying stuff
if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum, nr) abort
  let line = []
  for j in range(a:nr)
    for c in range(1, winwidth(0))call add(line, nr2char(screenchar(a:lnum+j, c)))
test_display.vim                                                                "test_display.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"128L, 3123C132L, 3199C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_farsi.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_farsi.vim" 84 lines, 2881 characters

Executed 2 tests
"messages"[converted] 132L, 3199C[converted] 137L, 3295C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fnameescape.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_fnameescape.vim" 21 lines, 467 characters

Executing Test_fnameescape()
"Xspa ce"[New] 21L, 467C written
"Xemark![New] 21L, 467C written
"test_fnameescape.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"137L, 3295Cgcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/os_unix.o os_unix.c
141L, 3368C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fold.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_fold.vim" 97 lines, 3328 characters

Executing Test_address_fold()

7 lines yanked

7 lines yanked

7 lines yanked

7 lines yanked

7 lines yanked

8 lines yanked

10 lines yanked

4 lines yanked

Executing Test_indent_fold()

Executing Test_indent_fold2()
"test_fold.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"141L, 3368C147L, 3495C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gf.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gf.vim" 33 lines, 1138 characters

Executing Test_gf_url()
"test_gf.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"147L, 3495C151L, 3554C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gn.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gn.vim" 93 lines, 2821 characters

Executing Test_gn_command()/[u]niquepattern/s
/a:0\@!\zs\d\+
"test_gn.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"151L, 3554C155L, 3617C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gui.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gui.vim" 36 lines, 838 characters
"test_gui.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"155L, 3617C158L, 3653C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hardcopy.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hardcopy.vim" 62 lines, 2001 charactersgcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_getln.o ex_getln.c


Executing Test_printheader_parsing()

Executing Test_printmbfont_parsing()

Executing Test_printoptions_parsing()

Executing Test_with_syntax()Printing page 1 (0%)Printed: test_hardcopy.vim
"test_hardcopy.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"158L, 3653Cgcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
165L, 3836C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hide.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hide.vim" 97 lines, 2443 characters

Executing Test_hide()
"Xf1" [New File]
"Xf1" [New File]
"Xf212121

one|two
"Xf1" [New File]
"Xf212
"test_hide.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"165L, 3836C169L, 3895C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_history.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_history.vim" 106 lines, 3567 characters

Executing Test_History()

Executing Test_Search_history_window()/a
/b
/a
b
a
b
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Tests for the history functions

test_history.vim                                                                /a
/b
/
/
/
/
/~                                                                              ~                                                                              ~                                                                              ~                                                                              [Command Line]                                                                  [?25h[?0c[?25l[?1c/a
"test_history.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"169L, 3895C174L, 4000C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hlsearch.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hlsearch.vim" 34 lines, 1013 characters

Executing Test_hlsearch()/aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
~                                                                               [No Name] [+]                                                                   " Test for v:hlsearch

function! Test_hlsearch()
  new
  call setline(1, repeat(['aaa'], 10))
  set hlsearch nolazyredraw
  let r=[]
  " redraw is needed to make hlsearch highlight the matches
  exe "normal! /aaa\<CR>" | redraw
  let r1 = screenattr(1, 1)
test_hlsearch.vim                                                               aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa


/aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa//aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa//aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa


"test_hlsearch.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"174L, 4000C178L, 4067C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_increment.vim" 760 lines, 19011 characters

Executing Test_normal_increment_01()
"dummy" [New File]
Executing Test_normal_increment_02()
"dummy" [New File]
Executing Test_normal_increment_03()
"dummy" [New File]
Executing Test_visual_increment_01()
"dummy" [New File]
Executing Test_visual_increment_02()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_03()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_04()
"dummy" [New File]
Executing Test_visual_increment_05()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_06()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_07()
"dummy" [New File]5 lines changed
Executing Test_visual_increment_08()
"dummy" [New File]
Executing Test_visual_increment_09()
"dummy" [New File]
Executing Test_visual_increment_10()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_11()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_12()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_13()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_14()
"dummy" [New File]
Executing Test_visual_increment_15()
"dummy" [New File]
Executing Test_visual_increment_16()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_17()
"dummy" [New File]
Executing Test_visual_increment_18()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_19()
"dummy" [New File]
Executing Test_visual_increment_20()
"dummy" [New File]
Executing Test_visual_increment_21()
"dummy" [New File]
Executing Test_visual_increment_22()
"dummy" [New File]
Executing Test_visual_increment_23()
"dummy" [New File]
Executing Test_visual_increment_24()
"dummy" [New File]
Executing Test_visual_increment_25()
"dummy" [New File]
Executing Test_visual_increment_26()
"dummy" [New File]
Executing Test_visual_increment_27()
"dummy" [New File]
Executing Test_visual_increment_28()
"dummy" [New File]
Executing Test_visual_increment_29()
"dummy" [New File]
Executing Test_visual_increment_30()
"dummy" [New File]
Executing Test_visual_increment_31()
"dummy" [New File]
Executing Test_visual_increment_32()
"dummy" [New File]_31" [New File]

Executing Test_visual_increment_33()
"dummy" [New File]
Executing Test_visual_increment_34()
"dummy" [New File]
Executing Test_visual_increment_35()
"dummy" [New File]
Executing Test_visual_increment_36()
"dummy" [New File]
Executing Test_visual_increment_37()
"dummy" [New File]
Executing Test_visual_increment_38()
"dummy" [New File]"test_increment.res" [New File][New] 0L, 0C written

Executed 41 tests
"messages" 178L, 4067C222L, 5628C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment_dbcs.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_increment_dbcs.vim" 30 lines, 604 characters

Executing Test_increment_dbcs_1()
"test_increment_dbcs.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"[converted] 222L, 5628C[converted] 226L, 5709C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_job_fails.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_job_fails.vim" 19 lines, 598 characters

Executing Test_job_start_fails()[?25h[?0c[?25l[?1c
"test_job_fails.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"226L, 5709C230L, 5784C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_json.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_json.vim" 287 lines, 10700 characters

Executing Test_js_decode()

Executing Test_js_encode()

Executing Test_json_decode()

Executing Test_json_encode()

"test_json.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"230L, 5784C237L, 5934C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_langmap.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_langmap.vim" 28 lines, 628 characters

Executing Test_langmap()
"test_langmap.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"237L, 5934C241L, 5999C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_man.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_man.vim" 60 lines, 1358 characters

Executing Test_g_ft_man_open_mode()


Cannot find a 'vim'.

Executing Test_nomodifiable()


Cannot find a 'vim'.
"test_man.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"241L, 5999C246L, 6102C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_marks.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_marks.vim" 26 lines, 775 characters

Executing Test_Incr_Marks()

Executing Test_Restore_DelMark()1 more line; before #2  0 seconds ago
1 line less; after #2  0 seconds agomore line; before #2  0 seconds ago
"test_marks.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"246L, 6102Clink.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o vim objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o objects/gui.o objects/gui_gtk.o objects/gui_gtk_x11.o objects/pty.o objects/gui_gtk_f.o objects/gui_beval.o objects/gui_gtk_gresources.o objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/json.o objects/main.o objects/memfile.o objects/message.o   -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
251L, 6202C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_matchadd_conceal.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_matchadd_conceal.vim" 289 lines, 9276 characters[?25h[?0cExecuting Test_clearmatches()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #ZThisZisZaZTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_default_conceal_char()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #+This+is+a+Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_and_conceallevel_3()#ThisisaTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #Thisisa Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_and_syn_conceal()Inductive - : Type := | true : - | false : -.

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Inductive - : Type := | true : - | false : -.

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_repeat_conceal_with_syntax_off()TARGET_TARGETTARGET
t_ttsimple_matchadd()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_simple_matchadd_and_conceal()#XThisXisXaXTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_syn_and_match_conceal()#ZThisZisZaZTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #*This*is*a*Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_using_matchaddpos()#Pis a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       "test_matchadd_conceal.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"251L, 6202C263L, 6616C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_mksession.vim" 104 lines, 2315 characters

Executing Test_mksession()
"/tmp/vsdP142/0" [New] 9L, 203C written

search hit BOTTOM, continuing at TOP
"test_mksession.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"[converted] 263L, 6616C[converted] 267L, 6685C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_mksession_utf8.vim" 104 lines, 2328 characters

Executing Test_mksession_utf8()
"/tmp/vlfTadu/0" [New] 9L, 215C written

search hit BOTTOM, continuing at TOP
"test_mksession_utf8.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"267L, 6685C271L, 6764C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_nested_function.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_nested_function.vim" 67 lines, 1305 characterslink.sh: Linked fine
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk'
[ yes != "yes" ] || flock debian /usr/bin/make -j1 -C src/vim-gtk test


Executing Test_max_nesting()

Executing Test_nested_argument()

[]

Executing Test_nested_functions()
"test_nested_function.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"271L, 6764C277L, 6909C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_netbeans.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_netbeans.vim" 80 lines, 2145 characters
"test_netbeans.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"277L, 6909C280L, 6950C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_normal.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_normal.vim" 2280 lines, 58740 characters

Executing Test_normal00_optrans()
Executing Test_normal01_keymodel()
4 lines yankedExecuting Test_normal02_selectmode()10 fewer lines
Executing Test_normal02_selectmode2():set im
[?25h[?0c[?25l[?1c:set noim

Executing Test_normal03_join()

Executing Test_normal04_filter():.!sed -e 's/^/|    /'
[?25h[?0cone
[?25l[?1c:.!sed -e 's/^/|    /'
[?25h[?0c[?25l[?1c:.!
:!echo one
[?25h[?0c
[No write since last change]

one
[?25l[?1c:.!!
[?25h[?0c
[?25l[?1cExecuting Test_normal05_formatexpr()

Executing Test_normal05_formatexpr_newbuf()
"another" [New File]
Executing Test_normal05_formatexpr_setopt()

Executing Test_normal06_formatprg():.,$!./Xsed_format.sh
[?25h[?0c[?25l[?1c7 lines filtered:.,$!./Xsed_format.sh
[?25h[?0c[?25l[?1c7 lines filtered
Executing Test_normal07_internalfmt()
7 fewer lin
Executing Test_normal08_fold()

Executing Test_normal09_operatorfunc()

11 substitutions on 11 lines

Executing Test_normal09a_operatorfunc()

11 substitutions on 11 lines

Executing Test_normal10_expand()

Executing Test_normal11_showcmd()
Executing Test_normal12_nv_error()

Executing Test_normal13_help()
"help.txt" [readonly] 225L, 8437C

Executing Test_normal14_page()

Executing Test_normal14_page_eol()
Executing Test_normal15_z_scroll_vert()

Executing Test_normal16_z_scroll_hor()

Executing Test_normal17_z_scroll_hor2()

Executing Test_normal18_z_fold()

Executing Test_normal19_z_spell()
Word 'goood' added to ./Xspellfile.add
search hit BOTTOM, continuing at TOPWord 'goood' added to ./Xspellfile.add2 goood' added to ./Xspellfile.add/tmp/vGigPe3/11removed from /tmp/vGigPe3/11goood' added to /tmp/vGigPe3/11removed from /tmp/vGigPe3/11added to ./Xspellfile.addremoved from ./Xspellfile.add2 goood' added to ./Xspellfile.addremoved from ./Xspellfile.addgoood' added to ./Xspellfile2.add
Executing Test_normal20_exmode()

Executing Test_normal21_nv_hat()
"Xfoobar" [New File]ile2" [New File]
Executing Test_normal22_zet()

Executing Test_normal23_K()
"version8.txt" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/pathdef.o auto/pathdef.c
[readonly] 14932L, 562906Cline 1 of 14932 --0%-- col 1
"man" [New File]aa%bb" [New File]
"cc|dd
:! man --pager=cat 'man'[?25h[?0c
[No write since last change]

stdin not open for reading!

shell returned 2


[?25l[?1cExecuting Test_normal24_rot13()

Executing Test_normal25_tag()
"help.txt" [readonly] 225L, 8437C
"change.txt" [readonly] 1830L, 74768C
"help.txt" [readonly] 225L, 8437C
"change.txt" [readonly] 1830L, 74768C
"help.txt" [readonly] 225L, 8437C
"insert.txt" [readonly] 2003L, 82815Cline 49 of 2003 --2%-- col 7-49

Executing Test_normal26_put()

Executing Test_normal27_bracket()

21 substitutions on 21 lines

Executing Test_normal28_parenthesis()

Executing Test_normal29_brace()
17 fewer lines4 fewer lines3
Executing Test_normal30_changecase()

Executing Test_normal31_r_cmd()
Executing Test_normal32_g_cmd1()
/x_foo?abc
Executing Test_normal33_g_cmd2()/[1-8]
search hit BOTTOM, continuing at TOP
9 substitutions on 9 linesblock of 3 lines yanked5
Executing Test_normal34_g_cmd3()

Executing Test_normal35_g_cmd4()

Executing Test_normal36_g_cmd5()

Executing Test_normal37_g_cmd6()
"1.txt" [New File]23

Executing Test_normal38_nvhome()

Executing Test_normal39_cw()
Executing Test_normal40_ctrl_bsl()
Executing Test_normal41_insert_reg()=a
=a
=a

Executing Test_normal42_halfpage()

Executing Test_normal43_textobject1()

Executing Test_normal44_textobjects2()

Executing Test_normal45_drop()

Executing Test_normal46_ignore()

Executing Test_normal47_autocmd()

Executing Test_normal47_visual_buf_wipe()

Executing Test_normal48_wincmd()

Executing Test_normal49_counts()

Executing Test_normal50_commandline()q:  :xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :set im
:set noim
:.!sed -e 's/^/|    /'
:.!
:!echo one
:.!!
:
[Command Line]                                                                  [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:^M   

Executing Test_normal51_FileChangedRO()
"Xreadonly.log" 1L, 4C
Error detected while processing ...13]..Test_normal51_FileChangedRO:
line    8:W10: Warning: Changing a readonly file
Executing Test_normal52_rl()3_digraph()

Executing Test_normal54_Ctrl_bsl()
"test_normal.res" [New File][New] 0L, 0C written

Executed 61 tests
"messages" 280L, 6950C348L, 9314C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_packadd.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_packadd.vim" 238 lines, 8288 characters

Executing Test_colorscheme()

Executing Test_colorscheme_completion():colorscheme ...one')
:ccolorscheme one')
:cacolorscheme one')
:calcolorscheme one')
:callcolorscheme one')
:call colorscheme one')acolorscheme one')dcolorscheme one')dcolorscheme one')(colorscheme one')lcolorscheme one')icolorscheme one'),colorscheme one') colorscheme one')'colorscheme one')
:colorscheme ...one...three')
:ccolorscheme three')
:cacolorscheme three')
:calcolorscheme three')
:callcolorscheme three')
:call colorscheme three')acolorscheme three')dcolorscheme three')dcolorscheme three')(colorscheme three')lcolorscheme three')icolorscheme three'),colorscheme three') colorscheme three')'colorscheme three')
:colorscheme ...one...three...wo')
:ccolorscheme two')
:cacolorscheme two')
:calcolorscheme two')
:callcolorscheme two')
:call colorscheme two')acolorscheme two')dcolorscheme two')dcolorscheme two')(colorscheme two')lcolorscheme two')icolorscheme two'),colorscheme two') colorscheme two')'colorscheme two')
:colorscheme ...one...three...wo...')
:ccolorscheme ')
:cacolorscheme ')
:calcolorscheme ')
:callcolorscheme ')
:call colorscheme ')acolorscheme ')dcolorscheme ')dcolorscheme ')(colorscheme ')lcolorscheme ')icolorscheme '),colorscheme ') colorscheme ')'colorscheme ')

Executing Test_helptags()

Executing Test_packadd()
"./Xdir/pack/mine/opt/mytest/plugin/test.vim" [New File][New] 1L, 24C writtenalso/loaded.vim" [New File][New] 1L, 29C writtenftdetect/test.vim" [New File[New] 1L, 26C written

Executing Test_packadd_completion():packadd ...pluginA')
:cpackadd pluginA')
:capackadd pluginA')
:calpackadd pluginA')
:callpackadd pluginA')
:call packadd pluginA')apackadd pluginA')dpackadd pluginA')dpackadd pluginA')(packadd pluginA')lpackadd pluginA')ipackadd pluginA'),packadd pluginA') packadd pluginA')'packadd pluginA')
:packadd ...pluginA...B')
:cpackadd pluginB')
:capackadd pluginB')
:calpackadd pluginB')
:callpackadd pluginB')
:call packadd pluginB')apackadd pluginB')dpackadd pluginB')dpackadd pluginB')(packadd pluginB')lpackadd pluginB')ipackadd pluginB'),packadd pluginB') packadd pluginB')'packadd pluginB')
:packadd ...pluginA...B...C')
:cpackadd pluginC')
:capackadd pluginC')
:calpackadd pluginC')
:callpackadd pluginC')
:call packadd pluginC')apackadd pluginC')dpackadd pluginC')dpackadd pluginC')(packadd pluginC')lpackadd pluginC')ipackadd pluginC'),packadd pluginC') packadd pluginC')'packadd pluginC')
:packadd ...pluginA...B...C...')
:cpackadd ')
:capackadd ')
:calpackadd ')
:callpackadd ')
:call packadd ')apackadd ')dpackadd ')dpackadd ')(packadd ')lpackadd ')ipackadd '),packadd ') packadd ')'packadd ')

Executing Test_packadd_noload()
"./Xdir/pack/mine/opt/mytest/plugin/test.vim" [New File][New] 1L, 24C written

Executing Test_packloadall()

Executing Test_runtime()
"test_packadd.res" [New File][New] 0L, 0C written

Executed 8 tests
"messages"348L, 9314C359L, 9597C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_perl.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_perl.vim" 123 lines, 3037 characters
"test_perl.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"359L, 9597C362L, 9634C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_profile.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_profile.vim" 146 lines, 6247 characters

Executing Test_profile_completion():profile ...continue file func pause start
:"profile continue file func pause start
:"
:profile start test_prof...ile.vim
:"profile start test_profile.vim
:"

Executing Test_profile_errors()

Executing Test_profile_file()

Executing Test_profile_func()
"test_profile.res" [New File]gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/gui_gtk_x11.o gui_gtk_x11.c
[New] 0L, 0C written

Executed 4 tests
"messages"362L, 9634C369L, 9803C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_quickfix.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_quickfix.vim" 1693 lines, 46351 characters

Executing Test_Autocmd()
"F1" [New File]
(1 of 1): Line 10
"F2" [New File]
(1 of 2): Line 10

Executing Test_Autocmd_Exception()

Executing Test_adjust_lnum()

Already only one window
"Xqftestfilec" 20L, 131C

9 fewer lines

Already only one window
"Xqftestfilel" 20L, 131C

9 fewer lines

Executing Test_browse()
"Xqftestfile1" 20L, 131C

(1 of 4): Line5

"Xqftestfile2" 20L, 131C

(3 of 4): Line10
"Xqftestfile1" 20L, 131C

(2 of 4): Line6
"Xqftestfile2" 20L, 131C

(4 of 4): Line11

"Xqftestfile1" 20L, 131C

(1 of 4): Line5

(1 of 4): Line5

"Xqftestfile2" 20L, 131C

(3 of 4): Line10
"Xqftestfile1" 20L, 131C

(2 of 4): Line6
"Xqftestfile2" 20L, 131C

(4 of 4): Line11

"Xqftestfile1" 20L, 131C

(1 of 4): Line5

Executing Test_caddbuffer_to_empty()
"autocmd.txt" [readonly] 1486L, 61530C

(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run

(2 of 1486):

Executing Test_caddbuffer_wrong()
"Xqftestfile2" [New File]
Executing Test_caddexpr_wrong()

(1 of 1):

(1 of 1):

Executing Test_cage()

error list 9 of 10; 1 errors      :cgetexpr ['Xtestfile2:2:2:Line2']

error list 10 of 10; 1 errors     :cgetexpr ['Xtestfile3:3:1:Line3']

error list 8 of 10; 1 errors      :cgetexpr ['Xtestfile1:1:3:Line1']

error list 10 of 10; 1 errors     :cgetexpr ['Xtestfile3:3:1:Line3']

error list 9 of 10; 1 errors      :lgetexpr ['Xtestfile2:2:2:Line2']

error list 10 of 10; 1 errors     :lgetexpr ['Xtestfile3:3:1:Line3']

error list 8 of 10; 1 errors      :lgetexpr ['Xtestfile1:1:3:Line1']

error list 10 of 10; 1 errors     :lgetexpr ['Xtestfile3:3:1:Line3']

Executing Test_cbottom()

Executing Test_cbuffer()
"Xtestfile7" [New File]
(1 of 2): Line 700
"Xtestfile7" [New File]

(1 of 2): Line 700

Executing Test_cexpr()

Executing Test_cfile()
"Xtestfile1" [New File]

(1 of 2): Line 700

"Xtestfile1" [New File]

(1 of 2): Line 700

Executing Test_cgetexpr_works()

Executing Test_clist()

 2 Xtestfile1:1 col 3: Line1

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 1: non-error 1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 5: non-error 3

 6 Xtestfile3:3 col 1: Line3

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 1: non-error 1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 5: non-error 3

 6 Xtestfile3:3 col 1: Line3

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

Executing Test_cwindow()~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       Xtestfile1|1 col 3| Line1                                                       Xtestfile2|2 col 2| Line2
Xtestfile3|3 col 1| Line3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [Quickfix List]                                                                 ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       Xtestfile1|1 col 3| Line1                                                       Xtestfile2|2 col 2| Line2
Xtestfile3|3 col 1| Line3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [Location List]                                                                 Executing Test_dirstack_cleanup()

(1 of 1): 0

Executing Test_duplicate_buf()
"DoesNotExist" [New File]2" [New File]

Xgrepthis
"Xgrepthis" line 1 of 2 --50%-- col 1

(1 of 2): this one

Xgrepthis
(1 of 2): this one

Executing Test_efm()

Executing Test_efm1()
"Xtestfile" 21L, 903C

(1 of 20): 1506-045 (S) Undeclared identifier fd_set.

(20 of 20): What is the title of the quickfix window?

Executing Test_efm2()
"Xtestfile" [New File]

Executing Test_efm_dirstack()

Executing Test_efm_ignore_continuations()

Executing Test_errortitle()

Executing Test_grep()

Already only one window[?25h[?0ctest_quickfix.vim:1418:  " Grep_Test_Text: Match 1
test_quickfix.vim:1419:  " Grep_Test_Text: Match 2
test_quickfix.vim:1424:  silent Xgrep Grep_Test_Text: test_quickfix.vim
test_quickfix.vim:1420:  " GrepAdd_Test_Text: Match 1
test_quickfix.vim:1421:  " GrepAdd_Test_Text: Match 2
test_quickfix.vim:1431:  silent Xgrepadd GrepAdd_Test_Text: test_quickfix.vim
[?25l[?1cAlready only one window[?25h[?0ctest_quickfix.vim:1418:  " Grep_Test_Text: Match 1
test_quickfix.vim:1419:  " Grep_Test_Text: Match 2
test_quickfix.vim:1424:  silent Xgrep Grep_Test_Text: test_quickfix.vim
test_quickfix.vim:1420:  " GrepAdd_Test_Text: Match 1
test_quickfix.vim:1421:  " GrepAdd_Test_Text: Match 2
test_quickfix.vim:1431:  silent Xgrepadd GrepAdd_Test_Text: test_quickfix.vim
[?25l[?1cExecuting Test_helpgrep()
"autocmd.txt" [readonly] 1486L, 61530C

(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run
"autocmd.txt" [readonly] line 1 of 1486 --0%-- col 1
(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run

Executing Test_history()

error list 1 of 10; 1 errors      :  cexpr 'Xtestfile:Line search text'

error list 1 of 2; 1 errors:  cexpr 'Xtestfile:Line search text'

error list 1 of 3; 13 errors      :lexpr ""

error list 1 of 2; 13 errors      :lexpr ""

Executing Test_invalid_efm()

Executing Test_locationlist()

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

W19: Deleting augroup that is still in use
Executing Test_locationlist_cross_tab_jump()
"loclistfoo" 1L, 11Cbar1L, 11C[?25h[?0cloclistfoo:1:loclistfoo

[?25l[?1cAlready only one window

Executing Test_locationlist_curwin_was_closed()

W19: Deleting augroup that is still in use
Executing Test_long_lines()"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Executing Test_nomem()
"/<<PKGBUILDDIR>>/src/vim-basic/alloc.h" 21L, 485C

Error detected while processing function RunTheTest[13]..Test_nomem:

line    2:

E342: Out of memory!  (allocating 4096 bytes)
"/<<PKGBUILDDIR>>/src/vim-basic/alloc.h" 21L, 485C

line    5:

E342: Out of memory!  (allocating 4096 bytes)
"/<<PKGBUILDDIR>>/src/vim-basic/alloc.h" 21L, 485C

line    8:

E342: Out of memory!  (allocating 1025 bytes)
"/<<PKGBUILDDIR>>/src/vim-basic/alloc.h" 21L, 485C

line   11:

E342: Out of memory!  (allocating 1025 bytes)
"/<<PKGBUILDDIR>>/src/vim-basic/alloc.h" 21L, 485C

line   14:

E342: Out of memory!  (allocating 1025 bytes)

Executing Test_qf_property()

Executing Test_qf_title()

Executing Test_quickfix_set_list_with_act()

Executing Test_quickfix_was_changed_by_autocmd()

error list 9 of 10; 1 errors      :setqflist()

W19: Deleting augroup that is still in use
error list 9 of 10; 1 errors      :setloclist()

error list 9 of 10; 1 errors      :setloclist()

W19: Deleting augroup that is still in use
Executing Test_setqflist()"Xtestfile" [New File]
(2 of 2):

(3 of 3):

(2 of 2):

(3 of 3):

Executing Test_setqflist_empty_middle()

test_quickfix.vim
"test_quickfix.vim" 1693L, 46351C

(1 of 49): func Test_clist()

test_quickfix.vim
(1 of 13): " With an empty list, command should return error

test_quickfix.vim
(1 of 2): " number of matches is unknown

error list 9 of 10; 13 errors     :vimgrep empty test_quickfix.vim

error list 8 of 10; 49 errors     :vimgrep Test_ test_quickfix.vim

error list 9 of 10; 0 errors      :setqflist()

error list 10 of 10; 2 errors     :vimgrep matches test_quickfix.vim

test_quickfix.vim
(1 of 49): func Test_clist()

test_quickfix.vim
(1 of 13): " With an empty list, command should return error

test_quickfix.vim
(1 of 2): " number of matches is unknown

error list 9 of 10; 13 errors     :lvimgrep empty test_quickfix.vim

error list 8 of 10; 49 errors     :lvimgrep Test_ test_quickfix.vim

error list 9 of 10; 0 errors      :setloclist()

error list 10 of 10; 2 errors     :lvimgrep matches test_quickfix.vim

Executing Test_setqflist_empty_older()

test_quickfix.vim
(1 of 24): \ 'Does anyone know what is the problem and how to correction it?',

test_quickfix.vim
(1 of 21): " Go back two lists

test_quickfix.vim
(1 of 7): " Add three quickfix/location lists

error list 8 of 10; 24 errors     :vimgrep one test_quickfix.vim

error list 9 of 10; 21 errors     :vimgrep two test_quickfix.vim

error list 10 of 10; 7 errors     :vimgrep three test_quickfix.vim

test_quickfix.vim
(1 of 24): \ 'Does anyone know what is the problem and how to correction it?',

test_quickfix.vim
(1 of 21): " Go back two lists

test_quickfix.vim
(1 of 7): " Add three quickfix/location lists

error list 8 of 10; 24 errors     :lvimgrep one test_quickfix.vim

error list 9 of 10; 21 errors     :lvimgrep two test_quickfix.vim

error list 10 of 10; 7 errors     :lvimgrep three test_quickfix.vim

Executing Test_switchbuf()
"Xqftestfile1" 20L, 131C220L, 131C1" line 1 of 20 --5%-- col 1

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" line 1 of 20 --5%-- col 1

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16

(1 of 6): Line5

(2 of 6): Line6

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C220L, 131C

(1 of 6): Line5

(2 of 6): Line6

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" 20L, 131C

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" 20L, 131C

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16

Already only one window
"Xqftestfile1" 20L, 131C220L, 131C320L, 131C

Executing Test_two_windows()
"one" [New File]two

Executing Test_vimgreptitle()

file
"file" [New File]

Cannot open file "file"
"test_quickfix.res" [New File][New] 0L, 0C written

Executed 42 tests
"messages" 369L, 9803C414L, 11106C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_ruby.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_ruby.vim" 34 lines, 820 characters
"test_ruby.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"414L, 11106C417L, 11143C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_search.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_search.vim" 296 lines, 8731 characters

Executing Test_search_cmdline()/foobar
/the
search hit BOTTOM, continuing at TOP/thes
/foobar
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
?the
?the
?the
?the
?the
?the
?the
?the
?the
?the
search hit TOP, continuing at BOTTOM/thes
/thes
/thes
/thes
/thei
/theis
/theiss
/themthe\>
Executing Test_search_cmdline2()/the
/the
/the
/the
/the
/the
/the
/foo
6 their
  7 the
  8 them
  9 these
 10 foobar
[No Name] [+]                                                                   " Test for the search command

func Test_search_cmdline()
  if !exists('+incsearch')
    return
  endif
  " need to disable char_avail,
  " so that expansion of commandline works
  call test_disable_char_avail(1)
  new
  call setline(1, ['  1', '  2 these', '  3 the', '  4 their', '  5 there', '  6their', '  7 the', '  8 them', '  9 these', ' 10 foobar'])
  " Test 1
  " CTRL-N / CTRL-P skips through the previous search history
  set noincsearch
  :1
test_search.vim                                                                 Executing Test_searchpair()

Executing Test_use_sub_pat()
"test_search.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"417L, 11143C424L, 11305C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_signs.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_signs.vim" 199 lines, 6383 characters

Executing Test_sign()
"foo" [New File]a  b  c xd                                                                                 ~
[No Name] [+]                                                                   " Test for signs

if !has('signs')
  finish
endif
test_signs.vim                                                                  ~                                                                               ~                                                                               ~                                                                               ~                                                                               foo                                                                               a
  b
x c
  d
[No Name] [+]                                                                     a  bx c  d  ~   "foo" [New file] --No lines in buffer--
"barF
Executing Test_sign_completion():sign ...define jump list place undefine unplace
:"sign define jump list place undefine unplace
:"
:sign define Sign ...icon= linehl= text= texthl=
:"sign define Sign icon= linehl= text= texthl=
:"
:sign define Sign linehl=Spell...Bad SpellCap SpellLocal SpellRare
:"sign define Sign linehl=SpellBad SpellCap SpellLocal SpellRare
:"
:sign define Sign icon=Xsig...nOne XsignTwo
:"sign define Sign icon=XsignOne XsignTwo
:"
:sign undefine ...Sign1 Sign2
:"sign undefine Sign1 Sign2
:"
:sign place 1 ...buffer= file= line= name=
:"sign place 1 buffer= file= line= name=
:"
:sign place 1 name=...Sign1 Sign2
:"sign place 1 name=Sign1 Sign2
:"
:sign unplace 1 ...buffer= file=
:"sign unplace 1 buffer= file=
:"
:sign list ...Sign1 Sign2
:"sign list Sign1 Sign2
:"
:sign jump 1 ...buffer= file=
:"sign jump 1 buffer= file=
:"

Executing Test_sign_delete_buffer()

Executing Test_sign_invalid_commands()

Executing Test_sign_undefine_still_placed()
"foobar" [New File]test_signs.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"424L, 11305Cgcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/farsi.o farsi.c
432L, 11518C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_smartindent.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_smartindent.vim" 14 lines, 376 characters

Executing Test_nosmartindent()/some
search hit BOTTOM, continuing at TOP"test_smartindent.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"432L, 11518C436L, 11593C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_startup.vim" 185 lines, 4581 characters

Executing Test_after_comes_later()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c1: /<<PKGBUILDDIR>>/src/vim-basic/testdir/Xbefore.vim

  2: /<<PKGBUILDDIR>>/src/vim-basic/testdir/Xhere/plugin/here.vim

  3: /<<PKGBUILDDIR>>/src/vim-basic/testdir/Xhere/pack/foo/start/

foobar/plugin/foo.vim

  4: /<<PKGBUILDDIR>>/src/vim-basic/testdir/Xafter/plugin/later.v

im
  5: /<<PKGBUILDDIR>>/src/vim-basic/testdir/Xafter.vim
[?25h[?0c

[?25l[?1cExecuting Test_compatible_args()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1cError detected while processing /<<PKGBUILDDIR>>/src/vim-basic/te

stdir/Xafter.vim:

line    2:

E528: Must specify a ' value: viminfo+=nviminfo
[?25h[?0c
[?25h[?8c[?25h[?0c
[?25l[?1cExecuting Test_file_args()[?25h[?0c[?25h[?8c[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
3 files to edit
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
2 files to edit
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
4 files to edit

[?25l[?1cExecuting Test_help_arg()[?25h[?0c
[?25l[?1cExecuting Test_read_stdin()[?25h[?0c[?25l[?1c"-stdin-" 1 line, 10 characters[?25h[?8c[?25h[?0c"Xtestout" [New File] 1 line, 10 characters written
[?25h[?0c
Vim: Reading from stdin...

[?25l[?1cExecuting Test_startup_script()

Executing Test_startuptime()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
[?25l[?1c"test_startup.res" [New File][New] 0L, 0C written

Executed 7 tests
"messages"436L, 11593C446L, 11844C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_startup_utf8.vim" 64 lines, 1366 characters

Executing Test_read_fifo_utf8()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"/dev/fd/63" [readonly] 2 lines, 24 characters

"Xtestout" [New File] 2 lines, 24 characters written
[?25h[?0c

[?25l[?1cExecuting Test_read_stdin_utf8()[?25h[?0c[?25l[?1c"-stdin-" 2 lines, 24 characters[?25h[?8c[?25h[?0c"Xtestout" [New File] 2 lines, 24 characters written
[?25h[?0c
Vim: Reading from stdin...
[?25l[?1c"test_startup_utf8.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"446L, 11844C451L, 11955C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_stat.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_stat.vim" 64 lines, 1598 characters

Executing Test_checktime()
"Xtest.tmp" 1L, 13C[?25h[?0cgcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/fileio.o fileio.c
[?25l[?1c1L, 25C

Executing Test_existent_directory()

Executing Test_existent_file()[?25h[?0c

[?25l[?1cExecuting Test_nonexistent_file()

Executing Test_win32_symlink_dir()
"test_stat.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"451L, 11955C459L, 12156C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_substitute.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_substitute.vim" 41 lines, 1151 characters

Executing Test_multiline_subst()

search hit BOTTOM, continuing at TOP
3 substitutions on 3 lines
3 substitutions on 2 lines
"test_substitute.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"459L, 12156C463L, 12232C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_syntax.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_syntax.vim" 164 lines, 4101 characters

Executing Test_syn_iskeyword()CREATE TABLE FOOBAR(
    DLTD_BY VARCHAR2(100)
);

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for syntax and syntax iskeyword option

if !has("syntax")
  finish
endif

func GetSyntaxItem(pat)
  let c = ''
  let a = ['a', getreg('a'), getregtype('a')]
  0
test_syntax.vim                                                                 
syntax iskeyword not set

syntax iskeyword @,48-57,_,192-255CREATE TABLE FOOBAR(
    DLTD_BY VARCHAR2(100)
);

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for syntax and syntax iskeyword option

if !has("syntax")
  finish
endif

func GetSyntaxItem(pat)
  let c = ''
  let a = ['a', getreg('a'), getregtype('a')]
  0
test_syntax.vim                                                                 
syntax iskeyword not set

Executing Test_syntax_after_reload()
"Xsomefile" [New File][New] 2L, 12C written
"other" [New File]Xsomefile" 2L, 12C

Executing Test_syntax_completion():syn ...case clear cluster conceal enable include iskeyword keyword list manual ma

tch off on region reset spell sync"syn case clear cluster conceal enable include iskeyword keyword list manual match off on region reset spell sync
:syn case ...ignore match
:"syn case ignore match
:"
:syn spell ...default notoplevel toplevel
:"syn spell default notoplevel toplevel
:"
:syn sync ...ccomment clear fromstart linebreaks= linecont lines= match maxlines=

minlines= region"syn sync ccomment clear fromstart linebreaks= linecont lines= match maxlines= minlines= region
:syn list ...Boolean Character ColorColumn Comment Conceal Conditional Constant Cu

rsorColumn CursorLine CursorLineNr Debug Define Delimiter DiffAdd DiffChange Dif

fDelete DiffText Directory EndOfBuffer Error ErrorMsg Exception Float FoldColumn

Folded Function Identifier Ignore IncSearch Include Keyword Label LineNr Macro

MatchParen ModeMsg MoreMsg NonText Normal Number Operator Pmenu PmenuSbar PmenuS

el PmenuThumb PreCondit PreProc Question Quote Repeat SYN Search SignColumn Spec

ial SpecialChar SpecialComment SpecialKey SpellBad SpellCap SpellLocal SpellRare

Statement StatusLine StatusLineNC StorageClass String Structure TabLine TabLine

Fill TabLineSel Tag Title Todo Type Typedef Underlined VertSplit Visual VisualNO

SWarningMsg WildMenu sqlComment sqlFold sqlFunction sqlKeyword sqlNumber sqlOpe

rator sqlSpecial sqlStatement sqlString sqlTodo sqlType vimAbb vimAddress vimAuH

ighlight vimAuSyntax vimAugroup vimAugroupError vimAugroupKey vimAugroupSyncA vi

mAutoCmd vimAutoCmdOpt vimAutoCmdSfxList vimAutoCmdSpace vimAutoEvent vimAutoEve

ntList vimAutoSet vimBehave vimBehaveError vimBehaveModel vimBracket vimBufnrWar

nvimClusterName vimCmdSep vimCmplxRepeat vimCollClass vimCollClassErr vimCollec

tion vimCommand vimComment vimCommentString vimCommentTitle vimCommentTitleLeade"syn list Boolean Character ColorColumn Comment Conceal Conditional Constant CursorColumn CursorLine CursorLineNr Debug Define Delimiter DiffAdd DiffChange Di
fDelete DiffText Directory EndOfBuffer Error ErrorMsg Exception Float FoldColumn Folded Function Identifier Ignore IncSearch Include Keyword Label LineNr Macro MatchParen ModeMsg MoreMsg NonText Normal Number Operator Pmenu PmenuSbar PmenuSel PmenuThumb PreCondit PreProc Question Quote Repeat SYN Search SignColumn Special SpecialChar SpecialComment SpecialKey SpellBad SpellCap SpellLocal SpellRare Statement StatusLine StatusLineNC StorageClass String Structure TabLine TabLineFill TabLineSel Tag Title Todo Type Typedef Underlined VertSplit Visual VisualNOS WarningMsg WildMenu sqlComment sqlFold sqlFunction sqlKeyword sqlNumber sqlOperator sqlSpecial sqlStatement sqlString sqlTodo sqlType vimAbb vimAddress vimAuHighlight vimAuSyntax vimAugroup vimAugroupError vimAugroupKey vimAugroupSyncA vimAutoCmd vimAutoCmdOpt vimAutoCmdSfxList vimAutoCmdSpace vimAutoEvent vimAutoEventList vimAutoSet vimBehave vimBehaveError vimBehaveModel vimBracket vimBufnrWarn vimClusterName vimCmdSep vimCmplxRepeat vimCollClass vimCollClassErr vimCollection vimCommand vimComment vimCommentString vimCommentTitle vimCommentTitleLead
:syn match ...Boolean Character ColorColumn Comment Conceal Conditional Constant C
:"syn match Boolean Character ColorColumn Comment Conceal Conditional Constant 
:"

Executing Test_syntax_list()
"../memfile_test.c" [readonly] 143L, 3142C

--- Syntax items ---


--- Syntax items ---

"Xsomefile" [New File]

Executing Test_syntime()
"../memfile_test.c" [readonly] 143L, 3142C/* vi:set ts=8 sts=4 sw=4 noet:
 *
 * VIM - Vi IMproved    by Bram Moolenaar
 *
 * Do ":help uganda"  in Vim to read copying and usage conditions.
 * Do ":help credits" in Vim to see a list of people who contributed.
 * See README.txt for an overview of the Vim source code.
 */

/*
 * memfile_test.c: Unittests for memfile.c
 * Mostly by Ivan Krasilnikov.
 */

#undef NDEBUG
#include <assert.h>

/* Must include main.c because it contains much more than just main() */
#define NO_VIM_MAIN
#include "main.c"

/* This file has to be included because the tested functions are static */
#include "memfile.c"
"Xsomefile" [New File]
"test_syntax.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"463L, 12232C471L, 12429C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_system.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_system.vim" 92 lines, 2910 characters

Executing Test_System()
"Xdummy" [New File]
Executing Test_system_exmode()
"test_system.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"471L, 12429Cgcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE  -o objects/gui_gtk_gresources.o auto/gui_gtk_gresources.c
476L, 12524C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_textobjects.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_textobjects.vim" 43 lines, 946 characters

Executing Test_inner_block_with_cpo_M_left_backslash()

Executing Test_inner_block_with_cpo_M_right_backslash()

Executing Test_inner_block_without_cpo_M()
"test_textobjects.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"476L, 12524C482L, 12723C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_undo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_undo.vim" 265 lines, 6936 characters

Executing Test_U_command()Executing Test_global_local_undolevels()
"one" [New File]
6 fewer lines; before #8  0 seconds ago
"two" [New File]
3 fewer lines; before #11  0 seconds ago
"three" [New File]
Executing Test_insert_expr()=setline('.','1234')
1 line less; before #4  0 seconds ago3=setline('.','1234')
1 line less; before #7  0 seconds ago=string(123)
1 line less; before #9  0 seconds ago

Executing Test_undo_del_chars()
1 change; before #3  0 seconds ago21

1 change; before #6  1 seconds ago5
4s; after #3
1; before #21

3 changes; after #6  1 seconds ago3 changes; before #7  0 seconds ago

3 changes; before #1  3 seconds ago

3 changes; after #6  3 seconds ago

3 changes; after #9  0 seconds ago

Executing Test_undo_write()
"Xtest" [New File]"Xtest" [New] 1L, 12C written"Xtest" 3L, 20C written1 line less; before #4  0 seconds ago

2 fewer lines; before #2  0 seconds ago

1 line less; before #1  0 seconds ago

1 more line; after #1  0 seconds ago

2 more lines; after #3  0 seconds ago

1 more line; after #4  0 seconds ago

Executing Test_undofile_earlier()
"Xfile" [New File]"Xfile" [New] 3L, 14C written3L, 14C

Finished reading undo file Xundofile

3 fewer lines; before #1  2017/03/08 18:30:07

Executing Test_undojoin()1 line less; before #2  0 seconds ago2 fewer lines; before #3  0 seconds ago

Executing Test_undolist()1 change; before #2  0 seconds agoExecuting Test_undotree()
1 change; before #2  0 seconds ago
"Xtest" [New] 1L, 4C written
"test_undo.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"482L, 12723Cgcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE  -o objects/if_perl.o auto/if_perl.c
494L, 13030C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_usercommands.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_usercommands.vim" 104 lines, 2527 characters

Executing Test_Ambiguous()

Executing Test_CmdUndefined()

Executing Test_cmdmods()
"test_usercommands.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"494L, 13030C500L, 13158C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viminfo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_viminfo.vim" 515 lines, 13496 characters

Executing Test_cmdline_history()

Executing Test_cmdline_history_order()

Executing Test_global_vars()

Executing Test_viminfo_bad_syntax()

Executing Test_viminfo_encoding()
"Xviminfo" [converted] 73L, 3460C

Executing Test_viminfo_file_mark_tabclose()
"Xtestfileintab" [New File]viminfo" 83L, 3639C

Executing Test_viminfo_file_mark_zero_time()

Executing Test_viminfo_file_marks()
"ten" [New File]again" [New File]
"thirty" [New File]
"twen
"again" [New File]fourty" [New File]
"Xviminfo" 90L, 3437C

Executing Test_viminfo_jumplist()
"testbuf" [New File]/20
/30
/last pos
/15
/last pos
?30
/15
/last pos
?30
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here

Executing Test_viminfo_marks()
"bufa" [New File]b

Executing Test_viminfo_oldfiles()

Executing Test_viminfo_read_and_write()

Executing Test_viminfo_registers()
"test_viminfo.res" [New File][New] 0L, 0C written

Executed 13 tests
"messages" 500L, 13158C516L, 13670C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viml.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_viml.vim" 1316 lines, 31904 characters

Error detected while processing /<<PKGBUILDDIR>>/src/vim-basic/te

stdir/test_viml.vim:

line  432:

E492: Not an editor command: ^Iasdf

line  444:

E492: Not an editor command: ^Iasdf

line  452:

E492: Not an editor command: asdf

line  455:

E492: Not an editor command: asdf | Xpath 'p'

Error detected while processing function T8_F:

line    5:

E492: Not an editor command: ^I    asdf

line    7:

E492: Not an editor command: ^I    asdf | Xpath 'd'

line   19:

E492: Not an editor command: ^I    asdf

line   21:

E492: Not an editor command: ^I    asdf | Xpath 'l'

line   29:

E121: Undefined variable: novar

E15: Invalid expression: novar^I^I" returns (default return value 0)

Error detected while processing function T8_G:

line    5:

E492: Not an editor command: ^I    asdf^I^I" returns -1

Error detected while processing function T8_H:

line    5:

E492: Not an editor command: ^I    asdf^I^I" returns -1

Error detected while processing function F[2]..G[2]..H[2]..I:

line    2:

E492: Not an editor command:     asdf^I^I" error

Error detected while processing /<<PKGBUILDDIR>>/src/vim-basic/te

stdir/test_viml.vim:

line  663:

E15: Invalid expression: | strlen("\"") | Xpath 'j'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'j'

line  673:

E15: Invalid expression: | strlen("\"") | Xpath 'n'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'n'

line  682:

E15: Invalid expression: | strlen("\"") | Xpath 'r'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'r'

line  717:

E492: Not an editor command:     asdf^I^I" error

1
line  787:

E492: Not an editor command:     asdf^I^I" error

line  794:

E492: Not an editor command:     asdf^I^I" error

line  817:

E121: Undefined variable: asdf

E15: Invalid expression: asdf

line  828:

E121: Undefined variable: asdf

E15: Invalid expression: asdf | Xpath 'f' | endwhile | Xpath 'g'

Error detected while processing function F:

line    8:

E121: Undefined variable: g:boolvar

E15: Invalid expression: g:boolvar^I" possibly undefined

E121: Undefined variable: g:boolvar

E15: Invalid expression: g:boolvar | Xpath 'd' | else | Xpath 'e' | endif

Executing Test_arg_abort()

Executing Test_braces_skipped()

Executing Test_curlies()

Executing Test_defining_functions()

Executing Test_echo_and_string()

foo bar

'foo bar'

-1.2

-1.2

string

function('string')

{'a': {...}}

{'a': {...}}

[[...]]

[[...]]

[{}, {}, {}]

[{}, {}, {}]

{'a': {}, 'b': {}}

{'a': {}, 'b': {}}

[[], [], []]

[[], [], []]

{'a': [], 'b': []}

{'a': [], 'b': []}

[{'one': 'yes', 'two': 'yes', 'three': 'yes'}, {...}, {...}]

[{'one': 'yes', 'two': 'yes', 'three': 'yes'}, {'one': 'yes', 'two': 'yes', 'th

ree': 'yes'}, {'one': 'yes', 'two': 'yes', 'three': 'yes'}]

{'a': {'one': 'yes', 'two': 'yes', 'three': 'yes'}, 'b': {...}}

{'a': {'one': 'yes', 'two': 'yes', 'three': 'yes'}, 'b': {'one': 'yes', 'two':

'yes', 'three': 'yes'}}

[[1, 2, 3], [...], [...]]

[[1, 2, 3], [1, 2, 3], [1, 2, 3]]

{'a': [1, 2, 3], 'b': [...]}

{'a': [1, 2, 3], 'b': [1, 2, 3]}

Executing Test_endwhile_function()

Executing Test_endwhile_script()

   function T1_F()

1      Xpath 'a'

2      let first = 1

3      while 1

4Xpath 'b'

5if first

6Xpath 'c'

7let first = 0

8break

9else

10Xpath 'd'

11return

12endif

13     endwhile

   endfunction"/tmp/vlRZxXz/0" [noeol] 16L, 299C
13 substitutions on 13 lines
Pattern not found: ^\s*$
"/tmp/vlRZxXz/0" 13L, 248C written
"test_viml.vim" 1316L, 31904C
   function T1_G()
1      Xpath 'h'
2      let first = 1
3      while 1
4Xpath 'i'
5if first
6Xpath 'j'
7let first = 0
8break
9else
10Xpath 'k'
11return

12endif

13if 1    " unmatched :if

14     endwhile

   endfunction"/tmp/vlRZxXz/1" [noeol] 17L, 334C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vlRZxXz/1" 14L, 281C written
"test_viml.vim" 1316L, 31904C
Executing Test_error_in_function()
Executing Test_error_in_script()
Executing Test_expr_parsing()
Executing Test_finish()
   function T4_F()
1      if 1
2Xpath 'a'
3let loops = 3
4while loops > 0"    3:  2:     1:
5Xpath 'b' . loops
6if (loops == 2)
7Xpath 'c' . loops
8return

9Xpath 'd' . loops

10endif

11Xpath 'e' . loops

12let loops = loops - 1

13endwhile

14Xpath 'f'

15     else

16Xpath 'g'

17     endif

   endfunction"/tmp/vlRZxXz/2" [noeol] 20L, 504C
17 substitutions on 17 lines
Pattern not found: ^\s*$
"/tmp/vlRZxXz/2" 17L, 445C written
"test_viml.vim" 1316L, 31904C
Executing Test_func_abort()
Executing Test_if_bar_fail()
Executing Test_if_fail()
Executing Test_if_while()
Executing Test_num64()
Executing Test_return()
Executing Test_script_lines()
Executing Test_skip()
Executing Test_type()
Executing Test_while_fail()
"test_viml.res" [New File][New] 0L, 0C written
Executed 21 tests
"messages" 516L, 13670C540L, 14309C written[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_visual.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_visual.vim" 25 lines, 506 characters

Executing Test_block_shift_multibyte()

Executing Test_dotregister_paste()"test_visual.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"540L, 14309C545L, 14423C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_window_id.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_window_id.vim" 103 lines, 2714 characters

Executing Test_win_getid()
"one" [New File]twohree" [New File]
"four" [New File]ive

Executing Test_win_getid_curtab()
"X" [New File]test_window_id.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"545L, 14423C550L, 14527C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_writefile.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_writefile.vim" 16 lines, 490 characters

Executing Test_WriteFile()
"test_writefile.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"550L, 14527C554L, 14596C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_latin.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot_latin.vim" 7 lines, 280 characters

Executing Test_eow_with_optional()

Executing Test_equivalence_re1()

Executing Test_equivalence_re2()

Executing Test_nested_backrefs()

Executing Test_recursive_substitute()
"test_alot_latin.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"[converted] 554L, 14596C[converted] 562L, 14812C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot_utf8.vim" 11 lines, 440 characters[?25h[?0cExecuting Test_classes_re1()gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o


Executing Test_classes_re2()

Executing Test_equivalence_re1()

Executing Test_equivalence_re2()

Executing Test_match_using_multibyte_conceal_char()#ˑThisˑisˑaˑTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " A series of tests that can run in one Vim invocation.
" This makes testing go faster, since Vim doesn't need to restart.

" These tests use utf8 'encoding'.  Setting 'encoding' is already done in
" runtest.vim.  Checking for the multi_byte feature is in the individual
" files, so that they can be run by themselves.

source test_expr_utf8.vim
source test_matchadd_conceal_utf8.vim
source test_regexp_utf8.vim
test_alot_utf8.vim                                                              Executing Test_source_latin()
"Xscript"[New] 2L, 44C written
Executing Test_source_utf8()"Xscript"[New] 2L, 42C written:%s/àx/--à1234--/g
:%s/Àx/--À1234--/g

Executing Test_strcharpart()

Executing Test_strgetchar()
"test_alot_utf8.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"562L, 14812C574L, 15147C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot.vim" 48 lines, 1233 characters

Executing Test_BufEnter()
"NewFile" [New File]Xdir" is a directory

Executing Test_abbreviation()Executing Test_abs()

Executing Test_acos()

Executing Test_asin()

Executing Test_atan()

Executing Test_atan2()

Executing Test_augroup_deleted()

W19: Deleting augroup that is still in use
Executing Test_augroup_warning()
W19: Deleting augroup that is still in useentering

Executing Test_auto_partial_rebind()

Executing Test_autocmd_bufunload_avoiding_SEGV_01()
"aa.txt" [New File]
"bb.txt" [New File]

Executing Test_autocmd_bufunload_avoiding_SEGV_02()
"a.txt" [New File]
"test_alot.vim" 48L, 1233C

Executing Test_autocmd_bufunload_with_tabnext()

Executing Test_autocmd_bufwinleave_with_tabfirst()
"a.txt" [New File]
Executing Test_bind_in_python()

Executing Test_break_undo()Executing Test_bufunload()

Executing Test_cancel_ptjump()

Already only one window:ptjump word
  # pri kind tagfile

  1 Fwordfile2

cmd2

  2 Fwordfile1

cmd1

Type number and <Enter> (empty cancels): 
"help.txt" [readonly] 225L, 8437C

Executing Test_caught_error_in_statusline()source test_messages.vim
source test_partial.vim
source test_popup.vim
source test_reltime.vim
source test_searchpos.vim
source test_set.vim
source test_sort.vim
source test_statusline.vim
source test_syn_attr.vim
source test_tabline.vim
source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis here
new line here

                                                                                Executing Test_caught_error_in_tabline()                                                                                source test_partial.vim
source test_popup.vim
source test_reltime.vim
source test_searchpos.vim
source test_set.vim
source test_sort.vim
source test_statusline.vim
source test_syn_attr.vim
source test_tabline.vim
source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis here
new line here

test_alot.vim                                                                   Executing Test_ceil()

Executing Test_closure_counter()

Executing Test_closure_refcount()

Executing Test_closure_unlet()

Executing Test_color_names()

Executing Test_compare_null_dict()

Executing Test_compare_partials()

Executing Test_compl_vim_cmds_after_register_expr()=s:test_func()
 AAAAA_Group             BufAdd                  BufCreate               BufDelete               BufEnter                BufFilePost             BufFilePre              BufHidden               BufLeave                BufNew                  BufNewFile              BufRead                 BufReadCmd              BufReadPost             BufReadPre              BufUnload               BufWinEnter             BufWinLeave             BufWipeout              BufWrite                BufWriteCmd             BufWritePost           Executing Test_complete_no_undo()=UndoComplete()
xxx
aaa
yyy
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   test_tabpage.vimtest_tagcase.vimtest_tagjump.vimtest_timers.vimtest_true_false.vimtest_unlet.vimsource test_window_cmd.vimsource test_options.vime hereTest3: text with a (parenthesis here
test_alot.vim                                                                   January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       1 change; before #2  0 seconds ago=UndoComplete()

bbb
yyy~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
source test_tab
source test_tagJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        1 change; before #4  0 seconds ago=UndoComplete()

yyy~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
source test_tab
source test_tagJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December           
January

~              
~              
~              
~              
~              
~              
~              
~              February       
March          
April          
May            
June           
July           
August         
September      -- INSERT --January        1 change; before #5  0 seconds ago

Executing Test_completefunc_opens_new_window_one()

search hit BOTTOM, continuing at TOPExecuting Test_completefunc_opens_new_window_two()

search hit BOTTOM, continuing at TOPExecuting Test_completefunc_with_scratch_buffer()January        
February
March    
April  
May     January        
February       info2-1
2-2
2-3

February
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis hereJanuary        
February       
March          
April          
May            

[Scratch]                                                                       test_alot.vim                                                                   [Scratch] [Preview]                                                             [Scratch]                                                                       
March~              
~              
~              
~              
~              January        
February       
March          
April          
May            3
3
3[Scratch]                                                                       [Scratch]                                                                       February       
March          
April
~              
~              
~              
~              
~              January        
February       
March          
April          
May            4
4
4[Scratch]                                                                       [Scratch]                                                                       March          
April          Executing Test_completefunc_works()

search hit BOTTOM, continuing at TOPthreedef       
threeDEF       threedef       
threeDEF       
threeDEF
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~              
~              
~              
~              
~              threedef       
threeDEF       Executing Test_completion_ctrl_e_without_autowrap()Executing Test_cos()

Executing Test_cosh()

Executing Test_cursorhold_insert()[?25h[?0c[?25l[?1cExecuting Test_cursorhold_insert_ctrl_x()[?25h[?0c[?25l[?1cExecuting Test_cursorline_keep_col()

Executing Test_curswant_with_autocommand()
Executing Test_cycle_partial_job()

Executing Test_cyclic_dict_arg()

Executing Test_cyclic_list_arg()

Executing Test_delete_myself()[?25h[?0c

[?25l[?1cExecuting Test_dict()

Executing Test_dictionary()

Executing Test_dir_delete()

Executing Test_early_bar()

Executing Test_empty_buffer()

Executing Test_equal()

Executing Test_ex_undo()
"ex-undo" [New File]
1 line less; before #3  0 seconds ago

1 line less; after #1  0 seconds ago

2 fewer lines; before #1  0 seconds ago

Executing Test_execute_list()

Executing Test_execute_string()

this

theend

something

Executing Test_existing()

Executing Test_exp()

Executing Test_expand()

Executing Test_feedkeys_x_with_empty_string()Executing Test_file_delete()
"Xfile" [New File][New] 2L, 4C written

Executing Test_file_perm()

Executing Test_fileformat_after_bw()
"a.txt" [New File]ex-undo" [New File]

Executing Test_filetype_valid()

Executing Test_filter()
"Xdoesnotmatch" [New File]
"Xwillmatch" [New File]ex-undo" [New File]
Executing Test_filter_cmd_completion():filter ^I"=execute('let cmdline = getcmdline()')
:filter ^I:filter pat^I"=execute('let cmdline = getcmdline()')
:filter pat^I:filter /pat^I"=execute('let cmdline = getcmdline()')
:filter /pat^I:filter /pat/^I"=execute('let cmdline = getcmdline()')
:filter /pat/^I:filter pat pri...nt"=execute('let cmdline = getcmdline()')
:filter pat print:filter /pat/ pri...nt"=execute('let cmdline = getcmdline()')
:filter /pat/ print:filter #pat# pri...nt"=execute('let cmdline = getcmdline()')
:filter #pat# printExecuting Test_filter_fails()

Executing Test_filter_map_dict_expr_funcref()

Executing Test_filter_map_dict_expr_string()

Executing Test_filter_map_list_expr_funcref()

Executing Test_filter_map_list_expr_string()

Executing Test_floor()

Executing Test_fmod()

Executing Test_fnamemodify()
"test_alot.vim" 48L, 1233C

Executing Test_func_unref()

Executing Test_funcref()

0
Executing Test_function_in_dict()

Executing Test_function_with_funcref()

Executing Test_gD()

Executing Test_gD_char()

Executing Test_gD_comment()

Executing Test_gD_inline_comment()

Executing Test_gD_string()

Executing Test_gD_string_same_line()

Executing Test_gD_too()

Executing Test_gd()

Executing Test_gd_comment()

Executing Test_gd_comment_in_string()

Executing Test_gd_inline_comment()

Executing Test_gd_inline_comment_body()

Executing Test_gd_inline_comment_only()

Executing Test_gd_kr_style()

Executing Test_gd_missing_braces()

Executing Test_gd_not_local()

Executing Test_gd_string()

Executing Test_gd_string_in_comment()

Executing Test_gd_string_only()

Executing Test_gd_trailing_comment()

Executing Test_gd_trailing_multiline_comment()

Executing Test_get_partial_items()

Executing Test_getreg_empty_list()

Executing Test_global_local_lispwords()

Executing Test_help_complete()

Executing Test_help_respect_current_file_lang()
"testdoc.abx" [readonly] 2L, 25Cja[readonly] 2L, 25Cline 1 of 2 --50%-- col 2-9txt[readonly] 2L, 25C
Executing Test_help_tagjump()"help.txt" [readonly] 225L, 8437C
"options.txt" [readonly] 8739L, 370255Cline 7652 of 8739 --87%-- col 7-49
"eval.txt" [readonly][converted] 10613L, 408230C line 2406 of 10613 --22%-- col 1
"options.txt" [readonly] line 1320 of 8739 --15%-- col 4-25
"cmdline[readonly] 1147L, 46822C

Executing Test_if()

Executing Test_info()

Executing Test_invalid()

Executing Test_invalid_submatch()

Executing Test_isnan()

Executing Test_join_with_count()

Executing Test_keymap_valid()

Executing Test_keyword_jump()
"Xtestfile" link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o vim objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o objects/gui.o objects/gui_gtk.o objects/gui_gtk_x11.o objects/pty.o objects/gui_gtk_f.o objects/gui_beval.o objects/gui_gtk_gresources.o objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/json.o objects/main.o objects/memfile.o objects/message.o   -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
9L, 141C

Executing Test_lambda_call_lambda_from_lambda()

Executing Test_lambda_capture_by_reference()

Executing Test_lambda_circular_reference()

Executing Test_lambda_closure_counter()

Executing Test_lambda_combination()

Executing Test_lambda_delfunc()

Executing Test_lambda_do_not_share_local_variable()

Executing Test_lambda_fails()

Executing Test_lambda_feature()

Executing Test_lambda_refer_local_variable_from_other_scope()

Executing Test_lambda_scope()

Executing Test_lambda_share_scope()

Executing Test_lambda_side_effect()

Executing Test_lambda_with_a_var()

Executing Test_lambda_with_filter()

Executing Test_lambda_with_map()

Executing Test_lambda_with_partial()

Executing Test_lambda_with_sort()

Executing Test_lambda_with_timer()[?25h[?0c

[?25l[?1c1[?25h[?0c
[?25l[?1c2[?25h[?0c
[?25l[?1c3[?25h[?0c
[?25l[?1c4[?25h[?0c
[?25l[?1c5[?25h[?0c
[?25l[?1c6[?25h[?0c
[?25l[?1c7[?25h[?0c
[?25l[?1c8[?25h[?0c
[?25l[?1cExecuting Test_load_menu()

Executing Test_log()

Executing Test_log10()

Executing Test_loop_over_null_list()

Executing Test_map_ctrl_c_insert()Executing Test_map_ctrl_c_visual():'<,'>$put ='vmap works'

Executing Test_map_cursor()1 line less; before #8  0 seconds ago

Executing Test_map_feedkeys():call feedkeys(".", "in")
:call feedkeys(".", "in")
Executing Test_map_langmap():call append(line('$'), '+')

Executing Test_map_meta_quotes()Executing Test_match()

abcdefghijklmnopq
TEST2: CTRL-C |<ctrl-c>A|
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   abcdΣabcdef
TEST2: CTRL-C |<ctrl-c>A|
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchaddpos()12345
NP
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   12345 
NP 
vmap works 
 
Test1: text with a (here some more text) 
Test1: text with a (here some more text) 
 
 
Test2: text wit a (here some more text [und undo]) 
fooc d 
fooc d 
+ 
+ 
bbbb 
bbbb 
cccc 
bbbb 
+ 
-foo- 
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   012345 
NP 
vmap works 
 
Test1: text with a (here some more text) 
Test1: text with a (here some more text) 
 
 
Test2: text wit a (here some more text [und undo]) 
fooc d 
fooc d 
+ 
+ 
bbbb 
bbbb 
cccc 
bbbb 
+ 
-foo- 
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   1234567890
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   1234567890
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchaddpos_using_negative_priority()x
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   x
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchstrpos()

Executing Test_max_min_errors()

Executing Test_messages()

hello0x
-1 match priority
vmap works   hello1234567898

hello9xhello9
Executing Test_missing_attr()

Executing Test_move_cursor()

Executing Test_named_function_closure()

Executing Test_no_type_checking()

Executing Test_noinsert_complete()=s:complTest1()
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       x
-1 match priority
vmap worksTest1: text with a (here some more text)
Test1: text with a (here some more text)Test2: text wit a (here some more text [und undo])fooc d[No Name]                                                                       source         
soundfold      ndfold=s:complTest2()

~              
~              source         
soundfold      Executing Test_non_zero_arg()

Executing Test_not_existing()

Executing Test_not_lamda()

Executing Test_omnifunc_with_check()

search hit BOTTOM, continuing at TOPfour1
~                                                                               ~                                                                               ~                                                                               [+]four1          
four2          2
~              
~              four1          
four2          four1          
four2          
~              
~              four1          
four2          
four3          
four4          
four5          
four6          search hit BOTTOM, continuing at TOP1
~              
~              
~              
~              
~              
~              four1          
four2          2
~              
~              four1          
four2          four1          
four2          3
~              
~              four1          
four2          
four3          
four4          
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          search hit BOTTOM, continuing at TOP1
~              
~              
~              
~              
~              
~              four1          
four2          2
~              
~              four1          
four2          four1          
four2          3
~              
~              four1          
four2          
four3          
four4          four3          
four4          
four5          
four6          4
~              
~              
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          5
~              
~              
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          four4          
four5          Executing Test_oneshot()[?25h[?0c

[?25l[?1cExecuting Test_option_value()

Executing Test_options()
"option-window" [New File]gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/fold.o fold.c


Executing Test_partial_args()

Executing Test_partial_dict()

Executing Test_partial_exists()

Executing Test_partial_implicit()

Executing Test_partial_string()

Executing Test_path_keep_commas()

Executing Test_paused()[?25h[?0c

[?25l[?1cExecuting Test_popup_complete()=ListMonths()

June
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               June           
July           -- INSERT --June           
July           =ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       

February       
March          


March          
April          April          
May            May            
June           June           
July           July           
August         =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
June           
July           =ListMonths()

~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

June~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJune           
July           ~              
~              June           
July           -- INSERT --June           
July=ListMonths()
ne
~              
~              June           
July           ~              
~              June           
July           -- INSERT --June           
Julyly
~              
~              July           
July           =ListMonths()
ne
~              
June           
July           ~              
~              June           
July           -- INSERT --June           
July=ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December        
February
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
February       =ListMonths()

January~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
June           
July           
June~              
~              
~              January        
June           
July           -- INSERT --January        
June           ly
~              
~              
~              January        
June           
July           June           
July           
J~              
~              
~              January        
June           
July           
July           =ListMonths()

January
~              
~              
~              January        
June           
July           
June~              
~              
~              January        
June           
July           -- INSERT --January        
June           ly
~              
~              
~              January        
June           
July           June           
July           
J~              
~              
~              January        
June           
July           
July                 
January
~              
~              
~              January        
June           
July           January        =ListMonths()

~              
~              
~              January        
June           
July           =ListMonths()

June~              
~              
~              June           
July           =ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       

February       December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       December       October        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
December
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       
Nov
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
October~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
October        
November         
September
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        September      
October        =ListMonths()

January~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       November       
December       October        
November       September      
October        =ListMonths()
=ListMonths()
December2015
December~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xDecember       =ListMonths()

March~                                                                               ~              March          
May            y~              
~              March          
May            -- INSERT --March          
May              rch
~              
~              March          
May            March          
May            =ListMonths()
March~              
March          
May            y~              
~              March          
May            -- INSERT --March          
May              rch
~              
~              March          
May            March          
May            =ListMonths()

March
~                                                                               ~              
~              March          
May            =ListMonths()
M~              
March          
May            =ListMonths()
M~              
March          
May            Executing Test_popup_complete2()=ListMonths()
Executing Test_popup_completion_insertmode()=ListMonths()
~                                                                               ~                                                                               ~              
~                 January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
February
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
February       
March~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        February       
March          
April
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        March          
April          
May~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        April          
May             
June
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        May            
June           ly
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        June           
July             
August
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        July           
August            
September
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        August         
September      
October~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        September      
October         
November
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
October        
November       
Dec
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
December
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       Executing Test_pow()

Executing Test_printf_64bit()

Executing Test_printf_errors()

0
0
1
0
0
Executing Test_printf_float()

0.000000

Executing Test_printf_misc()

Executing Test_printf_spec_b()

Executing Test_printf_spec_s()

Executing Test_ptag_with_notagstack()

Executing Test_read_only()

Executing Test_recursive_delete()
"Xdir1/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written

Executing Test_redefine_dict_func()

Executing Test_ref_job_partial_dict()

Executing Test_reltime()[?25h[?0c

[?25l[?1cExecuting Test_repeat_many()[?25h[?0clink.sh: Linked fine
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk3'
[ yes != "yes" ] || flock debian /usr/bin/make -j1 -C src/vim-gtk3 test


[?25l[?1cExecuting Test_repeat_three()[?25h[?0c

[?25l[?1cExecuting Test_retain_partial()[?25h[?0c

[?25l[?1cExecuting Test_round()

Executing Test_script_function_in_dict()

Executing Test_script_function_in_dict_arg()

Executing Test_searchpos()
"one" [New File]
Executing Test_set_add()

Executing Test_set_backslash()

Executing Test_set_reg_null_list()

Executing Test_set_tagcase()

Executing Test_setmatches()

Executing Test_signcolumn()

Executing Test_sin()

Executing Test_sinh()

Executing Test_sort_default()

Executing Test_sort_float()

Executing Test_sort_nested()

Executing Test_sort_numbers()

Executing Test_sort_numeric()

Executing Test_sort_strings()

Executing Test_special_char()

Executing Test_sqrt()

Executing Test_static_tagjump()
"Xfile1" [New File][New] 3L, 18C written

Executing Test_statusline_will_be_disabled_with_error()x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                                                                                                               Executing Test_stop_all_in_callback()[?25h[?0c

[?25l[?1cExecuting Test_stop_in_callback()[?25h[?0c

[?25l[?1cExecuting Test_stopall()

Executing Test_str2float()

Executing Test_str2nr()

Executing Test_strcharpart()

Executing Test_strgetchar()

Executing Test_substitute_expr()

Executing Test_substitute_expr_arg()

Executing Test_symlink_delete()
"Xfile" [New File][New] 2L, 4C written[?25h[?0c
[?25l[?1cExecuting Test_symlink_dir_delete()[?25h[?0c
[?25l[?1cExecuting Test_symlink_recursive_delete()
"Xdir3/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written
"Xdir4/Xfile" [New] 2L, 4C written[?25h[?0c
[?25l[?1cExecuting Test_syntax_valid()

Executing Test_tabline_will_be_disabled_with_error()                                                                                x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               [No Name]                                                                       Executing Test_tabnext_on_buf_unload1()

Executing Test_tabnext_on_buf_unload2()

"x" [Not edited] --No lines in buffer--
"y" [New File]
Executing Test_tabpage()
"Xtestfile" [New File]
2 fewer lines; before #1  0 seconds ago

Executing Test_tabpage_with_autocmd()

Executing Test_tabpage_with_tab_modifier()
"help.txt" [readonly] line 1 of 225 --0%-- col 1

"ex-undo" [New File]

Executing Test_tagcase()
"Xtext" [New File]
Executing Test_tan()

Executing Test_tanh()

Executing Test_thesaurus()

Executing Test_three_windows()
"Xtestje1" [New File][New] 1L, 8C written2" [New File][New] 1L, 8C written3" [New File][New] 1L, 8C written11L, 8C

"Xtestje3" 1L, 8C21L, 8C11L, 8C

"Xanother" [New File]
"Xtestje11L, 8C
"Xanother" [New File]

Already only one window
"help.txt" [readonly] 225L, 8437C

Executing Test_tostring()

Executing Test_true_false_arg()[?25h[?0c
[?25l[?1c"colored" [New File]

Executing Test_trunc()

Executing Test_valid()

Executing Test_version()

Executing Test_vim_did_enter()

Executing Test_whichwrap()

Executing Test_win_tab_autocmd()

"somefile" [New File]

Executing Test_window_cmd_cmdwin_with_vsp()

Executing Test_window_cmd_ls0_with_split()

Executing Test_window_cmd_wincmd_gf()
"test_gf.txt" 0L, 0C
W19: Deleting augroup that is still in use
Executing Test_with_directories()"Xdir1/file" [New File]
"Xdir1/file" [New] 2L, 4C written

"Xdir3/Xdir4/file" [New] 2L, 4C written2L, 4C
"Xdir?/*/nofile" [New DIRECTORY]
"foo" [New File]Executing Test_with_partial_callback()[?25h[?0c[?25l[?1ctilde()rong_arguments()
"test_alot.res" [New File]
"test_alot.res" [New] 0L, 0C written
Executed 244 tests"messages" 574L, 15147C

"messages" 821L, 23151C written
[?25h[?0c


From test_arglist.vim:
Executing Test_argadd()
Executing Test_argc()
Executing Test_argdelete()
Executing Test_argedit()
Executing Test_argidx()
Executing Test_arglist_autocmd()
Executing Test_arglistid()
Executing Test_argpos()
Executing Test_argument()
Executing Test_argv()
Executing Test_zero_argadd()
Executed 11 tests

From test_assert.vim:
Executing Test_assert_equal()
Executing Test_assert_exception()
Executing Test_assert_fail_fails()
Executing Test_assert_false()
Executing Test_assert_inrange()
Executing Test_assert_notequal()
Executing Test_assert_true()
Executing Test_compare_fail()
Executing Test_match()
Executing Test_notmatch()
Executing Test_user_is_happy()
Executing Test_wrong_error_type()
Executed 12 tests

From test_autochdir.vim:
Executing Test_set_filename()
Executed 1 test

From test_backspace_opt.vim:
Executing Test_backspace_option()
Executed 1 test

From test_breakindent.vim:
Executing Test_breakindent01()
Executing Test_breakindent02()
Executing Test_breakindent03()
Executing Test_breakindent04()
Executing Test_breakindent05()
Executing Test_breakindent06()
Executing Test_breakindent07()
Executing Test_breakindent07a()
Executing Test_breakindent08()
Executing Test_breakindent08a()
Executing Test_breakindent09()
Executing Test_breakindent10()
Executing Test_breakindent11()
Executing Test_breakindent12()
Executing Test_breakindent13()
Executing Test_breakindent14()
Executing Test_breakindent15()
Executing Test_breakindent16()
Executed 18 tests

From test_bufwintabinfo.vim:
Executing Test_get_buf_options()
Executing Test_get_win_options()
Executing Test_getbufwintabinfo()
Executed 3 tests

From test_cdo.vim:
Executing Test_cdo()
Executing Test_ldo()
Executed 2 tests

From test_channel.vim:
Executed 0 test

From test_charsearch.vim:
Executing Test_charsearch()
Executing Test_search_cmds()
Executed 2 tests

From test_cmdline.vim:
Executing Test_complete_list()
Executing Test_complete_tab()
Executing Test_complete_wildmenu()
Executing Test_expand_star_star()
Executing Test_getcompletion()
Executing Test_illegal_address()
Executing Test_paste_in_cmdline()
Executing Test_remove_char_in_cmdline()
Executed 8 tests

From test_command_count.vim:
Executing Test_command_count_0()
Executing Test_command_count_1()
Executing Test_command_count_2()
Executing Test_command_count_3()
Executing Test_command_count_4()
Executed 5 tests

From test_crypt.vim:
Executing Test_crypt_blowfish()
Executing Test_crypt_blowfish2()
Executing Test_crypt_zip()
Executing Test_head_only_2()
Executing Test_head_only_3()
Executing Test_uncrypt_blowfish()
Executing Test_uncrypt_blowfish2()
Executing Test_uncrypt_zip()
Executed 8 tests

From test_cscope.vim:
Executed 0 test

From test_diffmode.vim:
Executing Test_diff_fold_sync()
Executing Test_diffget_diffput()
Executing Test_diffoff()
Executing Test_filler_lines()
Executing Test_setting_cursor()
Executing Test_vert_split()
Executed 6 tests

From test_digraph.vim:
Executing Test_digraph_cmndline()
Executing Test_digraphs()
Executing Test_digraphs_option()
Executing Test_digraphs_output()
Executing Test_loadkeymap()
Executed 5 tests

From test_display.vim:
Executing Test_display_foldcolumn()
Executed 1 test

From test_farsi.vim:
Executing Test_farsi_map()
Executing Test_farsi_toggle()
Executed 2 tests

From test_fnameescape.vim:
Executing Test_fnameescape()
Executed 1 test

From test_fold.vim:
Executing Test_address_fold()
Executing Test_indent_fold()
Executing Test_indent_fold2()
Executed 3 tests

From test_gf.vim:
Executing Test_gf_url()
Executed 1 test

From test_gn.vim:
Executing Test_gn_command()
Executed 1 test

From test_gui.vim:
Executed 0 test

From test_hardcopy.vim:
Executing Test_printheader_parsing()
Executing Test_printmbfont_parsing()
Executing Test_printoptions_parsing()
Executing Test_with_syntax()
Executed 4 tests

From test_hide.vim:
Executing Test_hide()
Executed 1 test

From test_history.vim:
Executing Test_History()
Executing Test_Search_history_window()
Executed 2 tests

From test_hlsearch.vim:
Executing Test_hlsearch()
Executed 1 test

From test_increment.vim:
Executing Test_normal_increment_01()
Executing Test_normal_increment_02()
Executing Test_normal_increment_03()
Executing Test_visual_increment_01()
Executing Test_visual_increment_02()
Executing Test_visual_increment_03()
Executing Test_visual_increment_04()
Executing Test_visual_increment_05()
Executing Test_visual_increment_06()
Executing Test_visual_increment_07()
Executing Test_visual_increment_08()
Executing Test_visual_increment_09()
Executing Test_visual_increment_10()
Executing Test_visual_increment_11()
Executing Test_visual_increment_12()
Executing Test_visual_increment_13()
Executing Test_visual_increment_14()
Executing Test_visual_increment_15()
Executing Test_visual_increment_16()
Executing Test_visual_increment_17()
Executing Test_visual_increment_18()
Executing Test_visual_increment_19()
Executing Test_visual_increment_20()
Executing Test_visual_increment_21()
Executing Test_visual_increment_22()
Executing Test_visual_increment_23()
Executing Test_visual_increment_24()
Executing Test_visual_increment_25()
Executing Test_visual_increment_26()
Executing Test_visual_increment_27()
Executing Test_visual_increment_28()
Executing Test_visual_increment_29()
Executing Test_visual_increment_30()
Executing Test_visual_increment_31()
Executing Test_visual_increment_32()
Executing Test_visual_increment_33()
Executing Test_visual_increment_34()
Executing Test_visual_increment_35()
Executing Test_visual_increment_36()
Executing Test_visual_increment_37()
Executing Test_visual_increment_38()
Executed 41 tests

From test_increment_dbcs.vim:
Executing Test_increment_dbcs_1()
Executed 1 test

From test_job_fails.vim:
Executing Test_job_start_fails()
Executed 1 test

From test_json.vim:
Executing Test_js_decode()
Executing Test_js_encode()
Executing Test_json_decode()
Executing Test_json_encode()
Executed 4 tests

From test_langmap.vim:
Executing Test_langmap()
Executed 1 test

From test_man.vim:
Executing Test_g_ft_man_open_mode()
Executing Test_nomodifiable()
Executed 2 tests

From test_marks.vim:
Executing Test_Incr_Marks()
Executing Test_Restore_DelMark()
Executed 2 tests

From test_matchadd_conceal.vim:
Executing Test_clearmatches()
Executing Test_default_conceal_char()
Executing Test_matchadd_and_conceallevel_3()
Executing Test_matchadd_and_syn_conceal()
Executing Test_matchadd_repeat_conceal_with_syntax_off()
Executing Test_simple_matchadd()
Executing Test_simple_matchadd_and_conceal()
Executing Test_syn_and_match_conceal()
Executing Test_using_matchaddpos()
Executed 9 tests

From test_mksession.vim:
Executing Test_mksession()
Executed 1 test

From test_mksession_utf8.vim:
Executing Test_mksession_utf8()
Executed 1 test

From test_nested_function.vim:
Executing Test_max_nesting()
Executing Test_nested_argument()
Executing Test_nested_functions()
Executed 3 tests

From test_netbeans.vim:
Executed 0 test

From test_normal.vim:
Executing Test_normal00_optrans()
Executing Test_normal01_keymodel()
Executing Test_normal02_selectmode()
Executing Test_normal02_selectmode2()
Executing Test_normal03_join()
Executing Test_normal04_filter()
Executing Test_normal05_formatexpr()
Executing Test_normal05_formatexpr_newbuf()
Executing Test_normal05_formatexpr_setopt()
Executing Test_normal06_formatprg()
Executing Test_normal07_internalfmt()
Executing Test_normal08_fold()
Executing Test_normal09_operatorfunc()
Executing Test_normal09a_operatorfunc()
Executing Test_normal10_expand()
Executing Test_normal11_showcmd()
Executing Test_normal12_nv_error()
Executing Test_normal13_help()
Executing Test_normal14_page()
Executing Test_normal14_page_eol()
Executing Test_normal15_z_scroll_vert()
Executing Test_normal16_z_scroll_hor()
Executing Test_normal17_z_scroll_hor2()
Executing Test_normal18_z_fold()
Executing Test_normal19_z_spell()
Executing Test_normal20_exmode()
Executing Test_normal21_nv_hat()
Executing Test_normal22_zet()
Executing Test_normal23_K()
Executing Test_normal24_rot13()
Executing Test_normal25_tag()
Executing Test_normal26_put()
Executing Test_normal27_bracket()
Executing Test_normal28_parenthesis()
Executing Test_normal29_brace()
Executing Test_normal30_changecase()
Executing Test_normal31_r_cmd()
Executing Test_normal32_g_cmd1()
Executing Test_normal33_g_cmd2()
Executing Test_normal34_g_cmd3()
Executing Test_normal35_g_cmd4()
    Skipped
Executing Test_normal36_g_cmd5()
Executing Test_normal37_g_cmd6()
Executing Test_normal38_nvhome()
Executing Test_normal39_cw()
Executing Test_normal40_ctrl_bsl()
Executing Test_normal41_insert_reg()
Executing Test_normal42_halfpage()
Executing Test_normal43_textobject1()
Executing Test_normal44_textobjects2()
Executing Test_normal45_drop()
Executing Test_normal46_ignore()
Executing Test_normal47_autocmd()
    Skipped
Executing Test_normal47_visual_buf_wipe()
Executing Test_normal48_wincmd()
Executing Test_normal49_counts()
Executing Test_normal50_commandline()
Executing Test_normal51_FileChangedRO()
Executing Test_normal52_rl()
Executing Test_normal53_digraph()
Executing Test_normal54_Ctrl_bsl()
Executed 61 tests
SKIPPED Test_normal35_g_cmd4(): output of g< can't be tested currently
SKIPPED Test_normal47_autocmd(): not possible to test cursorhold autocmd while waiting for input in normal_cmd

From test_packadd.vim:
Executing Test_colorscheme()
Executing Test_colorscheme_completion()
Executing Test_helptags()
Executing Test_packadd()
Executing Test_packadd_completion()
Executing Test_packadd_noload()
Executing Test_packloadall()
Executing Test_runtime()
Executed 8 tests

From test_perl.vim:
Executed 0 test

From test_profile.vim:
Executing Test_profile_completion()
Executing Test_profile_errors()
Executing Test_profile_file()
Executing Test_profile_func()
Executed 4 tests

From test_quickfix.vim:
Executing Test_Autocmd()
Executing Test_Autocmd_Exception()
Executing Test_adjust_lnum()
Executing Test_browse()
Executing Test_caddbuffer_to_empty()
Executing Test_caddbuffer_wrong()
Executing Test_caddexpr_wrong()
Executing Test_cage()
Executing Test_cbottom()
Executing Test_cbuffer()
Executing Test_cexpr()
Executing Test_cfile()
Executing Test_cgetexpr_works()
Executing Test_clist()
Executing Test_cwindow()
Executing Test_dirstack_cleanup()
Executing Test_duplicate_buf()
Executing Test_efm()
Executing Test_efm1()
Executing Test_efm2()
Executing Test_efm_dirstack()
Executing Test_efm_ignore_continuations()
Executing Test_errortitle()
Executing Test_grep()
Executing Test_helpgrep()
Executing Test_history()
Executing Test_invalid_efm()
Executing Test_locationlist()
Executing Test_locationlist_cross_tab_jump()
Executing Test_locationlist_curwin_was_closed()
Executing Test_long_lines()
Executing Test_nomem()
Executing Test_qf_property()
Executing Test_qf_title()
Executing Test_quickfix_set_list_with_act()
Executing Test_quickfix_was_changed_by_autocmd()
Executing Test_setqflist()
Executing Test_setqflist_empty_middle()
Executing Test_setqflist_empty_older()
Executing Test_switchbuf()
Executing Test_two_windows()
Executing Test_vimgreptitle()
Executed 42 tests

From test_ruby.vim:
Executed 0 test

From test_search.vim:
Executing Test_search_cmdline()
Executing Test_search_cmdline2()
Executing Test_searchpair()
Executing Test_use_sub_pat()
Executed 4 tests

From test_signs.vim:
Executing Test_sign()
Executing Test_sign_completion()
Executing Test_sign_delete_buffer()
Executing Test_sign_invalid_commands()
Executing Test_sign_undefine_still_placed()
Executed 5 tests

From test_smartindent.vim:
Executing Test_nosmartindent()
Executed 1 test

From test_startup.vim:
Executing Test_after_comes_later()
Executing Test_compatible_args()
Executing Test_file_args()
Executing Test_help_arg()
Executing Test_read_stdin()
Executing Test_startup_script()
Executing Test_startuptime()
Executed 7 tests

From test_startup_utf8.vim:
Executing Test_read_fifo_utf8()
Executing Test_read_stdin_utf8()
Executed 2 tests

From test_stat.vim:
Executing Test_checktime()
Executing Test_existent_directory()
Executing Test_existent_file()
Executing Test_nonexistent_file()
Executing Test_win32_symlink_dir()
Executed 5 tests

From test_substitute.vim:
Executing Test_multiline_subst()
Executed 1 test

From test_syntax.vim:
Executing Test_syn_iskeyword()
Executing Test_syntax_after_reload()
Executing Test_syntax_completion()
Executing Test_syntax_list()
Executing Test_syntime()
Executed 5 tests

From test_system.vim:
Executing Test_System()
Executing Test_system_exmode()
Executed 2 tests

From test_textobjects.vim:
Executing Test_inner_block_with_cpo_M_left_backslash()
Executing Test_inner_block_with_cpo_M_right_backslash()
Executing Test_inner_block_without_cpo_M()
Executed 3 tests

From test_undo.vim:
Executing Test_U_command()
Executing Test_global_local_undolevels()
Executing Test_insert_expr()
Executing Test_undo_del_chars()
Executing Test_undo_write()
Executing Test_undofile_earlier()
Executing Test_undojoin()
Executing Test_undolist()
Executing Test_undotree()
Executed 9 tests

From test_usercommands.vim:
Executing Test_Ambiguous()
Executing Test_CmdUndefined()
Executing Test_cmdmods()
Executed 3 tests

From test_viminfo.vim:
Executing Test_cmdline_history()
Executing Test_cmdline_history_order()
Executing Test_global_vars()
Executing Test_viminfo_bad_syntax()
Executing Test_viminfo_encoding()
Executing Test_viminfo_file_mark_tabclose()
Executing Test_viminfo_file_mark_zero_time()
Executing Test_viminfo_file_marks()
Executing Test_viminfo_jumplist()
Executing Test_viminfo_marks()
Executing Test_viminfo_oldfiles()
Executing Test_viminfo_read_and_write()
Executing Test_viminfo_registers()
Executed 13 tests

From test_viml.vim:
Executing Test_arg_abort()
Executing Test_braces_skipped()
Executing Test_curlies()
Executing Test_defining_functions()
Executing Test_echo_and_string()
Executing Test_endwhile_function()
Executing Test_endwhile_script()
Executing Test_error_in_function()
Executing Test_error_in_script()
Executing Test_expr_parsing()
Executing Test_finish()
Executing Test_func_abort()
Executing Test_if_bar_fail()
Executing Test_if_fail()
Executing Test_if_while()
Executing Test_num64()
Executing Test_return()
Executing Test_script_lines()
Executing Test_skip()
Executing Test_type()
Executing Test_while_fail()
Executed 21 tests

From test_visual.vim:
Executing Test_block_shift_multibyte()
Executing Test_dotregister_paste()
Executed 2 tests

From test_window_id.vim:
Executing Test_win_getid()
Executing Test_win_getid_curtab()
Executed 2 tests

From test_writefile.vim:
Executing Test_WriteFile()
Executed 1 test

From test_alot_latin.vim:
Executing Test_eow_with_optional()
Executing Test_equivalence_re1()
Executing Test_equivalence_re2()
Executing Test_nested_backrefs()
Executing Test_recursive_substitute()
Executed 5 tests

From test_alot_utf8.vim:
Executing Test_classes_re1()
Executing Test_classes_re2()
Executing Test_equivalence_re1()
Executing Test_equivalence_re2()
Executing Test_match_using_multibyte_conceal_char()
Executing Test_source_latin()
Executing Test_source_utf8()
Executing Test_strcharpart()
Executing Test_strgetchar()
Executed 9 tests

From test_alot.vim:
Executing Test_BufEnter()
Executing Test_abbreviation()
Executing Test_abs()
Executing Test_acos()
Executing Test_asin()
Executing Test_atan()
Executing Test_atan2()
Executing Test_augroup_deleted()
Executing Test_augroup_warning()
Executing Test_auto_partial_rebind()
Executing Test_autocmd_bufunload_avoiding_SEGV_01()
Executing Test_autocmd_bufunload_avoiding_SEGV_02()
Executing Test_autocmd_bufunload_with_tabnext()
Executing Test_autocmd_bufwinleave_with_tabfirst()
Executing Test_bind_in_python()
Executing Test_break_undo()
Executing Test_bufunload()
Executing Test_cancel_ptjump()
Executing Test_caught_error_in_statusline()
Executing Test_caught_error_in_tabline()
Executing Test_ceil()
Executing Test_closure_counter()
Executing Test_closure_refcount()
Executing Test_closure_unlet()
Executing Test_color_names()
Executing Test_compare_null_dict()
Executing Test_compare_partials()
Executing Test_compl_vim_cmds_after_register_expr()
Executing Test_complete_no_undo()
Executing Test_completefunc_opens_new_window_one()
Executing Test_completefunc_opens_new_window_two()
Executing Test_completefunc_with_scratch_buffer()
Executing Test_completefunc_works()
Executing Test_completion_ctrl_e_without_autowrap()
Executing Test_cos()
Executing Test_cosh()
Executing Test_cursorhold_insert()
Executing Test_cursorhold_insert_ctrl_x()
Executing Test_cursorline_keep_col()
Executing Test_curswant_with_autocommand()
Executing Test_cycle_partial_job()
Executing Test_cyclic_dict_arg()
Executing Test_cyclic_list_arg()
Executing Test_delete_myself()
Executing Test_dict()
Executing Test_dictionary()
Executing Test_dir_delete()
Executing Test_early_bar()
Executing Test_empty_buffer()
Executing Test_equal()
Executing Test_ex_undo()
Executing Test_execute_list()
Executing Test_execute_string()
Executing Test_existing()
Executing Test_exp()
Executing Test_expand()
Executing Test_feedkeys_x_with_empty_string()
Executing Test_file_delete()
Executing Test_file_perm()
Executing Test_fileformat_after_bw()
Executing Test_filetype_valid()
Executing Test_filter()
Executing Test_filter_cmd_completion()
Executing Test_filter_fails()
Executing Test_filter_map_dict_expr_funcref()
Executing Test_filter_map_dict_expr_string()
Executing Test_filter_map_list_expr_funcref()
Executing Test_filter_map_list_expr_string()
Executing Test_floor()
Executing Test_fmod()
Executing Test_fnamemodify()
Executing Test_func_unref()
Executing Test_funcref()
Executing Test_function_in_dict()
Executing Test_function_with_funcref()
Executing Test_gD()
Executing Test_gD_char()
Executing Test_gD_comment()
Executing Test_gD_inline_comment()
Executing Test_gD_string()
Executing Test_gD_string_same_line()
Executing Test_gD_too()
Executing Test_gd()
Executing Test_gd_comment()
Executing Test_gd_comment_in_string()
Executing Test_gd_inline_comment()
Executing Test_gd_inline_comment_body()
Executing Test_gd_inline_comment_only()
Executing Test_gd_kr_style()
Executing Test_gd_missing_braces()
Executing Test_gd_not_local()
Executing Test_gd_string()
Executing Test_gd_string_in_comment()
Executing Test_gd_string_only()
Executing Test_gd_trailing_comment()
Executing Test_gd_trailing_multiline_comment()
Executing Test_get_partial_items()
Executing Test_getreg_empty_list()
Executing Test_global_local_lispwords()
Executing Test_help_complete()
Executing Test_help_respect_current_file_lang()
Executing Test_help_tagjump()
Executing Test_if()
Executing Test_info()
Executing Test_invalid()
Executing Test_invalid_submatch()
Executing Test_isnan()
Executing Test_join_with_count()
Executing Test_keymap_valid()
Executing Test_keyword_jump()
Executing Test_lambda_call_lambda_from_lambda()
Executing Test_lambda_capture_by_reference()
Executing Test_lambda_circular_reference()
Executing Test_lambda_closure_counter()
Executing Test_lambda_combination()
Executing Test_lambda_delfunc()
Executing Test_lambda_do_not_share_local_variable()
Executing Test_lambda_fails()
Executing Test_lambda_feature()
Executing Test_lambda_refer_local_variable_from_other_scope()
Executing Test_lambda_scope()
Executing Test_lambda_share_scope()
Executing Test_lambda_side_effect()
Executing Test_lambda_with_a_var()
Executing Test_lambda_with_filter()
Executing Test_lambda_with_map()
Executing Test_lambda_with_partial()
Executing Test_lambda_with_sort()
Executing Test_lambda_with_timer()
Executing Test_load_menu()
Executing Test_log()
Executing Test_log10()
Executing Test_loop_over_null_list()
Executing Test_map_ctrl_c_insert()
Executing Test_map_ctrl_c_visual()
Executing Test_map_cursor()
Executing Test_map_feedkeys()
Executing Test_map_langmap()
Executing Test_map_meta_quotes()
Executing Test_match()
Executing Test_matchaddpos()
Executing Test_matchaddpos_using_negative_priority()
Executing Test_matchstrpos()
Executing Test_max_min_errors()
Executing Test_messages()
Executing Test_missing_attr()
Executing Test_move_cursor()
Executing Test_named_function_closure()
Executing Test_no_type_checking()
Executing Test_noinsert_complete()
Executing Test_non_zero_arg()
Executing Test_not_existing()
Executing Test_not_lamda()
Executing Test_omnifunc_with_check()
Executing Test_oneshot()
Executing Test_option_value()
Executing Test_options()
Executing Test_partial_args()
Executing Test_partial_dict()
Executing Test_partial_exists()
Executing Test_partial_implicit()
Executing Test_partial_string()
Executing Test_path_keep_commas()
Executing Test_paused()
Executing Test_popup_complete()
Executing Test_popup_complete2()
Executing Test_popup_completion_insertmode()
Executing Test_pow()
Executing Test_printf_64bit()
Executing Test_printf_errors()
Executing Test_printf_float()
Executing Test_printf_misc()
Executing Test_printf_spec_b()
Executing Test_printf_spec_s()
Executing Test_ptag_with_notagstack()
Executing Test_read_only()
Executing Test_recursive_delete()
Executing Test_redefine_dict_func()
Executing Test_ref_job_partial_dict()
Executing Test_reltime()
Executing Test_repeat_many()
Executing Test_repeat_three()
Executing Test_retain_partial()
Executing Test_round()
Executing Test_script_function_in_dict()
Executing Test_script_function_in_dict_arg()
Executing Test_searchpos()
Executing Test_set_add()
Executing Test_set_backslash()
Executing Test_set_reg_null_list()
Executing Test_set_tagcase()
Executing Test_setmatches()
Executing Test_signcolumn()
Executing Test_sin()
Executing Test_sinh()
Executing Test_sort_default()
Executing Test_sort_float()
Executing Test_sort_nested()
Executing Test_sort_numbers()
Executing Test_sort_numeric()
Executing Test_sort_strings()
Executing Test_special_char()
Executing Test_sqrt()
Executing Test_static_tagjump()
Executing Test_statusline_will_be_disabled_with_error()
Executing Test_stop_all_in_callback()
Executing Test_stop_in_callback()
Executing Test_stopall()
Executing Test_str2float()
Executing Test_str2nr()
Executing Test_strcharpart()
Executing Test_strgetchar()
Executing Test_substitute_expr()
Executing Test_substitute_expr_arg()
Executing Test_symlink_delete()
Executing Test_symlink_dir_delete()
Executing Test_symlink_recursive_delete()
Executing Test_syntax_valid()
Executing Test_tabline_will_be_disabled_with_error()
Executing Test_tabnext_on_buf_unload1()
Executing Test_tabnext_on_buf_unload2()
Executing Test_tabpage()
Executing Test_tabpage_with_autocmd()
Executing Test_tabpage_with_tab_modifier()
Executing Test_tagcase()
Executing Test_tan()
Executing Test_tanh()
Executing Test_thesaurus()
Executing Test_three_windows()
Executing Test_tostring()
Executing Test_true_false_arg()
Executing Test_trunc()
Executing Test_valid()
Executing Test_version()
Executing Test_vim_did_enter()
Executing Test_whichwrap()
Executing Test_win_tab_autocmd()
Executing Test_window_cmd_cmdwin_with_vsp()
Executing Test_window_cmd_ls0_with_split()
Executing Test_window_cmd_wincmd_gf()
Executing Test_with_directories()
Executing Test_with_partial_callback()
Executing Test_with_tilde()
Executing Test_wrong_arguments()
Executed 244 tests

Test results:
ALL DONE
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-basic/testdir'
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/json_test.o json_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/getchar.o getchar.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o json_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o           objects/netbeans.o objects/channel.o  objects/memfile.o objects/message.o objects/json_test.o        -lm -ltinfo -lnsl  -lselinux -lacl -lattr -lgpm -ldl           
link.sh: Linked fine
./json_test || exit 1; echo  passed;
passed
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memfile_test.o memfile_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o memfile_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o           objects/netbeans.o objects/channel.o  objects/json.o objects/message.o objects/memfile_test.o        -lm -ltinfo -lnsl  -lselinux -lacl -lattr -lgpm -ldl           
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/hardcopy.o hardcopy.c
link.sh: Linked fine
./memfile_test || exit 1; echo  passed;
passed
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/message_test.o message_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/hashtab.o hashtab.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/if_cscope.o if_cscope.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o message_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o           objects/netbeans.o objects/channel.o  objects/json.o objects/memfile.o objects/message_test.o        -lm -ltinfo -lnsl  -lselinux -lacl -lattr -lgpm -ldl           
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/if_xcmdsrv.o if_xcmdsrv.c
link.sh: Linked fine
./message_test || exit 1; echo  passed;
passed
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-basic'
touch build-stamp-vim-basic
make[1]: warning: -jN forced in submake: disabling jobserver mode.
dh_testdir
make[1]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk3'
/usr/bin/make -f Makefile vim
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk3'
make[2]: 'vim' is up to date.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk3'
if test -n "yes" -a -f po/Makefile; then \
	cd po; /usr/bin/make -f Makefile check VIM=../vim; \
fi
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk3/po'
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq af.po
dh_prep -p vim-nox
*** DEBIAN *** BUILDING VARIANT vim-nox
/usr/bin/make -C src/vim-nox
make[1]: Entering directory '/<<PKGBUILDDIR>>/src/vim-nox'
mkdir -p objects
touch objects/.dirstamp
CC="gcc -Iproto -DHAVE_CONFIG_H   -Wdate-time    " srcdir=. sh ./osdef.sh
creating auto/pathdef.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/popupmnu.o popupmnu.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/list.o list.c
touch af.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ca.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/quickfix.o quickfix.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/mark.o mark.c
touch ca.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.po
touch cs.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq de.po
touch de.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq en_GB.po
touch en_GB.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq eo.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memline.o memline.c
touch eo.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq es.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/regexp.o regexp.c
touch es.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fi.po
touch fi.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fr.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/menu.o menu.c
touch fr.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ga.po
touch ga.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq it.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/misc1.o misc1.c
touch it.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.po
touch ja.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.po
touch ko.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.UTF-8.po
touch ko.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nb.po
touch nb.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nl.po
touch nl.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq no.po
touch no.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.po
touch pl.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pt_BR.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/misc2.o misc2.c
touch pt_BR.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.po
touch ru.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.po
touch sk.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sv.po
touch sv.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/move.o move.c
touch uk.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq vi.po
touch vi.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.UTF-8.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/mbyte.o mbyte.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/screen.o screen.c
touch zh_CN.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.po
touch zh_CN.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.UTF-8.po
touch zh_TW.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/normal.o normal.c
touch zh_TW.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.cp1250.po
touch cs.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.sjis.po
touch ja.sjis.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.euc-jp.po
touch ja.euc-jp.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.cp1250.po
touch pl.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.UTF-8.po
touch pl.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.cp1251.po
touch ru.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.cp1250.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ops.o ops.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/search.o search.c
touch sk.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.cp1251.po
touch uk.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.cp936.po
touch zh_CN.cp936.ck
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk3/po'
if test vim != vim -a ! -r vim; then \
	ln -s vim vim; \
fi
cd testdir; /usr/bin/make -f Makefile gui VIMPROG=../vim  SCRIPTSOURCE=../../runtime
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk3/testdir'
rm -f test.log messages
rm -rf test1.failed test.out X* viminfo tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok benchmark.out wrongtermsize
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test1.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 1133 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/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
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" If columns or lines are too small, create wrongtermsize.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" (Some tests will fail. When columns and/or lines are small)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Write a single line to test.out to check if testing works at all.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cthis is a test[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 15 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! small.vim
[?25l[?1c"small.vim" [New File] 1 line, 1 character written[?25h[?0c[?25l[?1c:[?25h[?0cw! tiny.vim
[?25l[?1c"tiny.vim" [New File] 1 line, 1 character written[?25h[?0c[?25l[?1ce! test.ok
w! test.outqa![?25h[?0c[?25l[?1c:[?25h[?0cw! mbyte.vim
[?25l[?1c"mbyte.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cw! mzscheme.vim
[?25l[?1c"mzscheme.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cw! lua.vim
[?25l[?1c"lua.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +multi_byte feature supported, make mbyte.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("multi_byte") | sp another | w! mbyte.vim | q | endif
[?25l[?1c"another" [New File]
"mbyte.vim" 0 lines, 0 characters writtene! test.ok[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +mzscheme feature supported, make mzscheme.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("mzscheme") | sp another | w! mzscheme.vim | q | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +lua feature supported, make lua.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("lua") | sp another | w! lua.vim | q | endif
[?25l[?1c"another" [New File]
"lua.vim" 0 lines, 0 characters writtene! test.ok[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Otherwise write small.vim to skip the test.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif 1 | q! | endif
[?25l[?1c[?25h[?0crm -rf X* 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test3.in
[?25h[?8c[?25h[?0c[?25l[?1c"test3.in" 2342 lines, 23089 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c/* vim: set cin ts=4 sw=4 : */[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 125 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo modeline
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit                " read modeline
[?25l[?1c"test3.in"2342L, 23089Cif (test)cmd1;cmd2;if (test)cmd1;else[?25h[?0c[?25l[?1c/[?25h[?0cstart of AUTO
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cend of AUTO
[?25l[?1c956 lines to indent...
9500
850
750
650
550
450
350
250
150
50 lines to indent... 
957 lines indented [?25h[?0c[?25l[?1c/^STARTTEST
}break;default:baz();baz();break;
    }
}

/* 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
 */[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 93C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset tw=0 wm=60 columns=80 noai fo=croq
[?25l[?1c}break;default:baz();baz();break;
    }
}

/* 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
 */[?25h[?0c[?25l[?1c/[?25h[?0cserious/e
[?25l[?1c[?25h[?0c[?25l[?1c


-- INSERT --
about life, the
 * universe, and the
 * rest important big[?25h[?0c[?25l[?1c
* comment[?25h[?0c[?25l[?1c
/^STARTTEST
*/
    /* insert " about life, the universe, and the rest" after "serious" */
}

STARTTEST[?25h[?0c[?25l[?1c
:set nocin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6L, 78C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/comments
joabout life^[/happens
jothere^[/below
oline^[/this
Ohello^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nocin
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ccomments
[?25l[?1c{
    /** Testing for comments, without 'cin' set[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
-- INSERT --
about life[?25h[?0c[?25l[?1c
/[?25h[?0chappens
[?25l[?1c/*
* what happens here?[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
-- INSERT --
there[?25h[?0c[?25l[?1c
/[?25h[?0cbelow
[?25l[?1c/*the end of the comment, try inserting a line below */[?25h[?0c[?25l[?1c
-- INSERT --
line[?25h[?0c[?25l[?1c
/[?25h[?0cthis
[?25l[?1c/* how aboutthis one */[?25h[?0c[?25l[?1c
-- INSERT --hello[?25h[?0c[?25l[?1c
this one */[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 18C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/vec2
==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cvec2
[?25l[?1c{
    var = this + that + vec[0] * vec[0]+ vec[1] * vec[1]+ vec2[2] * vec[2];[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5L, 51C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=}4
/testing1
k2==/testing2
k2==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=}4
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ctesting1
[?25l[?1c{asdf asdflkajds f;
    if (tes & ting) {asdf asdf asdf ;asdfa sdf asdf;}
    testing1;[?25h[?0c [?25l[?1c

/[?25h[?0ctesting2
[?25l[?1cif (tes & ting)
    {asdf asdf asdf ;asdfa sdf asdf;}
    testing2;[?25h[?0c [?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4L, 36C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=(0,)20
/main
=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,)20
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cmain
[?25l[?1cmain ( int first_par, /*[?25h[?0c[?25l[?1c
19 lines to indent...
20indented [?25h[?0c[?25l[?1c
* Comment for[?25h[?0c[?25l[?1c
/^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();[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4L, 36C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=es,n0s
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cmain
[?25l[?1c[?25h[?0c[?25l[?1c8 lines to indent...
9indented [?25h[?0c
[?25l[?1c/^STARTTEST
else
    {bar();
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c{[?25h[?0c[?25l[?1c
11 lines to indent...
12indented [?25h[?0c[?25l[?1c
do[?25h[?0c[?25l[?1c
/^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();
    }[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1L, 6C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c


[?25l[?1c8 lines to indent...
9indented [?25h[?0c
   [?25l[?1c/^STARTTEST
n();
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino={s,e-s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino={s,e-s
[?25l[?1c[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
7 lines to indent...
8indented     {[?25h[?0c[?25l[?1c
if ( k() )[?25h[?0c[?25l[?1c
/^STARTTEST
{l();} else { /* Start (two words) end */m();}
    n();    /* should be under the if () */
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino={s,fs
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 25C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=/ foo[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino={s,fs
[?25l[?1c[?25h[?0c[?25l[?1cvoid bar(void)
{[?25h[?0c[?25l[?1c
/[?25h[?0c foo
[?25l[?1c30 lines to indent...
31indented     {[?25h[?0c[?25l[?1c/^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 */[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 25C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cwhile
[?25l[?1c[?25h[?0c[?25l[?1c
-- INSERT --
here[?25h[?0c[?25l[?1c
if ( a )
    i[?25h[?0c[?25l[?1c
/^STARTTEST
a;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino= com=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 109C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/comment
olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^Mcmd();^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino= com=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ccomment
[?25l[?1ca()
{
label1:/* hmm */// comment[?25h[?0c[?25l[?1c
-- INSERT --label2: b();
label3 /* post */:
/* pre */ label4:f(/*com*/);if (/*com*/)cmd();[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set comments& comments^=s:/*,m:**,ex:*/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 53C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/simple
=5j[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments^=s:/*,m:**,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0csimple
[?25l[?1c/*
  * A simple comment[?25h[?0c[?25l[?1c
5 lines to indent...
6indented * A simple comment[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
/^STARTTEST
/*
** A different comment
*/

STARTTEST[?25h[?0c[?25l[?1c
:set cino=c0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 70C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/*
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=c0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments-=s1:/* comments^=s0:/*
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST
/*********A comment.
    *********/
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=c0,C1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 73C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/*
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=c0,C1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments-=s1:/* comments^=s0:/*
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST
/*********
    A comment.
    *********/
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 17C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s,U1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s,U1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (   c1[?25h[?0c[?25l[?1c
/^STARTTEST
&& (   c2|| c3))foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,w1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,w1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (   c1[?25h[?0c[?25l[?1c
/^STARTTEST
&& (   c2|| c3))foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
c = c1 && ([?25h[?0c[?25l[?1c
/^STARTTEST
c2 ||c3) && c4;
    if (c1 && c2)foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s,m1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s,m1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
c = c1 && ([?25h[?0c[?25l[?1c
/^STARTTEST
c2 ||c3
    ) && c4;
    if (c1 && c2
    )foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=b1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=b1
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
9 lines to indent...
10 lines indented [?25h[?0c[?25l[?1c
switch (x)[?25h[?0c[?25l[?1c
/^STARTTEST
{case 1:a = b;break;default:a = 0;break;
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,W5
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,W5
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
10 lines to indent...
11indented [?25h[?0c[?25l[?1c
invokeme([?25h[?0c[?25l[?1c
/^STARTTEST
argu,ment);
    invokeme(argu,ment);
    invokeme(argu,ment);
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=/6
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=/6
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
3 lines to indent...
4indented [?25h[?0c[?25l[?1c
statement;[?25h[?0c[?25l[?1c
/^STARTTEST
// comment 1// comment 2
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 34C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-12kdd]]/comment 1/+1
==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c==ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
/[?25h[?0ccomment 1/+1
[?25l[?1cstatement;// comment 1
    // comment 2[?25h[?0c[?25l[?1c    // comment 2[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cino=g0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=g0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cclass CAbc
{[?25h[?0c[?25l[?1c
6 lines to indent...
7indented [?25h[?0c[?25l[?1c
int Test() { return FALSE; }[?25h[?0c[?25l[?1c
/^STARTTEST
public: // comment
    void testfall();
protected:
    void testfall();
};

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,gs,hs
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 29C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,gs,hs
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cclass Foo : public Bar
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
public:[?25h[?0c[?25l[?1c
/^STARTTEST
virtual void method1(void) = 0;virtual void method2(int arg1,int arg2,int arg3) = 0;
};

STARTTEST[?25h[?0c[?25l[?1c
:set cino=+20
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 24C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=+20
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid
foo()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (a)[?25h[?0c[?25l[?1c
/^STARTTEST
{
    } elseasdf;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,W2s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,W2s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1c
{[?25h[?0c[?25l[?1c
34 lines to indent...
35indented [?25h[?0c[?25l[?1c
averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd([?25h[?0c[?25l[?1c
/^STARTTEST
dec)->asdfasdfasdf(asdfadsf,asdfasdf,asdfasdf,),func(asdfadf,asdfasdf),asdasdf);
}

STARTTEST
:set cino=M1
2kdd]]=][
ENDTEST

int main ()
{
    if (cond1 &&cond2)foo;
}[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=M1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c4 lines to indent...
5indented [?25h[?0c
   [?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,ts
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,ts
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
7 lines to indent...
8indented [?25h[?0c[?25l[?1c
void func(int a[?25h[?0c[?25l[?1c
/^STARTTEST
#if defined(FOO), int b, int c
#endif)
{
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
void[?25h[?0c[?25l[?1c
/^STARTTEST
func(int a
#if defined(FOO), int b, int c
#endif
    )
{
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 22C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=7][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=7][
ENDTEST[?25h[?0c

[?25l[?1c
69 lines to indent...
50
7indented [?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
/^STARTTEST
int a,int b)
{
}void
func6(int a)
{
}

STARTTEST
:set cino&
:set cino+=l1
2kdd2j=][
ENDTEST

void func(void)
{
    int tab[] =
    {1, 2, 3,4, 5, 6};[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino+=l1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c

[?25l[?1c22 lines to indent...
23indented [?25h[?0c
[?25l[?1c/^STARTTEST
break;case baz: {printf("baz");break;}case quux:printf("But don't break the indentation of this instruction\n");break;
    }
}

STARTTEST
:set cino&
2kdd2j=][
ENDTEST

void func(void)
{
    cout << "a"
    << "b"
    << ") :"
    << "c";
}[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c

[?25l[?1c6 lines to indent...
7indented     << "b"
        << ") :"
        << "c";[?25h[?0c
[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set com=s1:/*,m:*,ex:*/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 38C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]3jofoo();^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset com=s1:/*,m:*,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1cvoid func(void)
{[?25h[?0c[?25l[?1c/** This is a comment.*/[?25h[?0c[?25l[?1c
-- INSERT --
foo();[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cino&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
/^STARTTEST
{
    for (int i = 0; i < 10; ++i)if (i & 1) {foo(1);} elsefoo(0);
    baz();
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=k2s,(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd3j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd3j=][ENDTEST[?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
23 lines to indent...
24indented [?25h[?0c[?25l[?1c
{[?25h[?0c[?25l[?1c
/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(s
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c23 lines to indent...
24indented         && condition2)
        action();    && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(s,U1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c24 lines to indent...
25indented         && condition2)
        action();    && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0,W4
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c29 lines to indent...
30indented         && condition2)
        action();         && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,u2
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c18 lines to indent...
19indented         && condition2)
        action();        && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0,w1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c27 lines to indent...
28indented         && condition2)
        action();         && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2,(s
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c14 lines to indent...
15indented [?25h[?0c
[?25l[?1c/^STARTTEST
if (c1 && (c2 ||c3))foo;
    if (c1 &&(c2 || c3))
    {
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=N-s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 47C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^NAMESPACESTART
=/^NAMESPACEEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=N-s
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^NAMESPACESTART
[?25l[?1cNAMESPACESTART[?25h[?0c[?25l[?1c
/[?25h[?0c^NAMESPACEEND
[?25l[?1c81 lines to indent...
50
82indented [?25h[?0c[?25l[?1c/^STARTTEST
namespace test test2
{
    1111111111111111111;
}
namespace111111111
{
    111111111111111111;
}
NAMESPACEEND


STARTTEST
:set cino=j1,J1
/^JSSTART
=/^JSEND
ENDTEST

JSSTART
var bar = {
foo: {
that: this,
some: ok,
},[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c12 lines to indent...
13indented     foo: {
        that: this,
        some: ok,
    },[?25h[?0c[?25l[?1c/^STARTTEST
"bar":{a : 2,b: "123abc",x: 4,"y": 5
    }
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c5 lines to indent...
6indented [?25h[?0c[?25l[?1c/^STARTTEST
var foo = [
    1,
    2,
    3
];
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c7 lines to indent...
8indented [?25h[?0c[?25l[?1c/^STARTTEST
function bar() {
    var foo = [1,2,3
    ];
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c58 lines to indent...
509indented [?25h[?0c[?25l[?1c/^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: [[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c14 lines to indent...
15indented     $(this).data(class_name+'_public',$.extend({},{
        foo: 'bar',
        bar: 2,
        foobar: [[?25h[?0c[?25l[?1c/^STARTTEST
1,2,3],callback: function(){return true;}
    }, options||{}));
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c16 lines to indent...
17indented [?25h[?0c[?25l[?1c/^STARTTEST
2,3],callback: function(){return true;}}, options||{}));
    }
})(jQuery);
JSEND

STARTTEST
:set cino=j1,J1,+2
/^JSSTART
=/^JSEND
ENDTEST

JSSTART
// Results of JavaScript indent
// 1
(function(){
var a = [
'a',[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 38C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1,+2
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c149 lines to indent...
100
50 lines to indent... 
150 lines indented     var a = [
      'a',[?25h[?0c[?25l[?1c/^STARTTEST
var a,
    b,
    c,
    d,
    e,
    f,
    g,
    h,
    i;
JSEND

STARTTEST
:set cin cino&
/start of define
=/end of define
ENDTEST

/* start of define */
{
}
#define AAA \
BBB\
CCC[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 48C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin cino&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of define
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cend of define
[?25l[?1c11 lines to indent...
12indented     BBB\
    CCC[?25h[?0c[?25l[?1c/^STARTTEST
#define CNT \
    1 + \
    2 + \
    4
/* end of define */

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 61C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c226 fewer lines    c,
    d,
    e,    f,    g,    h,    i;JSEND/* start of define */
{}#define AAA \
    BBB\
    CCC#define CNT \
    1 + \
    2 + \4
/* end of define */[?25h[?0c[?25l[?1c:[?25h[?0c1;/start of AUTO/,$wq! test.out
[?25l[?1c"test.out" [New] 2096L, 20188C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test3 = test61; then \
#	  if diff test.out test3.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test3.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test3.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test4.in
[?25h[?8c[?25h[?0c[?25l[?1c"test4.in" 34 lines, 960 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
:set fo+=r" issue #57 do not move cursor on <c-o> when autoindent is set
Go# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that changes current buffer on BufEnter event.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 20 lines, 678 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:?startstart?,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter Xxx brew
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of
[?25l[?1cstartstart
start of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0c.,/end of/w! Xxx   " write test file Xxx
[?25l[?1c"Xxx" [New] 7L, 124C written[?25h[?0c[?25l[?1c:[?25h[?0cset ai modeline modelines=3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx             " split to Xxx, autocmd will do :brew
[?25l[?1c"Xxx" 7L, 124CTest for autocommand that changes current buffer on BufEnter event.
Check if modelines are interpreted for the correct buffer.STARTTESTo small.vim:set nocompatible viminfo+=nviminfo
:au BufEnter Xxx brew/start of.,/end of/w!" write test file Xxx
:set ai modeline modelines=3:sp Xxx    " split to Xxx, autocmd will do :brew
test4.in                                                                        :set fo+=rssue #57 do not move cursor on <c-o> when autoindent is setGo# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.outqa!ENDTESTstartstart of test file Xxx
test4.in                                                                        test4.in" line 1 of 34 --2%-- col 1[?25h[?0c[?25l[?1c: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[?25h[?0c[?25l[?1c?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --        this should be auto-indented[+][+][?25h[?0c[?25l[?1c
end of test file Xxx[?25h[?0c[?25l[?1c:[?25h[?0c                   " Append text with autoindent to this file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau! BufEnter Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbuf Xxx            " go to Xxx, no autocmd anymore
[?25l[?1c"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         [?25h[?0c[?25l[?1c?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --this should be in column 1[+][?25h[?0c[?25l[?1c:[?25h[?0cwq " append text without autoindent to Xxx
[?25l[?1c"Xxx8L, 151C written: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 aothis should be auto-indented^[
:                   " Append text with autoindent to this file
:au! BufEnter Xxx:buf Xxx            " go to Xxx, no autocmd anymoreG?this is aothis should be in column 1^[:wq " append text without autoindent to XxxG:r Xxx   nclude Xxx in the current file:set fo+=r" issue #57 do not move cursor on <c-o> when autoindent is setGo# abcdef^[2hi^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.out
:qa!ENDTESTstarstart of test file Xxx[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a testthis should be auto-indented
end of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0cr Xxx             " include Xxx in the current file
[?25l[?1c"Xxx" 8L, 151C
start of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0cset fo+=r          " issue #57 do not move cursor on <c-o> when autoindent is 

set
[?25l[?1c:au! BufEnter Xxx[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a test
this should be in column 1
end of test file Xxx
[?25h[?0c[?25l[?1c
-- INSERT --
# abcdef[?25h[?0c[?25l[?1c
-- INSERT --
-- (insert) --
# def[?25h[?0c[?25l[?1cINSERT --defo[?25h[?0cd[?25l[?1c[?25h[?0c[?25l[?1c
-- INSERT --
# abcdef[?25h[?0c[?25l[?1c
-- INSERT --
-- (insert) --[?25h[?0c[?25l[?1c
-- INSERT --def:[?25h[?0cd[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c:[?25h[?0c?startstart?,$w! test.out
[?25l[?1c"test.out" [New] 20L, 330C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test4 = test61; then \
#	  if diff test.out test4.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test4.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test4.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test5.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that deletes the current buffer on BufLeave event.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/sha256.o sha256.c
[New File] 16 lines, 664 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufLeave Xxx bwipe
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx               " write test file Xxx
[?25l[?1c"Xxx" [New File] 7 lines, 124 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx                         " split to Xxx
[?25l[?1c"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                                                                             ?start?,$w! test.outWrite current file contentsbwipe test.out      delete alternate bufferau bufleave test5.in bwipebwipe!                         " 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                                                                        [?25h[?0c[?25l[?1c:[?25h[?0cbwipe                          " delete buffer Xxx, now we're back here
[?25l[?1cTest 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 hereG?this is aothis is some more text^[                    Append some text to this file
:?start?,$w! test.outWrite 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 1[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a test
end of test file Xxx[?25h[?0c[?25l[?1c
?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c
this is some more text[?25h[?0c[?25l[?1c
end of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0c                               " Append some text to this file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?start?,$w! test.out           " Write current file contents
[?25l[?1c"test.out" [New File] 8 lines, 147 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe test.out                 " delete alternate buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau bufleave test5.in bwipe
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!                         " delete current buffer, get an empty one
[?25l[?1cError 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[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1cthis is another test line[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 26 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c                               " append an extra line to the output file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test5 = test61; then \
#	  if diff test.out test5.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test5.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test5.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test7.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that changes the buffer list, when doing ":ball".[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/lua5.2 -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE   -I/usr/include/python3.5m -DPYTHON3_HOME='L"/usr"' -pthread -fPIE -I/usr/include/ruby-2.3.0 -I/usr/include/arm-linux-gnueabihf/ruby-2.3.0 -DRUBY_VERSION=23 -I/usr/include/tcl8.6  -D_REENTRANT=1  -D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1  -o objects/option.o option.c
[New File] 17 lines, 508 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of
[?25l[?1c[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx1   " write test file Xxx1
[?25l[?1c"Xxx1" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx1
[?25l[?1c"Xxx1" 4 lines, 77 charactersstart of test file Xxx1this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx1                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx1
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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 Xxx1[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx2    " write test file Xxx2
[?25l[?1c"Xxx2" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx2
[?25l[?1c"Xxx2" 4 lines, 77 charactersstart of test file Xxx2this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx2                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx2
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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 Xxx2[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx3    " write test file Xxx3
[?25l[?1c"Xxx3" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx3
[?25l[?1c"Xxx3" 4 lines, 77 charactersstart of test file Xxx3this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx3                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx3
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost Xxx2 bwipe
[?25l[?1c[?25h[?0c[?25l[?1c4[?25h[?0c[?25l[?1c:[?25h[?0cball                 " open window for all args, close Xxx2
[?25l[?1c"Xxx1"4 lines, 77 characters

"Xxx2" 4 lines, 77 characters

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c.,$w! test.out          " Write contents of this file
[?25l[?1c"test.out" [New File] 4 lines, 77 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c: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 Xxx4
test7.in [+]                                                                    start of test file Xxx1this is a testthis is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx1                                                                            [?25h[?0c
test7.in [+]                                                                    Xxx1                                                                            [?25l[?1c:[?25h[?0cw >>test.out        " Append contents of second window (Xxx1)
[?25l[?1c"test.out" 4 lines, 77 characters appended[?25h[?0ctest7.in [+]                                                                    Xxx1                                                                            [?25l[?1c:[?25h[?0c/^start of/,$w >>test.out   " Append contents of last window (this file)
[?25l[?1csearch hit BOTTOM, continuing at TOP"test.out" 4 lines, 77 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test7 = test61; then \
#	  if diff test.out test7.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test7.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test7.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test8.in
[?25h[?8c[?25h[?0c[?25l[?1c"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('$')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for BufWritePre autocommand that deletes or unloads the buffer.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1054 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTif 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWritePre Xxx1 bunload
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWritePre Xxx2 bwipe
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of
[?25l[?1c
start of Xxx[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c
:[?25h[?0c.,/end of/w! Xxx1  " write test file Xxx1
[?25l[?1c"Xxx1" [New File] 3 lines, 31 characters written[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx2   " write test file Xxx2
[?25l[?1c"Xxx2" [New File] 3 lines, 31 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! Xxx2                " edit Xxx2
[?25l[?1c"Xxx2" 3 lines, 31 charactersstart of Xxx2
        testend of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbdel test8.in^I^I" delete this file from the buffer list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce Xxx1                 " edit Xxx1
[?25l[?1c"Xxx1" 3 lines, 31 characters1
[?25h[?0c[?25l[?1c:[?25h[?0cw                      " write it, will unload it and give an error msg
[?25l[?1c"Xxx2"3 lines, 31 characters

E203: Autocommands deleted or unloaded buffer to be written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out            " Write contents of this file
[?25l[?1c"test.out" [New File] 3 lines, 31 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! Xxx2                " start editing Xxx2
[?25l[?1c"Xxx2" 3 lines, 31 charactersstart of Xxx2test
end of Xxx"Xxx2" 3 lines, 31 characters[?25h[?0c[?25l[?1c:[?25h[?0cbwipe test.out         " remove test.out from the buffer list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw                      " write it, will delete the buffer and give an error ms

g[?25l[?1c"Xxx1"3 lines, 31 characters
E203: Autocommands deleted or unloaded buffer to be written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out           " Append contents of this file
[?25l[?1c"test.out" 3 lines, 31 characters appended

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau! BufWritePre
[?25l[?1cstart of Xxx1test
end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0cfunc CloseAll()
[?25l[?1c
:  [?25h[?0c  let i = 0

[?25l[?1c:  [?25h[?0c  while i <= bufnr('$')

[?25l[?1c:    [?25h[?0c    if i != bufnr('%') && bufloaded(i)

[?25l[?1c:      [?25h[?0c      exe  i . "bunload"

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let i += 1

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cstart of Xxx1test
end of Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfunc WriteToOut()
[?25l[?1c
:  [?25h[?0c  edit! test.out

[?25l[?1c:  [?25h[?0c  $put ='VimLeave done'

[?25l[?1c:  [?25h[?0c  write

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cstart of Xxx1test
end of Xxx
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset viminfo='100,nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufUnload * call CloseAll()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau VimLeave * call WriteToOut()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce small.vim
[?25l[?1cError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"small.vim" 1 line, 1 character

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0csp mbyte.vim
[?25l[?1c"mbyte.vim" 0 lines, 0 characters~                                                                               ~                                                                               ~                                                                               mbyte.vim                                                                       small.vim                                                                       "mbyte.vim" 0 lines, 0 characters[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1cError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"test.out" 6 lines, 62 characters

"test.out" 7 lines, 76 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test8 = test61; then \
#	  if diff test.out test8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test8.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test9.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Bufleave autocommand that deletes the buffer we are about to edit.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 117 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufLeave test9.in bwipe yy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce yy
[?25l[?1cE143: Autocommands unexpectedly deleted new buffer yy[?25h[?0c[?25l[?1c:[?25h[?0c/^start of/,$w! test.out      " Write contents of this file
[?25l[?1c"test.out" [New File] 2 lines, 42 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test9 = test61; then \
#	  if diff test.out test9.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test9.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test9.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test14.in
[?25h[?8c[?25h[?0c[?25l[?1c"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\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>"
:else
: let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"
:endif
:exe "normal " . tt
:unlet tt
:.w >>test.out[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for "vaBiB", end could be wrong.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 56 lines, 1141 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 */{}}}[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cStart cursor here
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c{ 
                        cmd;    /* <-- Start cursor here */ 
                        { 
                        } 
                [?25h[?0c[?25l[?1c                cmd; 
                }[?25h[?0c[?25l[?1c


6 fewer lines        }Piece of Java{        tt m1 {                t1;e1[?25h[?0c[?25l[?1c:[?25h[?0c?Bug?,/Piece/-2w! test.out
[?25l[?1c"test.out" [New File] 3 lines, 44 characters written[?25h[?0c[?25l[?1c/[?25h[?0c^- Bug
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cs/u/~u~/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cs/i/~u~/
[?25l[?1cuuun "vPPPP" on this text (Webb):
[?25h[?0c[?25l[?1c:[?25h[?0cs/o/~~~/
[?25l[?1cuuuuuuuuun this text (Webb):
[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 48 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cif has("ebcdic")
[?25l[?1c
:  [?25h[?0c: let tt = "o\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>

"
[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:$put =@/
/^substitute
:keeppatterns s/asdf/xyz/
:$put =@/
/^substitute[?25h[?0c[?25l[?1c:[?25h[?0cexe "normal " . tt
[?25l[?1cABC !a^Og^G8[?25h[?0c[?25l[?1c:[?25h[?0cunlet tt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset vb
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Piece
[?25l[?1c[?25h[?0c[?25l[?1c{A[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1ctt m2 {[?25h[?0c[?25l[?1c{B[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1ct2;} e2tt m3 {[?25h[?0c[?25l[?1c{C[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1c{DC[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c{EA[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c{F[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 3 characters appended[?25h[?0c[?25l[?1c}G e1[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c
[?25l[?1cif (x){t3;}} e3[?25h[?0c[?25l[?1c}H e3[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c[?25l[?1c
}[?25h[?0c[?5h[?5l[?25l[?1c}I[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 3 characters appended[?25h[?0c[?25l[?1c}JH e3[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 8 characters appended[?25h[?0c[?25l[?1c}K e2[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c[?25l[?1c{LF[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^foobar
[?25l[?1cfoobar[?25h[?0c[?25l[?1c
:[?25h[?0clet startline = line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall search('foobar', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0ccall search('^$', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall search('^$', 'bc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ctwo
[?25l[?1csubstitute foo asdf

one two[?25h[?0c[?25l[?1c
:[?25h[?0ccall search('.', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), getline('.')[col('.') - 1:])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cs/foo/bar/
[?25l[?1cbar
[?25h[?0c[?25l[?1c:[?25h[?0c$put =@/
[?25l[?1csearch()
0
1
1
two
foo[?25h[?0c[?25l[?1c
/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0ckeeppatterns s/asdf/xyz/
[?25l[?1cxyz[?25h[?0c[?25l[?1c:[?25h[?0c$put =@/
[?25l[?1c
^substitute[?25h[?0c[?25l[?1c
/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c$put =@0
[?25l[?1c
substitute bar xyz[?25h[?0c[?25l[?1c
/[?25h[?0cbagcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/spell.o spell.c
r /e
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =@0
[?25l[?1c
substitute bar xyz[?25h[?0c[?25l[?1c

:[?25h[?0ckeeppatterns /xyz
[?25l[?1c[?25h[?0c[?25l[?1c
/bar /exyz[?25h[?0c[?25l[?1c:[?25h[?0c/^search()/,$w >>test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 9 lines, 58 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test14 = test61; then \
#	  if diff test.out test14.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test14.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test14.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test15.in
[?25h[?8c[?25h[?0c[?25l[?1c"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/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :right on text with embedded TAB.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 401 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=65
[?25l[?1c[?25h[?0c[?25l[?1c
test for :left[?25h[?0c[?25l[?1c
:[?25h[?0c/^\s*test for :left/,/^\s*test for :center/ left
[?25l[?1csearch hit BOTTOM, continuing at TOPtest for :left[?25h[?0c[?25l[?1c:[?25h[?0c/^\s*test for :center/,/^\s*test for :right/ center
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^\s*test for :right/,/^xxx/-1 right
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fo+=tcroql tw=72
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cxxxxxxxx$
[?25l[?1casxa;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[?25h[?0c
[?25l[?1c
 xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xxxx xxxxxxx.
xxxx xxxx.xxxxxxx: xxxx xxxxxxx, xx xxxx xxxxxxx~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" undo/redo here to make the next undo only work on the following changes
[?25l[?1c[?25h[?0c[?25l[?1c1 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/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTESTtest for :leftaafaadfaasdfaaasdfaaxasdfaa
asxxdfaatest for :centeraafaafd asdf[?25h[?0c[?25l[?1c1 line less; after #1  0 seconds agotest for :lefta      afa    adfa      asdfaaasdfa           axasdfaa                test for :center  aa  fa        afd asdf[?25h[?0c
[?25l[?1c:[?25h[?0cmap gg :.,.+2s/^/x/<CR>kk:set tw=3<CR>gqq
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^aa
[?25l[?1casxxdfaaxxxoikeasxa;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[?25h[?0c[?25l[?1c


:.,.+2s/^/x/
3 substitutions on 3 linesxaa aa aa aa
xbb bb bb bb
xcc cc cc cc
[?25h[?0c[?25l[?1c:set tw=3
[?25h[?0c[?25l[?1c


3 more lines
aaaaaa3 more lines[?25h[?0c[?25l[?1c
3 fewer lines; before #2  0 seconds agoaa aa aa aa
bb bb bb bb
cc cc cc cc
~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0c?test for :left?,$w! test.out
[?25l[?1c"test.out"[New] 111L, 2304C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test15 = test61; then \
#	  if diff test.out test15.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test15.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test15.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test19.in
[?25h[?8c[?25h[?0c[?25l[?1c"test19.in" 33 lines, 692 charactersTests for "r<Tab>" 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![?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 447 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset smarttab expandtab ts=8 sw=4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure that backspace works, no matter what termcap is used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset t_kD=^^? t_kb=^^H
[?25l[?1cSTARTTEST
: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
[?25h[?0c[?25l[?1c
/[?25h[?0csome
[?25l[?1cstart textsome test text[?25h[?0c[?25l[?1c    ome test text[?25h[?0c[?25l[?1c
:[?25h[?0cset noexpandtab
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cother
[?25l[?1ctest textother test text[?25h[?0c[?25l[?1c    ther test text[?25h[?0c[?25l[?1c
a cde[?25h[?0c[?25l[?1c
:[?25h[?0c" Test replacing with Tabs and then backspacing to undo it
[?25l[?1c[?25h[?0c
    [?25l[?1c[?25h[?0c[?25l[?1c
f ghi[?25h[?0c[?25l[?1c
:[?25h[?0c" Test replacing with Tabs
[?25l[?1c[?25h[?0c
    [?25l[?1c     hi[?25h[?0c[?25l[?1c
test text[?25h[?0c[?25l[?1c
:[?25h[?0c" Test that copyindent works with expandtab set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset expandtab smartindent copyindent ts=8 sw=8 sts=8
[?25l[?1c[?25h[?0c[?25l[?1c{x[?25h[?0c[?25l[?1c
:[?25h[?0cset nosol
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cSecond line/
[?25l[?1c
Second line beginning with whitespace[?25h[?0c[?25l[?1c
  with whitespace[?25h[?0c[?25l[?1c
:[?25h[?0c?^start?,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 121 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test19 = test61; then \
#	  if diff test.out test19.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test19.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test19.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test20.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests Blockwise Visual when there are TABs before the text.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 107 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso tiny.vim
[?25l[?1c[?25h[?0c[?25l[?1csome texttest text
test text

Ox^[jAy^[kdd[?25h[?0c[?25l[?1cx[?25h[?0c
[?25l[?1cy[?25h[?0c[?25l[?1cy
Ox^[jAy^[kdd[?25h[?0c[?25l[?1c

2 changes; before #1  0 seconds ago[?25h[?0c
[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       123456
234567
345678test text test tex start here
                some texttest
test textOx^[jAy^[kdd
test20.in                                                                       [?25h[?0c[?25l[?1cx[+][?25h[?0c
[?25l[?1cy[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c1 line less; before #1  0 seconds ago   [?25h[?0c[?25l[?1c:[?25h[?0cquit!
[?25l[?1c: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[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
Ox^[jAy^[kdd[?25h[?0c[?25l[?1c
/[?25h[?0cstart here$
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cs[?25h[?0c[?25l[?1ce[?25h[?0c[?25l[?1ct t[?25h[?0c[?25l[?1cat [?25h[?0c[?25l[?1crt hereextex[?25h[?0c[?25l[?1c/[?25h[?0c456$
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c4
234[?25h[?0c[?25l[?1c5
345[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cstart here56
234start here67
345start here78[?25h[?0c[?25l[?1c:[?25h[?0c/56$/,$-1w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 10 lines, 106 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test20 = test61; then \
#	  if diff test.out test20.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test20.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test20.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test22.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for file with some lines ending in CTRL-M, some not^M[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 38 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset ta tx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce!
[?25l[?1c"test22.in" 13 lines, 197 characters[?25h[?0c[?25l[?1c:[?25h[?0c$-3,$w! test.out
[?25l[?1c"test.out" [New File] 4 lines, 79 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test22 = test61; then \
#	  if diff test.out test22.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test22.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test22.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test23.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for complicated + argument to :edit command[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 125 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c$-1w! Xfile1
[?25l[?1c"Xfile1" [New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xfile2
[?25l[?1c"Xfile2" [New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0cedit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 12 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce Xfile1
[?25l[?1c"Xfile1" 1 line, 11 charactersfooPIPEbar
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xfile1" 1 line, 11 characters[?25h[?0c[?25l[?1c:[?25h[?0cw >> test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test23 = test61; then \
#	  if diff test.out test23.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test23.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test23.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test24.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with backslash and other special characters inside [][?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 51 lines, 519 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\x]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text[?25h[?0c[?25l[?1c/[?25h[?0c[\t\]]
[?25l[?1c[?25h[?0c[?25l[?1ctext test tex[?25h[?0c[?25l[?1c/[?25h[?0c[]y]
[?25l[?1c[?25h[?0c[?25l[?1ctest text[?25h[?0c[?25l[?1c/[?25h[?0c[\]]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text[?25h[?0c[?25l[?1c/[?25h[?0c[y^]
[?25l[?1c[?25h[?0c[?25l[?1cst text[?25h[?0c[?25l[?1c/[?25h[?0c[$y]
[?25l[?1c[?25h[?0c[?25l[?1cxt test text[?25h[?0c[?25l[?1c/[?25h[?0c[\x61]
[?25l[?1c[?25h[?0c[?25l[?1cext test text  x61[?25h[?0c[?25l[?1c/[?25h[?0c[\x60-\x64]
[?25l[?1c[?25h[?0c[?25l[?1cext test text  x60-x64[?25h[?0c
[?25l[?1c/[?25h[?0c[\x785]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text  x78 5[?25h[?0c[?25l[?1c/[?25h[?0c[\o143]
[?25l[?1c
testc text test text  o143[?25h[?0c[?25l[?1c text test text  o143[?25h[?0c[?25l[?1c
/[?25h[?0c[\o140-\o144]
[?25l[?1c
tesdt text test text  o140-o144[?25h[?0c[?25l[?1ct text test text  o140-o14[?25h[?0c[?25l[?1c
/[?25h[?0c[\o417]
[?25l[?1c
test7 text test text  o41 7[?25h[?0c[?25l[?1c text test text  o41 7[?25h[?0c[?25l[?1c
/[?25h[?0c\%x42
[?25l[?1c
test text tBest text  \%x42[?25h[?0c[?25l[?1cest text  \%x42[?25h[?0c[?25l[?1c
/[?25h[?0c\%o103
[?25l[?1c
test text teCst text  \%o103[?25h[?0c[?25l[?1cst text  \%o103[?25h[?0c[?25l[?1c
/[?25h[?0c[\x00]
[?25l[?1c
test text ^@test text  [\x00][?25h[?0c[?25l[?1ctest text  [\x00][?25h[?0c[?25l[?1c
test te^@xt t^Dest t^Pext  [\x00-\x10][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\x00-\x10]//g
[?25l[?1c3 substitutions on 1 linext test text  [\x00-\x10][?25h[?0c[?25l[?1c
test \xyztext test text  [\x-z][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\x-z]\+//
[?25l[?1ctext test text  [\x-z][?25h[?0c[?25l[?1c
test text tev\uyst text  [\u-z][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\u-z]\{2,}//
[?25l[?1cst text  [\u-z][?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\+//
[?25l[?1c xx [?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a*\)\+//
[?25l[?1c[?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a*\)*//
[?25l[?1c[?25h[?0c[?25l[?1c
xx aaaaa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\{2,3}/A/
[?25l[?1cAaa xx[?25h[?0c[?25l[?1c
xx aaaaa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\{-2,3}/A/
[?25l[?1cAaaa x[?25h[?0c[?25l[?1c
xx aaa12aa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)*\(12\)\@>/A/
[?25l[?1cAaa xx[?25h[?0c[?25l[?1c
xx foobar xbar xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(foo\)\@<!bar/A/
[?25l[?1cA xx[?25h[?0c[?25l[?1c
xx an file xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(an\_s\+\)\@<=file/A/
[?25l[?1cA xx[?25h[?0c[?25l[?1c
x= 9;[?25h[?0c[?25l[?1c
:[?25h[?0cs/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
[?25l[?1cXX
[?25h[?0c[?25l[?1c
hh= 77;[?25h[?0c[?25l[?1c
:[?25h[?0cs/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
[?25l[?1cYY 77;[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0cs/aaa/xyz/
[?25l[?1cxyz
 [?25h[?0c[?25l[?1c
xyz[?25h[?0c[?25l[?1c
:[?25h[?0cs/~/bcd/
[?25l[?1cbcd
 [?25h[?0c[?25l[?1c
bcdbcdbcd[?25h[?0c[?25l[?1c
:[?25h[?0cs/~\+/BB/
[?25l[?1cBB[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?start?,$w! test.out
[?25l[?1c"test.out" [New] 32L, 586C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test24 = test61; then \
#	  if diff test.out test24.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test24.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test24.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test26.in
[?25h[?8c[?25h[?0c[?25l[?1c"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")[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for :execute, :while and :if[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 39 lines, 696 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet i = 0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i < 12
[?25l[?1c
:  [?25h[?0c:  let i = i + 1

[?25l[?1c:  [?25h[?0c:  if has("ebcdic")

[?25l[?1c:    [?25h[?0c:    execute "normal o" . i . "\047"

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    execute "normal o" . i . "\033"

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  if i % 2

[?25l[?1c:    [?25h[?0c:    normal Ax^^[

[?25l[?1c:    [?25h[?0c:    if i == 9

[?25l[?1c:      [?25h[?0c:      break

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if i == 5

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      let j = 9

[?25l[?1c:      [?25h[?0c:      while j > 0

[?25l[?1c:[?25h[?0c:        if has("ebcdic")

[?25l[?1c:[?25h[?0c:          execute "normal" j . "a" . j . "\x27"

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          execute "normal" j . "a" . j . "\x1b"

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:        let j = j - 1

[?25l[?1c:[?25h[?0c:      endwhile

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  if i == 9

[?25l[?1c:    [?25h[?0c:    if has("ebcdic")

[?25l[?1c:      [?25h[?0c:      execute "normal Az\047"

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      execute "normal Az\033"

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endwhile
[?25l[?1c:  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[?25h[?0c[?25l[?1c
:[?25h[?0cunlet i j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c't,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 159 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test26 = test61; then \
#	  if diff test.out test26.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test26.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test26.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test28.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for sourcing a file with CTRL-V's at the end of the line[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 114 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c/firstline/+1,/lastline/-1w! Xtestfile
[?25l[?1c"Xtestfile" [New File] 10 lines, 148 characters written[?25h[?0c[?25l[?1c:[?25h[?0cso Xtestfile
[?25l[?1c[?25h[?0c[?25l[?1c
sd
map __2 asd^[[?25h[?0c[?25l[?1csecond[?25h[?0cd  [?25l[?1csd^[[?25h[?0c^[  [?25l[?1csd^@map __5 asd^@[?25h[?0c[?25l[?1cfifth[?25h[?0c[?25l[?1c
:[?25h[?0c'm,$s/^@/0/g
[?25l[?1c0map __5 asd0fifth[?25h[?0c[?25l[?1c:[?25h[?0c'm,$w! test.out
[?25l[?1c"test.out" [New File] 2 lines, 45 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test28 = test61; then \
#	  if diff test.out test28.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test28.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test28.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test29.in
[?25h[?8c[?25h[?0c[?25l[?1c"test29.in" 230 lines, 4261 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for joining lines and marks in them[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 478 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nojoinspaces
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cfirstline/
[?25l[?1c[?25h[?0c
[?25l[?1c/[?25h[?0c^STARTTEST/-1
[?25l[?1c+-1
37 fewer linesSTARTTEST
/^{/+1[?25h[?0c[?25l[?1cmore linesasdfasdf.
asdf[?25h[?0c[?25l[?1casdf
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c
zx cv[?25l[?1cas dfg?
hjkl iop!
ert[?25h[?0c
hjkl i[?25l[?1c. as dfg? hjkl iop! ert
zx cvn.
as dfg?hjkl iop![?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions+=j
[?25l[?1c[?25h[?0c
zx cv
hjkl i[?25l[?1c. as dfg? hjkl iop! ertSTARTTEST[?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j joinspaces
[?25l[?1c[?25h[?0c
[?25l[?1c

37 more linesasdfasdf.
[?25h[?0c[?25l[?1casdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c  asdf[?25h[?0c[?25l[?1c
asdfasdf. [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c
zx cv[?25l[?1cas dfg?
hjkl iop![?25h[?0c
hjkl i[?25l[?1c.  as dfg?  hjkl iop!  ert
zx cvn.
as dfg?[?25h[?0c  er[?25l[?1ct  e[?25h[?0c
zx cv[?25l[?1cen[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c


:[?25h[?0cset cpoptions+=j
[?25l[?1c[?25h[?0c
zx cv[?25l[?1c
hjkl iop![?25h[?0c
hjkl i[?25l[?1c.  as dfg? hjkl iop! ertSTARTTEST[?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c


:[?25h[?0cset cpoptions-=j nojoinspaces compatible
[?25l[?1c[?25h[?0c
[?25l[?1c

37 more linesasdfasdf.
[?25h[?0c[?25l[?1casdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c  asdf[?25h[?0c[?25l[?1c
asdfasdf. [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c[?25l[?1c.  as dfg? hjkl iop! ert[?25h[?0c[?25l[?1ct  a[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c[?25l[?1c
/[?25h[?0cSTARTTEST/-2
[?25l[?1c+-2
4 fewer lines[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 147 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set comments=s1:/*,mb:*,ex:*/,://
:set nojoinspaces fo=j
:set backspace=eol,start
:.,+3join
j4J
:.,+2join
j3J
:.,+2join
j3J
:.,+2join
jj3J
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{[?25h[?0c[?25l[?1c
:[?25h[?0cset comments=s1:/*,mb:*,ex:*/,://
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nojoinspaces fo=j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace=eol,start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,+3join
[?25l[?1c/* Make sure the previous comment leader is not removed. */
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c/* Make sure the previous comment leader is not removed. */
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1c// Should the next comment leader be left alone? Yes.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c// Should the next comment leader be left alone? Yes.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1cif (condition) // Remove the next comment leader! OK, I will.
[?25h[?0c[?25l[?1c
action();[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cif (condition) // Remove the next comment leader! OK, I will.
[?25h[?0c[?25l[?1c
action();
[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:" Test with backspace set to the non-compatible setting
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 17 lines, 347 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:inoremap <c-u> <left><c-u>
Avim3^U^[
:iunmap <c-u>
Avim4^U^U^[
:" Test with backspace set to the compatible setting
:set backspace= visualbell
A vim5^[A^U^U^[
A vim6^[Azwei^Gu^U^[
:inoremap <c-u> <left><c-u>
A vim7^U^U^[
:set compatible novisualbell
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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" Test with backspace set to the non-compatible setting
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^\d\+ this
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cp bs=2
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0cd    [?25l[?1cvim2[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <c-u> <left><c-u>
[?25l[?1c[?25h[?0c[?25l[?1cd3[?25h[?0c[?25l[?1c:[?25h[?0ciunmap <c-u>
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0c" Test with backspace set to the compatible setting
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace= visualbell
[?25l[?1c[?25h[?0c[?25l[?1cvim5[?25h[?0c[?5h[?5l[?5h[?5l[?25l[?1cd vim6[?25h[?0c6    [?25l[?1czwei[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <c-u> <left><c-u>
[?25l[?1c[?25h[?0c[?5h[?5l[?5h[?5l[?25l[?1cvim7[?25h[?0c
[?25l[?1c:[?25h[?0cset compatible novisualbell
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 21 lines, 356 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/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.
 */[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments=sO:*\ -,mO:*\ \ ,exO:*/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments+=s1:/*,mb:*,ex:*/,://
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments+=s1:>#,mb:#,ex:#<,:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j joinspaces fo=j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace=eol,start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,+3join
[?25l[?1c/* Make sure the previous comment leader is not removed.  *//* List:
 * - item1
 *   foo bar baz[?25h[?0c
[?25l[?1c/* Make sure the previous comment leader is not removed.  */*   foo bar baz
 * - item2
 *   foo bar baz[?25h[?0c
[?25l[?1c:[?25h[?0c.,+8join
[?25l[?1c/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz *//* List:- item1  foo bar baz
 * - item2[?25h[?0c
[?25l[?1c/* 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?[?25h[?0c
[?25l[?1c:[?25h[?0c.,+2join
[?25l[?1cShould the next comment leader be left alone?  Yes.


// Yes.[?25h[?0c
[?25l[?1c// Should the next comment leader be left alone?  Yes.* Here the comment leader should be left intact. */
// And so should this one.[?25h[?0c
[?25l[?1c


:[?25h[?0c.,+2join
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.* Here the comment leader should be left intact. */[?25h[?0c
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.[?25h[?0c
[?25l[?1c:[?25h[?0c.,+2join
[?25l[?1cif (condition) // Remove the next comment leader!  OK, I will.
[?25h[?0c[?25l[?1c
action();[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cif (condition) // Remove the next comment leader!  OK, I will.
[?25h[?0c[?25l[?1c
action();
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1cint i = 7 /* foo *// 3 // comment
[?25h[?0c[?25l[?1c
;[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cint i = 7 /* foo *// 3 // comment
[?25h[?0c[?25l[?1c
;
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+5join
[?25l[?1c># 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.[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c># 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.[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cSome code!
// Make sure backspacing does not remove this comment leader.[?25h[?0c
[?25l[?1c// Make sure backspacing does not remove this comment leader.
}[?25h[?0c
[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 61 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:?firstline?+1,$w! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c74 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.
}[?25h[?0c[?25l[?1c:[?25h[?0c?firstline?+1,$w! test.out
[?25l[?1c"test.out" [New File] 97 lines, 3018 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test29 = test61; then \
#	  if diff test.out test29.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test29.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test29.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test31.in
[?25h[?8c[?25h[?0c[?25l[?1c"test31.in" 95 lines, 1832 charactersTest for commands that close windows and/or buffers:
:quit
:close
:hide
:only
:sall
:all
:ball
:buf
:edit

STARTTEST
:so small.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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for commands that close windows and/or buffers:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 80 lines, 1697 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" test ":q!" and hidden buffer.
:bw! Xtest1 Xtest2 Xtest3 Xtest4
:sp Xtest1
:wincmd w
:bw!
:set modified
:bot sp Xtest2
:set modified
:bot sp Xtest3
:set modified
:wincmd t
:hide
:q!
:w >>test.out
:q!
:w >>test.out
:q!
:call append(line('$'), "Oh, Not finished yet.")
:w >>test.out
:qa!
ENDTEST

testtext[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c
[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest1
[?25l[?1c"Xtest1" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest2
[?25l[?1c"Xtest2" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest3
[?25l[?1c"Xtest3" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0cn! Xtest1 Xtest2
[?25l[?1c"Xtest1" 1 line, 11 characterstesttext 1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for working :n when hidden set; write "testtext 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cn
[?25l[?1c"Xtest2" 1 line, 11 characters2[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" test for failing :rew when hidden not set; write "testtext 2 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0crew
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test for working :rew when hidden set; write "testtext 1 1"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0crew
[?25l[?1c"Xtest1" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)1 1
[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test for :all keeping a buffer when it's modified; write "testtext 1 1 1"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0csp
[?25l[?1cXtest1 [+]                                                                      testtext 1 1 1Xtest1 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cn Xtest2 Xtest3
[?25l[?1c"Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)2 22[?25h[?0c[?25l[?1c:[?25h[?0call
[?25l[?1c"Xtest3" 1 line, 11 characterstesttext 1 1 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1cXtest1 [+]                                                                      Xtest2 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test abandoning changed buffer, should be unloaded even when 'hidden' set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 2 2" twice
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c1 1[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1ctesttext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cunhide
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":hide" hides anyway when 'hidden' not set; write "testtext 3"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0chide
[?25l[?1c3~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":edit" failing in modified buffer when 'hidden' not set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 3 3"
[?25l[?1c[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1

"[?25l[?1ctesttext 3 3[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1c"Xtest1" 1 line, 11 characters1[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":close" not hiding when 'hidden' not set in modified buffer;
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 3 3 3"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest3
[?25l[?1c"Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)3 3Xtest3 [+]                                                                      testtext 1Xtest1                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":close!" does hide when 'hidden' not set in modified buffer;
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 1"
[?25l[?1c[?25h[?0c[?25l[?1c3 3[?25h[?0c[?25l[?1c:[?25h[?0cclose!
[?25l[?1c1~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test ":all!" hides changed buffer; write "testtext 2 2 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest4
[?25l[?1c"Xtest4" [New File]Xtest4                                                                          testtext 1Xtest1                                                                          [?25h[?0c[?25l[?1c 4[+][?25h[?0c[?25l[?1c:[?25h[?0call!
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1ctesttext 2 2 2
~                                                                               Xtest2 [+]                                                                      testtext 3 3 3 3~                                                                               3 [+][?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test ":q!" and hidden buffer.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbw! Xtest1 Xtest2 Xtest3 Xtest4
[?25l[?1c"test31.in"95 lines, 1832 characters

4 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest1
[?25l[?1c"Xtest1" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               Xtest1                                                                          :w >>test.out:q!:w >>test.out:q!:call append(line('$'), "Oh, Not finished yet."):w >>test.out:qa!ENDTESTtesttexttest31.in "Xtest1" 1 line, 11 characters[?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1cXtest1                                                                          test31.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cbw!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbot sp Xtest2
[?25l[?1c"Xtest2" 1 line, 11 charactersXtest1 [+]                                                                      testtext 2Xtest2                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cbot sp Xtest3
[?25l[?1c"Xtest3" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cwincmd t
[?25l[?1cXtest1 [+]                                                                      Xtest3 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0chide
[?25l[?1ctesttext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c3~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1cE37: No write since last change

E162: No write since last change for buffer "Xtest1"

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test31 = test61; then \
#	  if diff test.out test31.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test31.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test31.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test33.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'lisp'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 63 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset lisp
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^(defun
[?25l[?1c[?25h[?0c[?25l[?1c22 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[?25h[?0c[?25l[?1c:[?25h[?0c/^(defun/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 23 lines, 544 characters written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test33 = test61; then \
#	  if diff test.out test33.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test33.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test33.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test34.in
[?25h[?8c[?25h[?0c[?25l[?1c"test34.in" 87 lines, 1833 charactersTest for user functions.
Also test an <expr> 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for user functions.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 78 lines, 1621 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction Table(title, ...)
[?25l[?1c
:  [?25h[?0c:  let ret = a:title

[?25l[?1c:  [?25h[?0c:  let idx = 1

[?25l[?1c:  [?25h[?0c:  while idx <= a:0

[?25l[?1c:    [?25h[?0c:    exe "let ret = ret . a:" . idx

[?25l[?1c:    [?25h[?0c:    let idx = idx + 1

[?25l[?1c:    [?25h[?0c:  endwhile

[?25l[?1c:  [?25h[?0c:  return ret

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c: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[?25h[?0c[?25l[?1c

:[?25h[?0cfunction Compute(n1, n2, divname)
[?25l[?1c
:  [?25h[?0c:  if a:n2 == 0

[?25l[?1c:    [?25h[?0c:    return "fail"

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  exe "let g:" . a:divname . " = ". a:n1 / a:n2

[?25l[?1c:  [?25h[?0c:  return "ok"

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c: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))[?25h[?0c[?25l[?1c

:[?25h[?0cfunc Expr1()
[?25l[?1c
:  [?25h[?0c:  normal! v

[?25l[?1c:  [?25h[?0c:  return "111"

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc Expr2()
[?25l[?1c
:  [?25h[?0c:  call search('XX', 'b')

[?25l[?1c:  [?25h[?0c:  return "222"

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc ListItem()
[?25l[?1c
:  [?25h[?0c:  let g:counter += 1

[?25l[?1c:  [?25h[?0c:  return g:counter . '. '

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc ListReset()
[?25l[?1c
:  [?25h[?0c:  let g:counter = 0

[?25l[?1c:  [?25h[?0c:  return ''

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc FuncWithRef(a)
[?25l[?1c
:  [?25h[?0c:  unlet g:FuncRef

[?25l[?1c:  [?25h[?0c:  return a:a

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0clet g:FuncRef=function("FuncWithRef")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet counter = 0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <expr> ( ListItem()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <expr> [ ListReset()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cimap <expr> + Expr1()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cimap <expr> * Expr2()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet retval = "nop"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^here
[?25l[?1c[?25h[?0c[?25l[?1cher$=[?25h[?0cTable("xxx", 4, "asdf")
[?25l[?1c=[?25h[?0cCompute(45, 0, "retval")
[?25l[?1c=[?25h[?0cretval
[?25l[?1c=[?25h[?0cCompute(45, 5, "retval")
[?25l[?1c=[?25h[?0cretval
[?25l[?1c=[?25h[?0cg:FuncRef(333)

[?25l[?1cError detected while processing function Expr1:

line    1:

E523: Not allowed here

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:    $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. two[?25h[?0c[?25l[?1c1. one again[?25h[?0c[?25l[?1c
:[?25h[?0ccall append(line('$'), max([1, 2, 3]))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall extend(g:, {'max': function('min')})
[?25l[?1cE704: Funcref variable name must start with a capital: max[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), max([1, 2, 3]))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:    " Regression: the first line below used to throw ?E110: Missing ')'?

[?25l[?1c:  [?25h[?0c:    " Second is here just to prove that this line is correct when not skipp

ing

[?25l[?1c:  [?25h[?0c:    " rhs of &&.

[?25l[?1c:  [?25h[?0c:    $put =(0&&(function('tr'))(1, 2, 3))

[?25l[?1c:  [?25h[?0c:    $put =(1&&(function('tr'))(1, 2, 3))

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:    $put ='!!! Unexpected exception:'

[?25l[?1c:  [?25h[?0c:    $put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c:    $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[?25h[?0c[?25l[?1c
:[?25h[?0c$-9,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 81 characters written[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Table
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Compute
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Expr1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Expr2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc ListItem
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc ListReset
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cunlet retval counter
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test34 = test61; then \
#	  if diff test.out test34.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test34.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test34.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test36.in
[?25h[?8c[?25h[?0c[?25l[?1c"test36.in" 108 lines, 2025 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest character classes in regexp using regexpengine 0, 1, 2.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 101 lines, 1850 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTp: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
p:s/\%#=0\%204l^\t...//g
p:s/\%#=1\%205l^\t...//g
p:s/\%#=2\%206l^\t...//g
:/^start-here/+1,$wq! test.out
ENDTEST







:[?25h[?0cs/\%#=0\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\O//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\O//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-7]//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-7]//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c




~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\X//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\X//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=1[^0-9A-Fa-f]//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c





:[?25h[?0cs/\%#=0\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\U//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\U//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Z]//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Z]//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test36 = test61; then \
#	  if diff test.out test36.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test36.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test36.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test37.in
[?25h[?8c[?25h[?0c[?25l[?1c"test37.in" 116 lines, 3262 charactersTest for 'scrollbind'. <eralston@computer.org>   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 --[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below![?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 1498 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt=ver,jump
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrolloff=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nowrap
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noequalalways
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset splitbelow
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST using two windows open to one buffer, one extra empty window
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c^WtH3k^WtHyybp^Wt^Wjyy^Wbp:
:" ***** done with tests *****
:w! test.out    " Write contents of this file
:qa!ENDTESTstart of window 1. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02test37.in                                                                       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!ENDTESTstart of window 11122
test37.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c:w! test.out             " Write contents of this file
:qa!ENDTESTtest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name][?25h[?0ctest37.in                                                                       [No Name]                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cresize 8
[?25l[?1c:" ***** done with tests *****w! test.out             " Write contents of this file
:qa!ENDTESTstart of window 1
. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
test37.in                                                                       :" ***** done with tests *****:w! test.out             " Write contents of this fileqa!ENDTESTstart of window 1[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 1$/
[?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0ctest37.in                                                                       test37.in                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cresize 7
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 2$/
[?25l[?1cend of window 1start of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03[?25h[?0c[?25l[?1c
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" -- start of tests --
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling down
[?25l[?1c[?25h[?0c

[?25l[?1c. 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 09[?25h[?0ctest37.in                                                                       [No Name]                                                                       [?25l[?1c
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[+][?25h[?0c[?25l[?1c0[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?25h[?0c[?25l[?1c1[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   


[?25l[?1c. 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 15[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c2[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling up
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08440505060607070808090900[?25h[?0ctest37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?25h[?0c[?25l[?1c4[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?25h[?0c[?25l[?1c5[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1cstart 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
[?25h[?0ctest37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?25h[?0c[?25l[?1c6[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c7[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST horizontal scrolling
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt+=hor
[?25l[?1c[?25h[?0c[?25l[?1c05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c4 line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
5 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0656789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1cUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415UTSRQPONMLKJIHGREDCBA9876543210 09101112131415[?25h[?0c[?25l[?1c. 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 15[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   
test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt-=hor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" ****** tests using two different buffers *****
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       test37.in                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cstart of window 20000000000[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of window 2$/,/^end of window 2$/y
[?25l[?1c18 lines yanked[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1ctest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name][?25h[?0ctest37.in                                                                       [No Name]                                                                       test37.in                                                                       [No Name]                                                                       [?25l[?1c4 more lines[+][?25h[?0c


[?25l[?1c18 more linesstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c/[?25h[?0c^start of window 1$/
[?25l[?1csearch hit BOTTOM, continuing at TOPENDTESTstart of window 1010102020303[?25h[?0c[?25l[?1c
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 2$/
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" -- start of tests --
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling down
[?25l[?1c[?25h[?0c


[?25l[?1c. 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[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
[?25h[?0c[?25l[?1c0[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
[?25h[?0c[?25l[?1c1[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   

[?25l[?1c. 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 16[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
[?25h[?0c[?25l[?1c2[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling up
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c440505060607070808090900. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?25h[?0c[?25l[?1c4[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?25h[?0c[?25l[?1c5[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1cstart 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
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?25h[?0c[?25l[?1c6[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c7[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST horizontal scrolling
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt+=hor
[?25l[?1c[?25h[?0c[?25l[?1c05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
46 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
56 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06UTSRQPONMLKJIHGREDCBA9876543210 07[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1cUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415

UTSRQPONMLKJIHGREDCBA9876543210 0910111213141516[?25h[?0c[?25l[?1c. 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[?25h[?0c[?25l[?1c[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   
test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt-=hor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST syncbind
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below!
STARTTEST:so small.vim:set noscrollbind:set scrollopt=ver,jump:set scrolloff=2:set nowrap[?25h[?0c


test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cstart of window 201010202[?25h[?0c[?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0c[?25l[?1c. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1czt::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] [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0csyncbind
[?25l[?1c[?25h[?0c[?25l[?1c/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
:set scrollbind
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below!
STARTTEST
:so small.vimset noscrollbindset scrollopt=ver,jump
:set scrolloff=2set nowrap[?25h[?0c


test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0c[?25l[?1c. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1czt::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] [+]                                                                   [?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0csyncbind
[?25l[?1c[?25h[?0c[?25l[?1c/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
:set scrollbind
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1czt:
:set scrollbind
^Wj:
:resize 7. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
^Wj:
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" ***** done with tests *****
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out             " Write contents of this file
[?25l[?1c"test.out" [New File] 33 lines, 1329 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test37 = test61; then \
#	  if diff test.out test37.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test37.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test37.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test38.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 407 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTopq 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure that backspace works, no matter what termcap is used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset t_kD=^^? t_kb=^^H
[?25l[?1c^[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
[?25h[?0c[?25l[?1cTest 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[?25h[?0c[?25l[?1c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c
abcdefghijk      lmn    opq rstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0cset ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bs=2
[?25l[?1c[?25h[?0c[?25l[?1c 1
 A BCDEFGHIJ    KL        MNOPQR[?25h[?0c[?25l[?1c:[?25h[?0cka
[?25l[?1c[?25h[?0c[?25l[?1cabcdefghijk      lmn    opq rstuvwxyz[?25h[?0c
[?25l[?1c 1[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1cab      cdefghi jkl[?25h[?0c
[?25l[?1cAB......CDEFGHI.J[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cabcdefghijklmnopqrst[?25h[?0c
[?25l[?1cAB      IJKLMNO QR[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 13 lines, 107 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test38 = test61; then \
#	  if diff test.out test38.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test38.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test38.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test39.in
[?25h[?8c[?25h[?0c[?25l[?1c"test39.in" 118 lines, 2435 charactersTest Visual block mode commands
And test "U" in Visual mode, also on German sharp S.

#define BO_ALL      0x0001
#define BO_BS0x0002
#define BO_CRSR     0x0004

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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 75 lines, 2061 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:exe ":norm! 2k\<C-V>$gj\<Esc>"
:let cpos=getpos("'>")
:$put ='col:'.cpos[2].' off:'.cpos[3]
:"
:" block_insert when replacing spaces in front of the block with tabs
:set ts=8 sts=4 sw=4
:4,7y
Gp
:exe ":norm! f0\<C-V>2jI\<tab>\<esc>"
:/^the/,$w >> test.out
:qa!
ENDTESTline1line2line3

aaaaaa
bbbbbb
cccccc
dddddd

xaaa[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This only works when 'encoding' is "latin1", don't depend on the environment
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c:exe ":norm! 2k\<C-V>$gj\<Esc>"
:let cpos=getpos("'>")
:$put ='col:'.cpos[2].' off:'.cpos[3]
:"
:" block_insert when replacing spaces in front of the block with tabs
:set ts=8 sts=4 sw=4
:4,7y
Gp
:exe ":norm! f0\<C-V>2jI\<tab>\<esc>"
:/^the/,$w >> test.out
:qa!
ENDTESTline1line2line3

aaaaaa
bbbbbb
cccccc
dddddd

xaaa[?25h[?0c[?25l[?1c/[?25h[?0c^abcde
[?25l[?1cbbbb
cccc
dddd

yaaa
bbb

A23
4567

B23
4567

C23
4567

abcdefghijklm[?25h[?0c[?25l[?1c
:[?25h[?0c" Test shift-right of a block
[?25l[?1c[?25h[?0c[?25l[?1c
abcdefghijklm[?25h[?0cabcd[?25l[?1c[?25h[?0c[?25l[?1c
e
abcdefghijklm
abcd[?25h[?0c[?25l[?1c
e
abcdefghijklm
abcd[?25h[?0c[?25l[?1c
3 lines >ed 1 time        efghijklm
abcd        efghijklm
abcd        efghijklm[?25h[?0c     ef[?25l[?1c[?25h[?0c[?25l[?1cg[?25h[?0c[?25l[?1chg[?25h[?0c[?25l[?1cih[?25h[?0c[?25l[?1cji[?25h[?0c[?25l[?1c        ghijklm        ghijklm[?25h[?0c[?25l[?1c:[?25h[?0c" Test shift-left of a block
[?25l[?1c[?25h[?0c[?25l[?1c
abcdefghijklm[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci[?25h[?0c[?25l[?1c [?25h[?0c[?25l[?1c


3 lines <ed 1 timeef    efghijklmi[?25h[?0c[?25l[?1c:[?25h[?0c" Test block-insert
[?25l[?1c[?25h[?0c
a[?25l[?1c[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1c
ab
ab
abxyzbcdefghijklm
axyzbcd
axyzbcd
axyzbcd[?25h[?0c
a[?25l[?1c:[?25h[?0c" Test block-replace
[?25l[?1c[?25h[?0c


abcd[?25l[?1c[?25h[?0c[?25l[?1ce[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cbccf[?25h[?0c[?25l[?1ccddg[?25h[?0c[?25l[?1cd  h[?25h[?0c[?25l[?1cqqqq
axyzqqqq
axyzqqqq
abcdqqqq[?25h[?0c
axyz[?25l[?1c:[?25h[?0c" Test block-change
[?25l[?1c[?25h[?0c

[?25l[?1c[?25h[?0c[?25l[?1cj[?25h[?0c[?25l[?1ci[?25h[?0c[?25l[?1c     ghijkl[?25h[?0c[?25l[?1cef  gkl[?25h[?0c[?25l[?1cmnomnomno[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$w! test.out
[?25l[?1c"test.out" [New File] 5 lines, 108 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Test block-insert using cursor keys for movement
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^aaaa/
[?25l[?1csearch hit BOTTOM, continuing at TOPaaaaaa
bbbbbb
cccccc
ddddddsearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>jjjlllI\<Right>\<Right>  \<Esc>"
[?25l[?1c  aaa
bbb  bbb
ccc  ccc
ddd  ddd[?25h[?0c[?25l[?1c:[?25h[?0c/^aa/,/^$/w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 37 characters appended[?25h[?0c[?25l[?1c/[?25h[?0cxaaa$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-V>jjjI<>\<Left>p\<Esc>"
[?25l[?1c<p>xaaa
<p>bbbb
<p>cccc
<p>dddd[?25h[?0c[?25l[?1c:[?25h[?0c/xaaa$/,/^$/w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 33 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the last <C-v>$
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^A23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$Aab\<Esc>"
[?25l[?1cab
4567ab[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 14 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the middle <C-v>$ (1)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^B23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$hAab\<Esc>"
[?25l[?1cab
4567ab[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the middle <C-v>$ (2)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^C23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$hhAab\<Esc>"
[?25l[?1cab
456ab7[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 14 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block insert when virtualedit=all and utf-8 encoding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all enc=utf-8
[?25l[?1caaa  aaa
bbb  bbb
ccc  ccc
ddd  ddd

<p>xaaa
<p>bbbb
<p>cccc
<p>dddd

yaaa
<bf><bf><bf>
bbb

A23ab
4567ab

B23 ab
4567ab

C23ab
456ab7[?25h[?0c[?25l[?1c


:[?25h[?0c/\t\tline
[?25l[?1csearch hit BOTTOM, continuing at TOPline1line2line3search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 07l\<C-V>jjIx\<Esc>"
[?25l[?1cxxx[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 4 lines, 49 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block append when virtualedit=all
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 012l\<C-v>jjAx\<Esc>"
[?25l[?1cx   line1x   line2x   line3[?25h[?0c[?25l[?1c:[?25h[?0cset ve= enc=latin1
[?25l[?1cx     x   line1x     x   line2x     x   line3

aaa  aaa
bbb  bbb
ccc  ccc
ddd  ddd

<p>xaaa
<p>bbbb
<p>cccc
<p>dddd

yaaa
bbb

A23ab
4567ab

B23 ab
456ab7

axyzbcdefghijklm
axyzqqqq   mnoghijklm
axyzqqqqef mnoghijklm
axyzqqqqefgmnoklm
abcdqqqqijklm[?25h[?0c[?25l[?1c
the [?25l[?1c
:[?25h[?0c" VU must uppercase a whole line
[?25l[?1c[?25h[?0c[?25l[?1c
[?25l[?1c
:[?25h[?0c" same, when it's the last line in the buffer
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
[?25l[?1c
:[?25h[?0c" Uppercase two lines
[?25l[?1c[?25h[?0c[?25l[?1c
blah didoh dut[?25h[?0c[?25l[?1c
doh dut [?25h[?0c[?25l[?1cblah di t[?25h[?0c[?25l[?1c
BLAH DIDOH DUT[?25h[?0c[?25l[?1c
:[?25h[?0c" Uppercase part of two lines
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c
333the yo[?25h[?0c[?25l[?1cut[?25h[?0c[?25l[?1cUTUSSEUU END
333THE YOUTU[?25h[?0c[?25l[?1c

:[?25h[?0c" visual replace using Enter or NL
[?25l[?1c[?25h[?0c
[?25l[?1c123456789
123456789
123456789[?25h[?0c
12345[?25l[?1c[?25h[?0c[?25l[?1c66[?25h[?0c[?25l[?1c789[?25h[?0c[?25l[?1c789
12345
789
[?25h[?0c[?25l[?1c98765
98765
98765[?25h[?0c
98[?25l[?1c[?25h[?0c[?25l[?1c7
987
98[?25h[?0c[?25l[?1c^M65
98^M65
98^M65[?25h[?0c
98
[?25l[?1c123456789
123456789
123456789[?25h[?0c
12345[?25l[?1c[?25h[?0c[?25l[?1c66[?25h[?0c[?25l[?1c789[?25h[?0c[?25l[?1c789
12345
789
[?25h[?0c[?25l[?1c98765
98765
98765[?25h[?0c
98[?25l[?1c[?25h[?0c[?25l[?1c7
987
98[?25h[?0c[?25l[?1c^@65
98^@65
98^@65[?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test cursor position. When ve=block and Visual block mode and $gj
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=block
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 2k\<C-V>$gj\<Esc>"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet cpos=getpos("'>")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='col:'.cpos[2].' off:'.cpos[3]
[?25l[?1c
col:4 off:0[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" block_insert when replacing spaces in front of the block with tabs
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ts=8 sts=4 sw=4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c4,7y
[?25l[?1c4 lines yanked[?25h[?0c[?25l[?1c
4 more lines
4 more lines[?25h[?0c[?25l[?1c
#define BO_ALL      0x0001[?25h[?0c[?25l[?1c
:[?25h[?0cexe ":norm! f0\<C-V>2jI\<tab>\<esc>"
[?25l[?1c    0x0001
#define BO_BS0x0002
#define BO_CRSR0x0004[?25h[?0c[?25l[?1c


:[?25h[?0c/^the/,$w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 31 lines, 322 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test39 = test61; then \
#	  if diff test.out test39.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test39.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test39.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test40.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for "*Cmd" autocommands[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1455 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start/,$w! Xxx^I^I" write lines below to Xxx
[?25l[?1c"Xxx" [New File] 3 lines, 32 characters written[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadCmd XtestA 0r Xxx|$del
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce XtestA^I^I^I" will read text of Xxd instead
[?25l[?1c"Xxx" 3 lines, 32 charactersstart of Xxx        test40end of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau BufWriteCmd XtestA call append(line("$"), "write")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw^I^I^I^I" will append a line to the file
[?25l[?1cwrite[?25h[?0c[?25l[?1c:[?25h[?0cr XtestA^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestA[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" now we have:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileReadCmd XtestB '[r Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2r XtestB^I^I^I" will read Xxx below line 2 instead
[?25l[?1c"Xxx" 3 lines, 32 charactersstart of Xxxtest40
end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWriteCmd XtestC '[,']copy $
[?25l[?1c[?25h[?0c[?25l[?1ctest401[?25h[?0c[?25l[?1c:[?25h[?0c4,5w XtestC^I^I^I" will copy lines 4 and 5 to the end
[?25l[?1c        test401end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0cr XtestC^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestC[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 8^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 9^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FILEAppendCmd XtestD '[,']w! test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>XtestD^I^I^I" will write all lines to test.out
[?25l[?1c"test.out" [New File] 9 lines, 91 characters written[?25h[?0c[?25l[?1c:[?25h[?0c$r XtestD^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestD[?25h[?0c[?25l[?1c:[?25h[?0c$w >>test.out^I^I^I" append "end of Xxx" to test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadCmd XtestE 0r test.out|$del
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp XtestE^I^I^I" split window with test.out
[?25l[?1c"test.out" 10 lines, 102 charactersend of XxxXtestE                                                                          end of Xxxwrite        test401end of XxxXtestA                                                                          [?25h[?0c[?25l[?1casdf[+][?25h[?0cXtestE [+]                                                                      XtestA                                                                          [?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWriteCmd XtestE w! test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwall^I^I^I^I" will write other window to test.out
[?25l[?1c"test.out" 11 lines, 107 characters written   [?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iasdf
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 8^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 9^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 10^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 11^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test40 = test61; then \
#	  if diff test.out test40.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test40.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test40.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test41.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for writing and reading a file of over 100 Kbyte[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/os_unix.o os_unix.c
[New File] 13 lines, 196 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cThis is the start
This is the leaderThis is the middleThis is the trailerThis is the end[?25h[?0c[?25l[?1c3000 more linestrailer
This is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailer[?25h[?0c[?25l[?1cleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader[?25h[?0c
[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 6005 lines, 117092 characters written[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest
[?25l[?1c"Xtest" 6005 lines, 117092 charactersThis is the start
This is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leader[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 18 characters written[?25h[?0c[?25l[?1cThis 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[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 19 characters appended[?25h[?0c[?25l[?1cThis 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
[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 16 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test41 = test61; then \
#	  if diff test.out test41.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test41.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test41.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test42.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for writing and reading a file starting with a BOM[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2116 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
utf-8
utf-8
utf-8-err
utf-8~@err
ucs-2
ucs-2le
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1c: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
<fe><fe>latin-1
utf-8
<feff>utf-8
utf-8-err
<feff>utf-8<80>err
ucs-2
<fe><ff>^@u^@c^@s^@-^@2^@
ucs-2le
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?25h[?0c[?25l[?1c:[?25h[?0cset fileencodings=ucs-bom,latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix ffs=unix           " This changes the file for DOS and MAC
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Write the test files
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^latin-1$/+1w! Xtest0
[?25l[?1c"Xtest0" [New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^utf-8$/+1w! Xtest1
[?25l[?1c"Xtest1" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^utf-8-err$/+1w! Xtest2
[?25l[?1c"Xtest2" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-2$/+1w! Xtest3
[?25l[?1c"Xtest3" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-2le$/+1w! Xtest4
[?25l[?1c"Xtest4" [New File] 1 line, 17 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Need to add a NUL byte after the NL byte
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest4                      " Ignore change from setting 'ff'
[?25l[?1c"Xtest4" 1 line, 17 characters<ff><fe>u^@c^@s^@-^@2^@l^@e^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c^@[?25h[?0c[?25l[?1c:[?25h[?0cset noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtest4" [Incomplete last line] 2 lines, 18 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset ffs& nobinary              " Allow default test42.in format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce #
[?25l[?1c"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-1utf-8utf-8utf-8-errutf-8<80>errucs-2þÿ^@u^@c^@s^@-^@2^@ucs-2leÿþu^@c^@s^@-^@2^@l^@e^@ucs-4[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix                    " Format for files to write
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-4$/+1w! Xtest5
[?25l[?1c"Xtest5" [converted][New File] 1 line, 30 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-4le$/+1w! Xtest6
[?25l[?1c"Xtest6" [converted][New File] 1 line, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Need to add three NUL bytes after the NL byte
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest6                      " ! for when setting 'ff' is a change
[?25l[?1c"Xtest6" 1 line, 33 characters<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c
~   [?25l[?1c
^@^@^@[?25h[?0c[?25l[?1c:[?25h[?0cset noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtest6" [Incomplete last line] 2 lines, 36 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset nobin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce #
[?25l[?1c"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-1utf-8utf-8utf-8-errutf-8<80>errucs-2þÿ^@u^@c^@s^@-^@2^@ucs-2leÿþu^@c^@s^@-^@2^@l^@e^@ucs-4[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check that editing a latin-1 file doesn't see a BOM
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest0
[?25l[?1c"Xtest0" [converted] 1 line, 12 charactersþþlatin-1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0credir! >test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=latin1

nobomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cþþlatin-1
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 12 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset bomb fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest0x
[?25l[?1c"Xtest0x" [converted][New File] 1 line, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest1
[?25l[?1c"Xtest1" 1 line, 9 charactersutf-8[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-8

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cutf-8
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest1x
[?25l[?1c"Xtest1x" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check utf-8 with an error (will fall back to latin-1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest2
[?25l[?1c"Xtest2" [converted] 1 line, 17 charactersutf-8<80>err
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=latin1

nobomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cutf-8<80>err
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 17 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest2x
[?25l[?1c"Xtest2x" [New File] 1 line, 17 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest3
[?25l[?1c"Xtest3" [converted] 1 line, 8 charactersucs-2[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-16

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-2
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest3x
[?25l[?1c"Xtest3x" [converted][New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-2le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest4
[?25l[?1c"Xtest4" [converted] 1 line, 10 charactersle
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-16le

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-2le
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 8 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-2le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest4x
[?25l[?1c"Xtest4x" [converted][New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest5
[?25l[?1c"Xtest5" [converted] 1 line, 10 characters4[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=ucs-4

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-4
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest5x
[?25l[?1c"Xtest5x" [converted][New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-4le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest6
[?25l[?1c"Xtest6" [converted] 1 line, 12 charactersle
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=ucs-4le

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-4le
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 8 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-4le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest6x
[?25l[?1c"Xtest6x" [converted][New File] 1 line, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check the files written with BOM
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 35 lines, 275 characters  fileencoding=latin1nobomb<fe><fe>latin-1  fileencoding=utf-8  bombutf-8  fileencoding=latin1nobomb<feff>utf-8<80>err  fileencoding=utf-16  bombucs-2  fileencoding=utf-16le[?25h[?0c[?25l[?1c:[?25h[?0c$r Xtest0x
[?25l[?1c"Xtest0x" 1 line, 10 charactersbomb
ucs-2lefileencoding=ucs-4
  bomb
ucs-4fileencoding=ucs-4le
  bomb
ucs-4le
<fe><fe>latin-1[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest1x
[?25l[?1c"Xtest1x" 1 line, 9 characters
<feff>utf-8[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest2x
[?25l[?1c"Xtest2x" 1 line, 17 characters
utf-8<80>err[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest3x
[?25l[?1c"Xtest3x" 1 line, 14 characters
<fe><ff>^@u^@c^@s^@-^@2^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest4x
[?25l[?1c"Xtest4x" [Incomplete last line] 2 lines, 18 characters
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest5x
[?25l[?1c"Xtest5x" 1 line, 28 characters^@
^@^@<fe><ff>^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest6x
[?25l[?1c"Xtest6x" [Incomplete last line] 2 lines, 36 characters
<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?25h[?0c[?25l[?1c
:[?25h[?0cset nobin ff&               " Write the file in default format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" 44 lines, 409 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test42 = test61; then \
#	  if diff test.out test42.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test42.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test42.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test43.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 268 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^1
[?25l[?1c
1 a aa abb abbccc[?25h[?0c[?25l[?1c
/[?25h[?0ca*b\{2}c\+/e
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\Md\*e\{2}f\+/e
[?25l[?1c
2 d dd dee deefff[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cg\*h\{2}i\+/e
[?25l[?1c
3 g gg ghh ghhiii[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\mj*k\{2}l\+/e
[?25l[?1c
4 j jj jkk jkklll[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\vm*n{2}o+/e
[?25l[?1c
5 m mm mnn mnnooo[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\V^aa$
[?25l[?1c
6 x ^aa$ x[?25h[?0c[?25l[?1caa$ x[?25h[?0c[?25l[?1c
:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\v(a)(b)\2\1\1/e
[?25l[?1c
7 (a)(b) abbaa[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\V[ab]\(\[xy]\)\1
[?25l[?1c
8 axx [ab]xx[?25h[?0c[?25l[?1cab]x[?25h[?0c[?25l[?1c
:[?25h[?0c$
[?25l[?1c9 foobar[?25h[?0c[?25l[?1c
:[?25h[?0cset undolevels=100
[?25l[?1c[?25h[?0c[?25l[?1c?[?25h[?0cbar?
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

1 more line; before #2  0 seconds agobar[?25h[?0c[?25l[?1c
9 foo
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?^1?,$w! test.out
[?25l[?1c"test.out" [New] 11L, 137C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test43 = test61; then \
#	  if diff test.out test43.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test43.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test43.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test44.in
[?25h[?8c[?25h[?0c[?25l[?1c"test44.in" 81 lines, 1492 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
f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with multi-byte encoding and various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
:new
:$put =['dog(a', 'cat(']
/(/e+
"ayn:bd!
:$put =''
G"ap
: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
:new
:$put =['dog(a', 'cat(']
/(/e+
"ayn:bd!
:$put =''
G"ap
: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
:[?25h[?0c" Test \%u, [\u] and friends
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" c
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%u20ac
[?25l[?1c
:[?25h[?0c" d
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\u4f7f\u5929]\+
[?25l[?1c
:[?25h[?0c" e
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%U12345678
[?25l[?1c
:[?25h[?0c" f
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\U1234abcd\u1234\uabcd]
[?25l[?1c
:[?25h[?0c" g
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%d21879b
[?25l[?1c
:[?25h[?0c" j Test backwards search from a multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cx
[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" l Test what 7.3.192 fixed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^l
[?25l[?1c
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
g abb
test.out [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0c$put =['dog(a', 'cat(']
[?25l[?1cdog(acat([+][?25h[?0c[?25l[?1c/[?25h[?0c(/e+
[?25l[?1c/(/e+1
[?25h[?0c[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cbd!
[?25l[?1c1 a aa abb abbcc
2 d dd dee deeff
3 g gg ghh ghhii
e y
[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1c
cat(
[?25h[?0c[?25l[?1c
:[?25h[?0cw!
[?25l[?1c"test.out" 25L, 271C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test44 = test61; then \
#	  if diff test.out test44.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test44.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test44.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test45.in
[?25h[?8c[?25h[?0c[?25l[?1c"test45.in" 90 lines, 1953 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("."))[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for folding. vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 73 lines, 1820 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:new
iTest fdm=indent and :move bug END
line2Test fdm=indent STARTline3line4^[
:set fdm=indent
:1m1
2jzc:m0
:%w >> test.out
:qa!
ENDTEST

1 aa
2 bb
3 cc
4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg
8 hh
9 ii
a jj[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" We also need the +syntax feature here.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("syntax")
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   w! test.out

[?25l[?1c:  [?25h[?0c   qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:new
iTest fdm=indent and :move bug END
line2Test fdm=indent START[?25h[?0c[?25l[?1c:[?25h[?0c" basic test if a fold can be created, opened, moving to the end and closed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^1
[?25l[?1c[?25h[?0c[?25l[?1c+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "manual " . getline(foldclosed(".")))
[?25l[?1c[?25h[?0c[?25l[?1c1 aa2 bb3 cc4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg
8 hh
9 ii
a jj[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldclosed("."))
[?25l[?1c[?25h[?0c

[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline(foldclosed(".")))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test folding with markers.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=marker fdl=1 fdc=3
[?25l[?1c   :new
   iTest fdm=indent and :move bug END
   line2
           Test fdm=indent START
           line3
           line4^[
   :set fdm=indent
   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa   2 bb   3 cc-  4 dd {{{
|- 5 ee {{{ }}}
|  6 ff }}}
   7 gg
   8 hh
   9 ii
   a jj[?25h[?0c[?25l[?1c/[?25h[?0c^5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "marker " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c{{ |  6 ff }}}[?25h[?0c[?25l[?1c-{|
|
|
|[?25h[?0c[?25l[?1c


:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c6 ff }}}
 7 gg
 8 hh[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test folding with indent
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=indent sw=2
[?25l[?1c-++---  3 lines: Test fdm=indent START-----------------------------------------:set fdm=indent:1m12jzc:m0%w >> test.out:qa!ENDTEST1 aa2 bb3 cc4 dd {{{5 ee {{{ }}}
 {{{  6 ff }}}  6 ff }}}
  7 gg 8 hh9 iia jj[?25h[?0c[?25l[?1c/[?25h[?0c^2 b
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c
-  2 bb[?25h[?0c[?25l[?1c
|-    3 cc[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "indent " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test syntax folding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=syntax fdl=0
[?25l[?1c          Test fdm=indent START        line3        line4^[:set fdm=indent1m12jzc:m0:%w >> test.out:qa!ENDTEST
   1 aa  2 bb    3 cc4 dd {{{5 ee {{{ }}}{{{6 ff }}}6 ff }}}7 gg8 hh[?25h[?0c[?25l[?1c:[?25h[?0csyn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
[?25l[?1c++--  8 lines: 4 dd ----------------------------------------------------------a jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd1 start="ee" end="ff" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd2 start="gg" end="hh" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd3 start="commentstart" end="commentend" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c   1 aa
   marker 2
   1
   1
   0
   indent 2
   1[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "folding " . getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c
--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[?25h[?0c[?25l[?1c commentend- 
|-

| 
  
  
  
  
  
  [?25h[?0c[?25l[?1c:[?25h[?0cset fdl=1
[?25l[?1c++---  3 lines: 5 ee --------------------------------------------------------- 6 ff }}}++---  2 lines: 7 gg----------------------------------------------------------9 ii  a jj
  b kk
 lastmanual 1 aa-13 cc1 aamarker 21[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdl=0
[?25l[?1c++--  8 lines: 4 dd commentstart  commentend----------------------------------  a jj b kk  last manual 1 aa-13 cc1 aarker 2110indent[?25h[?0c[?25l[?1c
-4 dd {{{commentstart  commentend|-5 ee {{{ }}}
||{{{||6 ff }}}
|6 ff }}}|-7 gg
||8 hh
|9 iia jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c   :1m1
   2jzc:m0
   :%w >> test.out
   :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[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test expression folding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun Flvl()
[?25l[?1c
:  [?25h[?0c  lgcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/spellfile.o spellfile.c
et l = getline(v:lnum)

[?25l[?1c:  [?25h[?0c  if l =~ "bb$"

[?25l[?1c:    [?25h[?0c    return 2

[?25l[?1c:    [?25h[?0c  elseif l =~ "gg$"

[?25l[?1c:    [?25h[?0c    return "s1"

[?25l[?1c:    [?25h[?0c  elseif l =~ "ii$"

[?25l[?1c:    [?25h[?0c    return ">2"

[?25l[?1c:    [?25h[?0c  elseif l =~ "kk$"

[?25l[?1c:    [?25h[?0c    return "0"

[?25l[?1c:    [?25h[?0c  endif

[?25l[?1c:  [?25h[?0c  return "="

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa
     2 bb
       3 cc
-  4 dd {{{commentstart  commentend
|- 5 ee {{{ }}}
|| {{{[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=expr fde=Flvl()
[?25l[?1c++-- 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---------------------------------------------------~                                                                            ~                                                                            [?25h[?0c[?25l[?1c/[?25h[?0cbb$
[?25l[?1csearch 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[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "expr " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0chh$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cii$
[?25l[?1c-9 ii||a jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ckk$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^last/+1,$w! test.out
[?25l[?1c"test.out" [New File] 18 lines, 96 characters written[?25h[?0c[?25l[?1c:[?25h[?0cdelfun Flvl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c  
  
  
  ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            [No Name]                                                                       5 ee {{{ }}}{{{6 ff }}}|6 ff }}}|7 gg 8 hh
|-9 ii
||a jjb kklast
test45.in [+]                                                                   [?25h[?0c[?25l[?1cTest fdm=indent and :move bug ENDline2        Test fdm=indent START        line3        line4[+][?25h[?0c[?25l[?1c:[?25h[?0cset fdm=indent
[?25l[?1c++--  3 lines: Test fdm=indent START------------------------------------------~                                                                            ~                                                                            [?25h[?0c[?25l[?1c:[?25h[?0c1m1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cm0
[?25l[?1c3 lines moved++--  3 lines: Test fdm=indent START------------------------------------------Test fdm=indent and :move bug END
 line2[?25h[?0c[?25l[?1c:[?25h[?0c%w >> test.out
[?25l[?1c"test.out" 5 lines, 77 characters appendedtest.out [+] [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test45 = test61; then \
#	  if diff test.out test45.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test45.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test45.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test48.in
[?25h[?8c[?25h[?0c[?25l[?1c"test48.in" 83 lines, 1658 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 <CR> 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cThis is a test of 'virtualedit'.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 61 lines, 1442 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set display=
:"
:"   Test for ^Y/^E due to bad w_virtcol value, reported by
:"   Roy <royl@netropolis.net>.
^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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswf
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c65 fewer linesthis is a test
"r"
"r"
a^Vb^Msd
abcv6efi.him0kl


~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               65 fewer lines[?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Insert "keyword keyw", ESC, C CTRL-N, shows "keyword ykeyword".
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    Repeating CTRL-N fixes it. (Mary Ellen Foster)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cw
[?25l[?1c[?25h[?0c[?25l[?1c$Scanning tags.
The only matchword[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Using "C" then then <CR> moves the last remaining character to the next
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    line.  (Mary Ellen Foster)
[?25l[?1c[?25h[?0c
[?25l[?1c/[?25h[?0care
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c$are belong to vim
1 2 3 4 5 6
'i
'C
'a
'A
'D'this is a test

"r"     
a^Vb^Msdabcv6efi.him0kl[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   When past the end of a line that ends in a single character "b" skips
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    that word.
[?25l[?1c[?25h[?0c
[?25l[?1c$7[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'i' works
[?25l[?1c[?25h[?0c
'i'   [?25l[?1c<-- should be 3 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'C' works
[?25l[?1c[?25h[?0c
'C'   [?25l[?1c$<-- should be 3 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'a' works
[?25l[?1c[?25h[?0c
'a'   [?25l[?1c <-- should be 4 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'A' works
[?25l[?1c[?25h[?0c
'A'   [?25l[?1c<-- should be 0 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'D' works
[?25l[?1c[?25h[?0c
'D'   [?25l[?1c<-- 'D' should be intact[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test for yank bug reported by Mark Waggoner.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=block
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1caaablock of 4 lines yanked[?25h[?0c[?25l[?1c3 more linesa
aa [?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test "r" beyond the end of the line
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^"r"
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c"r"    [?25l[?1cx[?25h[?0c[?25l[?1cx<-- should be 'x'[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test "r" on a tab
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Note that for this test, 'ts' must be 8 (the default).
[?25l[?1c[?25h[?0c
"r"  [?25l[?1cx[?25h[?0c[?25l[?1cx  <-- should be '  x  '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test to make sure 'x' can delete control characters
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset display=uhex
[?25l[?1c<16>b<0d>sd[?25h[?0c
[?25l[?1c<16>b<0d>sd[?25h[?0c[?25l[?1cb<0d>sd[?25h[?0c[?25l[?1c<0d>sd[?25h[?0c[?25l[?1csd[?25h[?0c[?25l[?1cd[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[This line should contain only the text between the brackets.][?25h[?0c[?25l[?1c:[?25h[?0cset display=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test for ^Y/^E due to bad w_virtcol value, reported by
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Roy <royl@netropolis.net>.
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c   [?25l[?1cv[?25h[?0cv   [?25l[?1ci[?25h[?0ci   [?25l[?1cm   <-- should show the name of a noted text editor[?25h[?0c
[?25l[?1c[?25h[?0c    [?25l[?1c6[?25h[?0c6   [?25l[?1c.[?25h[?0c.   [?25l[?1c0   <-- and its version number[?25h[?0c[?25l[?1c
[?25h[?0c
    [?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for yanking and pasting using the small delete register
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^foo
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c, bar[?25h[?0c, [?25l[?1c[?25h[?0c[?25l[?1cba[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cfoo[?25h[?0c
keyw[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 23 lines, 479 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test48 = test61; then \
#	  if diff test.out test48.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test48.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test48.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test51.in
[?25h[?8c[?25h[?0c[?25l[?1c"test51.in" 36 lines, 809 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for ":highlight". vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 31 lines, 747 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" basic test if ":highlight" doesn't crash
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chighlight
[?25l[?1c
SpecialKey     xxx term=bold cterm=bold ctermfg=4 guifg=Cyan

EndOfBuffer    xxx links to NonText

NonTextxxx term=bold cterm=bold ctermfg=4 gui=bold guifg=Blue

Directory      xxx term=bold cterm=bold ctermfg=6 guifg=Cyan

ErrorMsgxxx term=standout cterm=bold ctermfg=7 ctermbg=1 guifg=White

guibg=Red

IncSearch      xxx term=reverse cterm=reverse gui=reverse

Searchxxx term=reverse ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

MoreMsgxxx term=bold cterm=bold ctermfg=2 gui=bold guifg=SeaGreen

ModeMsgxxx term=bold cterm=bold gui=bold

LineNrxxx term=underline cterm=bold ctermfg=3 guifg=Yellow

CursorLineNr   xxx term=bold cterm=bold ctermfg=3 gui=bold guifg=Yellow

Questionxxx term=standout cterm=bold ctermfg=2 gui=bold guifg=Green

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 cterm=bold ctermfg=5 gui=bold guifg=Magenta

Visualxxx term=reverse cterm=reverse guibg=DarkGrey

VisualNOS      xxx term=bold,underline cterm=bold,underline gui=bold,underline

WarningMsg     xxx term=standout cterm=bold ctermfg=1 guifg=Red

WildMenuxxx term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

Foldedxxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=DarkGrey

FoldColumn     xxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=Grey

DiffAddxxx term=bold ctermbg=4 guibg=DarkBlue

DiffChange     xxx term=bold ctermbg=5 guibg=DarkMagenta

DiffDelete     xxx term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=Blue

guibg=DarkCyan

DiffTextxxx term=reverse cterm=bold ctermbg=1 gui=bold guibg=Red

SignColumn     xxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=Grey

Concealxxx ctermfg=7 ctermbg=0 guifg=LightGrey guibg=DarkGrey

SpellBadxxx term=reverse ctermbg=1 gui=undercurl guisp=Red

SpellCapxxx term=reverse ctermbg=4 gui=undercurl guisp=Blue

SpellRare      xxx term=reverse ctermbg=5 gui=undercurl guisp=Magenta

SpellLocal     xxx term=underline ctermbg=6 gui=undercurl guisp=Cyan

Pmenuxxx ctermfg=0 ctermbg=5 guibg=Magenta

PmenuSelxxx cterm=bold ctermfg=0 ctermbg=0 guibg=DarkGrey

PmenuSbar      xxx ctermbg=7 guibg=Grey

PmenuThumb     xxx ctermbg=7 guibg=White

TabLinexxx term=underline cterm=bold,underline ctermfg=7 ctermbg=0

gui=underline guibg=DarkGrey

TabLineSel     xxx term=bold cterm=bold gui=bold

TabLineFill    xxx term=reverse cterm=reverse gui=reverse

CursorColumn   xxx term=reverse ctermbg=0 guibg=Grey40

CursorLine     xxx term=underline cterm=underline guibg=Grey40

ColorColumn    xxx term=reverse ctermbg=1 guibg=DarkRed

Cursorxxx guifg=bg guibg=fg

lCursorxxx guifg=bg guibg=fg

MatchParen     xxx term=reverse ctermbg=6 guibg=DarkCyan

Normalxxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Search
[?25l[?1c
Searchxxx term=reverse ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c" test setting colors.
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0c" test clearing one color and all doesn't generate error or warning
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi NewGroup term=bold cterm=italic ctermfg=DarkBlue ctermbg=Grey gui= guifg=#0

0ff00 guibg=Cyan
[?25l[?1cE418: Illegal value: guifg=#00ff00Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2 term= cterm=
[?25l[?1cE418: Illegal value: cterm=

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group3 term=underline cterm=bold
[?25l[?1c:hi NewGroup
:hi Group2[?25h[?0c[?25l[?1c
:[?25h[?0credir! >test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi NewGroup
[?25l[?1c
NewGroupxxx term=bold cterm=italic ctermfg=4 ctermbg=7

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group3
[?25l[?1c
Group3xxx term=underline cterm=bold

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi clear NewGroup
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup
:hi NewGroup
:hi Group2[?25h[?0c[?25l[?1c
:[?25h[?0chi NewGroup
[?25l[?1c
NewGroupxxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2 NONE
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup[?25h[?0c[?25l[?1c
:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi clear
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0chi Group3
[?25l[?1c
Group3xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Crash term='asdf
[?25l[?1cE475: Invalid argument: term='asdf

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3[?25h[?0c[?25l[?1c
:[?25h[?0c" filter ctermfg and ctermbg, the numbers depend on the terminal
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 20 lines, 289 charactersNewGroup       xxx term=bold cterm=italic ctermfg=4 ctermbg=7Group2         xxx clearedGroup3         xxx term=underline cterm=boldNewGroup       xxx clearedGroup2         xxx clearedGroup2         xxx clearedGroup3         xxx clearedE475: Invalid argument: term='asdf
~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c%s/ctermfg=\d*/ctermfg=2/
[?25l[?1c2
[?25h[?0c[?25l[?1c:[?25h[?0c%s/ctermbg=\d*/ctermbg=3/
[?25l[?1c3
[?25h[?0c[?25l[?1c:[?25h[?0c" filter out possibly translated error message
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c%s/E475: [^:]*:/E475:/
[?25l[?1cterm='asdf[?25h[?0c[?25l[?1c:[?25h[?0c" fix the fileformat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq!
[?25l[?1c"test.out" 20 lines, 271 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test51 = test61; then \
#	  if diff test.out test51.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test51.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test51.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test53.in
[?25h[?8c[?25h[?0c[?25l[?1c"test53.in" 75 lines, 1763 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()

STARTTEST
:so small.vim
/^start:/
da"
0va'a'rx
02f`da`
0fXdi"
03f'vi'ry
:set quoteescape=+*-
di`
$F"va"oha"i"rz
:"
/^<begin
jfXdit
0fXdit
fXdat
0fXdat[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for string and html text objects. vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1237 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:put =match('abc', '$', 4, 1) " -1
:put =match('abc', '\zs', 0, 1) " 0
:put =match('abc', '\zs', 0, 2) " 1
:put =match('abc', '\zs', 0, 3) " 2
:put =match('abc', '\zs', 0, 4) " 3
:put =match('abc', '\zs', 0, 5) " -1
:put =match('abc', '\zs', 1, 1) " 1
:put =match('abc', '\zs', 2, 1) " 2
:put =match('abc', '\zs', 3, 1) " 3
:put =match('abc', '\zs', 4, 1) " -1
:/^start:/,/^end:/wq! test.out
ENDTEST

start: "wo\"rd\\" foo
'foo' 'bar' 'piep'
bla bla `quote` blah
out " in "noXno"
"'" 'blah' rep 'buh'
bla `s*`d-`+++`l**` b`la
voo "nah" sdf " asdf" sdf " sdf" sd

<begin>
-<b>asdf<i>Xasdf</i>asdf</b>-[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c[?25h[?0c[?25l[?1cfo[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c'foo'[?25h[?0c[?25l[?1c 'bar'[?25h[?0c[?25l[?1c
xxxxxxxxxxxx
[?25h[?0c
[?25l[?1cblah[?25h[?0c
[?25l[?1c"[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c' rep[?25h[?0c[?25l[?1cyyyyy[?25h[?0c[?25l[?1c:[?25h[?0cset quoteescape=+*-
[?25l[?1c[?25h[?0c[?25l[?1c` b`la[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c" sdf"[?25h[?0c[?25l[?1c" [?25h[?0c[?25l[?1c"[?25h[?0c[?25l[?1c asdf" sdf [?25h[?0c[?25l[?1cah" sdf "
voo "[?25h[?0c[?25l[?1czzzzzzzzzzzzzzzzzzzzzzzzzzzz
voo "[?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^<begin
[?25l[?1c[?25h[?0c
[?25l[?1c</i>asdf</b>-[?25h[?0c[?25l[?1c
-<b>asdX<i>a<i />sdf</i>asdf</b>-[?25h[?0c
[?25l[?1c</b>-[?25h[?0c[?25l[?1c
-<b>asdf<i>Xasdf</i>asdf</b>-
-<b>[?25h[?0c[?25l[?1casdf</b>-[?25h[?0c[?25l[?1c
-<b>asdX<i>as<b />df</i>asdf</b>-[?25h[?0c
[?25l[?1c
--[?25h[?0c[?25l[?1c
-<b>
-[?25h[?0c[?25l[?1c<b></b>[?25h[?0c[?25l[?1c
</begin>[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =matchstr(\"abcd\", \".\", 0, 2) " b
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \"..\", 0, 2) " bc
[?25l[?1c
bc[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)
[?25l[?1c
c[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \".\", 0, -1) " a
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0cput =match(\"abcd\", \".\", 0, 5) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match(\"abcd\", \".\", 0, -1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 2) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 3) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 4) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 1, 1) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 2, 1) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 3, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 0, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 0, 2) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 1, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 2, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 3, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 4, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 2) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 3) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 4) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 5) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 1, 1) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 2, 1) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 3, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 4, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0c/^start:/,/^end:/wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 45 lines, 284 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test53 = test61; then \
#	  if diff test.out test53.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test53.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test53.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test55.in
[?25h[?8c[?25h[?0c[?25l[?1c"test55.in" 586 lines, 12256 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])
:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for List and Dictionary types.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 580 lines, 12170 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =string(l)
: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:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun Test(...)
[?25l[?1c
:  [?25h[?0c:lang C

[?25l[?1c:  [?25h[?0c:" Creating List directly with different types

[?25l[?1c:  [?25h[?0c:let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:$put =string(l[-1])

[?25l[?1c:  [?25h[?0c:$put =string(l[-4])

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =string(l[-5])

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:" List slices

[?25l[?1c:  [?25h[?0c:$put =string(l[:])

[?25l[?1c:  [?25h[?0c:$put =string(l[1:])

[?25l[?1c:  [?25h[?0c:$put =string(l[:-2])

[?25l[?1c:  [?25h[?0c:$put =string(l[0:8])

[?25l[?1c:  [?25h[?0c:$put =string(l[8:-1])

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" List identity

[?25l[?1c:  [?25h[?0c:let ll = l

[?25l[?1c:  [?25h[?0c:let lx = copy(l)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =(l == ll) . (l isnot ll) . (l is ll) . (l == lx) . (l is lx) . (l

isnot lx)

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Creating Dictionary directly with different types

[?25l[?1c:  [?25h[?0c:let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},}

[?25l[?1c:  [?25h[?0c:$put =string(d) . d.1

[?25l[?1c:  [?25h[?0c:$put =string(sort(keys(d)))

[?25l[?1c:  [?25h[?0c:$put =string (values(d))

[?25l[?1c:  [?25h[?0c:for [key, val] in items(d)

[?25l[?1c:    [?25h[?0c:  $put =key . ':' . string(val)

[?25l[?1c:    [?25h[?0c:  unlet key val

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c:call extend  (d, {3:33, 1:99})

[?25l[?1c:  [?25h[?0c:call extend(d, {'b':'bbb', 'c':'ccc'}, "keep")

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  call extend(d, {3:333,4:444}, "error")

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:call filter(d, 'v:key =~ ''[ac391]''')

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Dictionary identity

[?25l[?1c:  [?25h[?0c:let dd = d

[?25l[?1c:  [?25h[?0c:let dx = copy(d)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =(d == dd) . (d isnot dd) . (d is dd) . (d == dx) . (d is dx) . (d

isnot dx)

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" removing items with :unlet

[?25l[?1c:  [?25h[?0c:unlet l[2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:let l = range(8)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:unlet l[:3]

[?25l[?1c:    [?25h[?0c:unlet l[1:]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:$put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:unlet d.c

[?25l[?1c:  [?25h[?0c:unlet d[-1]

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" removing items out of range: silently skip items that don't exist

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:1]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:3]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:4]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:5]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-1:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-2:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-3:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-4:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-5:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-6:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" assignment to a list

[?25l[?1c:  [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:let [va, vb] = l[2:3]

[?25l[?1c:  [?25h[?0c:$put =va

[?25l[?1c:  [?25h[?0c:$put =vb

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let [va, vb] = l

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let [va, vb] = l[1:1]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" manipulating a big Dictionary (hashtable.c has a border of 1000 entries)

[?25l[?1c:  [?25h[?0c:let d = {}

[?25l[?1c:  [?25h[?0c:for i in range(1500)

[?25l[?1c:    [?25h[?0c: let d[i] = 3000 - i

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c:$put =d[0] . ' ' . d[100] . ' ' . d[999] . ' ' . d[1400] . ' ' . d[1499]

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let n = d[1500]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =substitute(v:exception, '\v(.{14}).*( \d{4}).*', '\1\2', '')

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:" lookup each items

[?25l[?1c:  [?25h[?0c:for i in range(1500)

[?25l[?1c:    [?25h[?0c: if d[i] != 3000 - i

[?25l[?1c:      [?25h[?0c:  $put =d[i]

[?25l[?1c:      [?25h[?0c: endif

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c: let i += 1

[?25l[?1c:  [?25h[?0c:" delete even items

[?25l[?1c:  [?25h[?0c:while i >= 2

[?25l[?1c:    [?25h[?0c: let i -= 2

[?25l[?1c:    [?25h[?0c: unlet d[i]

[?25l[?1c:    [?25h[?0c:endwhile

[?25l[?1c:  [?25h[?0c:$put =get(d, 1500 - 100, 'NONE') . ' ' . d[1]

[?25l[?1c:  [?25h[?0c:" delete odd items, checking value, one intentionally wrong

[?25l[?1c:  [?25h[?0c:let d[33] = 999

[?25l[?1c:  [?25h[?0c:let i = 1

[?25l[?1c:  [?25h[?0c:while i < 1500

[?25l[?1c:    [?25h[?0c: if d[i] != 3000 - i

[?25l[?1c:      [?25h[?0c:  $put =i . '=' . d[i]

[?25l[?1c:      [?25h[?0c: else

[?25l[?1c:      [?25h[?0c:  unlet d[i]

[?25l[?1c:      [?25h[?0c: endif

[?25l[?1c:    [?25h[?0c: let i += 2

[?25l[?1c:    [?25h[?0c:endwhile

[?25l[?1c:  [?25h[?0c:$put =string(d)  " must be almost empty now

[?25l[?1c:  [?25h[?0c:unlet d

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Dictionary function

[?25l[?1c:  [?25h[?0c:let dict = {}

[?25l[?1c:  [?25h[?0c:func dict.func(a) dict

[?25l[?1c:    [?25h[?0c:  $put =a:a . len(self.data)

[?25l[?1c:    [?25h[?0c:endfunc

[?25l[?1c:    [?25h[?0c:let dict.data = [1,2,3]

[?25l[?1c:    [?25h[?0c:call dict.func("len: ")

[?25l[?1c:    [?25h[?0c:let x = dict.func("again: ")

[?25l[?1c:    [?25h[?0c:let Fn = dict.func

[?25l[?1c:    [?25h[?0c:call Fn('xxx')

[?25l[?1c:    [?25h[?0c:" 

[?25l[?1c:    [?25h[?0c:" Function in script-local List or Dict

[?25l[?1c:    [?25h[?0c:let g:dict = {}

[?25l[?1c:    [?25h[?0c:function g:dict.func() dict

[?25l[?1c:      [?25h[?0c:  $put ='g:dict.func'.self.foo[1].self.foo[0]('asdf')

[?25l[?1c:      [?25h[?0c:endfunc

[?25l[?1c:      [?25h[?0c:let g:dict.foo = ['-', 2, 3]

[?25l[?1c:      [?25h[?0c:call insert(g:dict.foo, function('strlen'))

[?25l[?1c:      [?25h[?0c:call g:dict.func()

[?25l[?1c:      [?25h[?0c:" 

[?25l[?1c:      [?25h[?0c:" Nasty: remove func from Dict that's being called (works)

[?25l[?1c:      [?25h[?0c:let d = {1:1}

[?25l[?1c:      [?25h[?0c:func d.func(a)

[?25l[?1c:[?25h[?0c:  return "a:". a:a

[?25l[?1c:[?25h[?0c:endfunc

[?25l[?1c:[?25h[?0c:$put =d.func(string(remove(d, 'func')))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Nasty: deepcopy() dict that refers to itself (fails when noref used

)
[?25l[?1c:[?25h[?0c:let d = {1:1, 2:2}

[?25l[?1c:[?25h[?0c:let l = [4, d, 6]

[?25l[?1c:[?25h[?0c:let d[3] = l

[?25l[?1c:[?25h[?0c:let dc = deepcopy(d)

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let dc = deepcopy(d, 1)

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:let l2 = [0, l, l, 3]

[?25l[?1c:[?25h[?0c:let l[1] = l2

[?25l[?1c:[?25h[?0c:let l3 = deepcopy(l2)

[?25l[?1c:[?25h[?0c:$put ='same list: ' . (l3[1] is l3[2])

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Locked variables

[?25l[?1c:[?25h[?0c:for depth in range(5)

[?25l[?1c:[?25h[?0c:  $put ='depth is ' . depth

[?25l[?1c:[?25h[?0c:  for u in range(3)

[?25l[?1c:[?25h[?0c:    unlet l

[?25l[?1c:[?25h[?0c:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l[?1c:[?25h[?0c:    exe "lockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    if u == 1

[?25l[?1c:[?25h[?0c:      exe "unlockvar l"

[?25l[?1c:[?25h[?0c:    elseif u == 2

[?25l[?1c:[?25h[?0c:      exe "unlockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    endif

[?25l[?1c:[?25h[?0c:    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]")

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:    let ps = ''

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1][1][0] = 99

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1][1] = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1] = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2]['6'][7] = 99

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2][6] = {99: 99}

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2] = {99: 99}

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:  endfor

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Unletting locked variables

[?25l[?1c:[?25h[?0c:$put ='Unletting:'

[?25l[?1c:[?25h[?0c:for depth in range(5)

[?25l[?1c:[?25h[?0c:  $put ='depth is ' . depth

[?25l[?1c:[?25h[?0c:  for u in range(3)

[?25l[?1c:[?25h[?0c:    unlet l

[?25l[?1c:[?25h[?0c:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l[?1c:[?25h[?0c:    exe "lockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    if u == 1

[?25l[?1c:[?25h[?0c:      exe "unlockvar l"

[?25l[?1c:[?25h[?0c:    elseif u == 2

[?25l[?1c:[?25h[?0c:      exe "unlockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    endif

[?25l[?1c:[?25h[?0c:    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]")

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:    let ps = ''

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2]['6'][7]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2][6]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1][1][0]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1][1]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:  endfor

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Locked variables and :unlet or list / dict functions

[?25l[?1c:[?25h[?0c:$put ='Locks and commands or functions:'

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :unlet after lock on dict:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar 1 d

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet d.a

[?25l[?1c:[?25h[?0c:  $put ='did :unlet'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put =':unlet after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet d.a

[?25l[?1c:[?25h[?0c:  $put ='did :unlet'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='filter() after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call filter(d, 'v:key != "a"')

[?25l[?1c:[?25h[?0c:  $put ='did filter()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='map() after lock on dict:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar 1 d

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call map(d, 'v:val + 200')

[?25l[?1c:[?25h[?0c:  $put ='did map()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No extend() after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  $put =string(extend(d, {'a': 123}))

[?25l[?1c:[?25h[?0c:  $put ='did extend()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No remove() of write-protected scope-level variable:'

[?25l[?1c:[?25h[?0c:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l[?1c:[?25h[?0c:  try

[?25l[?1c:[?25h[?0c:    $put =string(remove(a:, 'this_is_a_loooooooooong_parameter_na

me'))

[?25l[?1c:[?25h[?0c:    $put ='did remove()'

[?25l[?1c:[?25h[?0c:  catch

[?25l[?1c:[?25h[?0c:    $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:  endtry

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:call Tfunc('testval')

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No extend() of write-protected scope-level variable:'

[?25l[?1c:[?25h[?0c:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l[?1c:[?25h[?0c:  try

[?25l[?1c:[?25h[?0c:    $put =string(extend(a:, {'this_is_a_loooooooooong_parameter

_name': 1234}))

[?25l[?1c:[?25h[?0c:    $put ='did extend()'

[?25l[?1c:[?25h[?0c:  catch

[?25l[?1c:[?25h[?0c:    $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:  endtry

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:call Tfunc('testval')

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :unlet of variable in locked scope:'

[?25l[?1c:[?25h[?0c:let b:testvar = 123

[?25l[?1c:[?25h[?0c:lockvar 1 b:

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet b:testvar

[?25l[?1c:[?25h[?0c:  $put ='b:testvar was :unlet: '. (!exists('b:testvar'))

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:unlockvar 1 b:

[?25l[?1c:[?25h[?0c:unlet! b:testvar

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :let += of locked list variable:'

[?25l[?1c:[?25h[?0c:let l = ['a', 'b', 3]

[?25l[?1c:[?25h[?0c:lockvar 1 l

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let l += ['x']

[?25l[?1c:[?25h[?0c:  $put ='did :let +='

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:unlet l

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4]

[?25l[?1c:[?25h[?0c:lockvar! l

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlockvar l[1]

[?25l[?1c:[?25h[?0c:unlet l[0:1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlet l[1:2]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlockvar l[1]

[?25l[?1c:[?25h[?0c:let l[0:1] = [0, 1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:let l[1:2] = [0, 1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlet l

[?25l[?1c:[?25h[?0c:" :lockvar/islocked() triggering script autoloading

[?25l[?1c:[?25h[?0c:set rtp+=./sautest

[?25l[?1c:[?25h[?0c:lockvar g:footest#x

[?25l[?1c:[?25h[?0c:unlockvar g:footest#x

[?25l[?1c:[?25h[?0c:$put ='locked g:footest#x:'.islocked('g:footest#x')

[?25l[?1c:[?25h[?0c:$put ='exists g:footest#x:'.exists('g:footest#x')

[?25l[?1c:[?25h[?0c:$put ='g:footest#x: '.g:footest#x

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" a:000 function argument

[?25l[?1c:[?25h[?0c:" first the tests that should fail

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000 = [1, 2]

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[0] = 9

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[0]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[2] = [9, 10]

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[2]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[3] = {9: 10}

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[3]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:" now the tests that should pass

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[2][1] = 9

[?25l[?1c:[?25h[?0c:  call extend(a:000[2], [5, 6])

[?25l[?1c:[?25h[?0c:  let a:000[3][5] = 8

[?25l[?1c:[?25h[?0c:  let a:000[3]['a'] = 12

[?25l[?1c:[?25h[?0c:  $put =string(a:000)

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught ' . v:exception

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" reverse(), sort(), uniq()

[?25l[?1c:[?25h[?0c:let l = ['-0', 'A11', 2, 2, 'xaaa', 4, 'foo', 'foo6', 'foo', [0, 

1, 2], 'x8', [0, 1, 2], 1.5]

[?25l[?1c:[?25h[?0c:$put =string(uniq(copy(l)))

[?25l[?1c:[?25h[?0c:$put =string(reverse(l))

[?25l[?1c:[?25h[?0c:$put =string(reverse(reverse(l)))

[?25l[?1c:[?25h[?0c:$put =string(sort(l))

[?25l[?1c:[?25h[?0c:$put =string(reverse(sort(l)))

[?25l[?1c:[?25h[?0c:$put =string(sort(reverse(sort(l))))

[?25l[?1c:[?25h[?0c:$put =string(uniq(sort(l)))

[?25l[?1c:[?25h[?0c:let l=[7, 9, 'one', 18, 12, 22, 'two', 10.0e-16, -1, 'three', 0xf

f, 0.22, 'four']

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 'n'))

[?25l[?1c:[?25h[?0c:let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'bar', 

'BAR', 'Bar', 'Foo', 'FOO', 'foo', 'FOOBAR', {}, []]

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 1))

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 'i'))

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l)))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" splitting a string to a List

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb '))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W\+', 0))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W\+', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W', 1))

[?25l[?1c:[?25h[?0c:$put =string(split(':aa::bb:', ':', 0))

[?25l[?1c:[?25h[?0c:$put =string(split(':aa::bb:', ':', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('aa,,bb, cc,', ',\s*', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('abc', '\zs'))

[?25l[?1c:[?25h[?0c:$put =string(split('abc', '\zs', 1))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" compare recursively linked list and dict

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4]

[?25l[?1c:[?25h[?0c:let d = {'1': 1, '2': l, '3': 3}

[?25l[?1c:[?25h[?0c:let l[1] = d

[?25l[?1c:[?25h[?0c:$put =(l == l)

[?25l[?1c:[?25h[?0c:$put =(d == d)

[?25l[?1c:[?25h[?0c:$put =(l != deepcopy(l))

[?25l[?1c:[?25h[?0c:$put =(d != deepcopy(d))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" compare complex recursively linked list and dict

[?25l[?1c:[?25h[?0c:let l = []

[?25l[?1c:[?25h[?0c:call add(l, l)

[?25l[?1c:[?25h[?0c:let dict4 = {"l": l}

[?25l[?1c:[?25h[?0c:call add(dict4.l, dict4)

[?25l[?1c:[?25h[?0c:let lcopy = deepcopy(l)

[?25l[?1c:[?25h[?0c:let dict4copy = deepcopy(dict4)

[?25l[?1c:[?25h[?0c:$put =(l == lcopy)

[?25l[?1c:[?25h[?0c:$put =(dict4 == dict4copy)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same List to extend()

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4, 5]

[?25l[?1c:[?25h[?0c:call extend(l, l)

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same Dict to extend()

[?25l[?1c:[?25h[?0c:let d = { 'a': {'b': 'B'}}

[?25l[?1c:[?25h[?0c:call extend(d, d)

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same Dict to extend() with "error"

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call extend(d, d, "error")

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" test for range assign

[?25l[?1c:[?25h[?0c:let l = [0]

[?25l[?1c:[?25h[?0c:let l[:] = [1, 2]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:endfun
[?25l[?1c:$put =string(l)
: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:[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Test(1, 2, [3, 4], {5: 6})  " This may take a while
[?25l[?1cError detected while processing function Test:
line   76:

E684: list index out of range: 1

line   91:

E684: list index out of range: 2

line  271:

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

line  441:

E741: Value is locked: l[0:1]

line  443:

E741: Value is locked: l[1:2]

line  446:

E741: Value is locked: l[0:1] = [0, 1]

line  448:

E741: Value is locked: l[1:2] = [0, 1]

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb']
['aa', 'bb']
['', 'aa', 'bb', '']
['', '', 'aa', '', 'bb', '', '']
['aa', '', 'bb']
['', 'aa', '', 'bb', '']
['aa', '', 'bb', 'cc', '']
['a', 'b', 'c']
['', 'a', '', 'b', '', 'c', '']
1
1
0
0
1
1
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
{'a': {'b': 'B'}}
Vim(call):E737: a
{'a': {'b': 'B'}}
[1, 2]
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cdelfunc Test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cunlet dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for patch 7.3.637
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a = 'No error caught'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?1c[?25h[?0c[?25l[?1c=[?25h[?0ca
[?25l[?1cVim(foldopen):E490:[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?1cError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'

)|endtry

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb'][?25h[?0c[?25l[?1c
=[?25h[?0ca
[?25l[?1cError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 197 lines, 3821 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test55 = test61; then \
#	  if diff test.out test55.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test55.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test55.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test56.in
[?25h[?8c[?25h[?0c[?25l[?1c"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 <SID>DoLast()
  call append(line('$'), "last line")
endfun
fun s:DoNothing()
  call append(line('$'), "nothing line")
endfun
nnoremap <buffer> _x    :call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
end:
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for script-local function.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 120 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/+1,/^end:/-1w! Xtest.vim
[?25l[?1c"Xtest.vim" [New] 7L, 251C written[?25h[?0c[?25l[?1c:[?25h[?0csource Xtest.vim
[?25l[?1c[?25h[?0c[?25l[?1c:call <SNR>4_DoNothing()|call <SNR>4_DoLast()|delfunc <SNR>4_DoNothing|delfunc 

<SNR>4_DoLast
Press ENTER or type command to continue[?25h[?0c[?25l[?1cTest for script-local function.     vim: set ft=vim :nothing line[?25h[?0c[?25l[?1c:[?25h[?0c$-1,$wq! test.out
[?25l[?1c"test.out" [New] 2L, 23C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test56 = test61; then \
#	  if diff test.out test56.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test56.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test56.in; \
#	  fi \
#	fi"
# 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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/pathdef.o auto/pathdef.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test57.in
[?25h[?8c[?25h[?0c[?25l[?1c"test57.in" 545 lines, 4110 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :sort command.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 33 lines, 920 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:/^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
:/^t28:/+1,/^t29/-1sort b
:/^t29:/+1,/^t30/-1sort b
:/^t30:/+1,/^t31/-1sort f
:/^t01:/,$wq! test.out
ENDTEST

t01: alphebetical
abc
ab
a
a321
a123
a122
b321
b123
c123d[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^t01:/+1,/^t02/-1sort
[?25l[?1c 123b2
a123
a
ababc[?25h[?0c[?25l[?1c:[?25h[?0c/^t02:/+1,/^t03/-1sort n
[?25l[?1cb123
b321
b321
b321b
b322b
c123d
c321d
t02: numeric
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t03:/+1,/^t04/-1sort x
[?25l[?1ca123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t03: hexadecimal


a
ab
abc
 123b
a122
a123
a321
b123
b321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t04:/+1,/^t05/-1sort u
[?25l[?1cb321b
b322b
c123d
c321d
t04: alpha, unique[?25h[?0c[?25l[?1c
:[?25h[?0c/^t05:/+1,/^t06/-1sort!
[?25l[?1ca123
a321
ab
abc
b123
b321
b321b
b322b
c123d
c321d
t05: alpha, reverse
c321d
c123d
b322b
b321b
b321
b321
b123
abc
ab
a321
a123
a122[?25h[?0c[?25l[?1c:[?25h[?0c/^t06:/+1,/^t07/-1sort! n        
[?25l[?1ca
 123b


t06: numeric, reverse
b322b[?25h[?0c[?25l[?1c
:[?25h[?0c/^t07:/+1,/^t08/-1sort! u
[?25l[?1c123b
c123d
b123
a123
a122


a
ab
abc
t07: unique, reverse
c321d
c123d
b322b
b321b
b321
b123
abc
ab
a321
a123
a122
a[?25h[?0c[?25l[?1c:[?25h[?0c/^t08:/+1,/^t09/-1sort o         
[?25l[?1c123b

t08: octal
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t09:/+1,/^t10/-1sort! x        
[?25l[?1ca123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t09: reverse, hexadecimal
c321d
c123d
b322b
b321b
b321
b321
b123
a321
a123
a122
 123b
abc[?25h[?0c[?25l[?1c:[?25h[?0c/^t10:/+1,/^t11/-1sort/./        
[?25l[?1cab
a


t10: alpha, skip first character
a[?25h[?0c[?25l[?1c
:[?25h[?0c/^t11:/+1,/^t12/-1sort/../       
[?25l[?1c123b
c123d
a321
b321
b321
b321b
c321d
b322b
ab
abc
t11: alpha, skip first 2 characters
ab
a


a321
b321
b321
b321b
c321d
a122
b322b
a123[?25h[?0c[?25l[?1c:[?25h[?0c/^t12:/+1,/^t13/-1sort/../u
[?25l[?1cb123
 123b
c123d
abc
t12: alpha, unique, skip first 2 characters
ab[?25h[?0c[?25l[?1c
:[?25h[?0c/^t13:/+1,/^t14/-1sort/./n
[?25l[?1cb321
b321b
c321d
a122
b322b
a123
b123
 123b
c123d
abc
t13: numeric, skip first character
abc
ab
a


a122
a123
b123
c123d
 123b
a321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t14:/+1,/^t15/-1sort/./r
[?25l[?1cc321d
b321
b321b
b322b
t14: alpha, sort on first character[?25h[?0c[?25l[?1c
:[?25h[?0c/^t15:/+1,/^t16/-1sort/../r
[?25l[?1ca321
a123
a122
b321
b123
b322b
b321
b321b
c123d
c321d
t15: alpha, sort on first 2 characters
a123b
a123
a122
a321
abc
ab
b123
b321
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t16:/+1,/^t17/-1sort/./rn
[?25l[?1cb321
b321b
c123d
c321d
t16: numeric, sort on first character
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t17:/+1,/^t18/-1sort/\d/
[?25l[?1cb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t17: alpha, skip past first digit
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t18:/+1,/^t19/-1sort/\d/r
[?25l[?1ca123
b123
 123b
c123d
t18: alpha, sort on first digit
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t19:/+1,/^t20/-1sort/\d/n
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t19: numeric, skip past first digit
abc
ab
a


a321
b321
c321d
b321
b321b
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t20:/+1,/^t21/-1sort/\d/rn
[?25l[?1ca123
b123
c123d
 123b
t20: numeric, sort on first digit
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t21:/+1,/^t22/-1sort/\d\d/
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t21: alpha, skip past first 2 digits
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t22:/+1,/^t23/-1sort/\d\d/n
[?25l[?1ca123
b123
 123b
c123d
t22: numeric, skip past first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t23:/+1,/^t24/-1sort/\d\d/x
[?25l[?1cb321
c321d
b321
b321b
a122
b322b
a123
b123
c123d
 123b
t23: hexadecimal, skip past first 2 digits
abc
ab
a


a321
b321
b321
a122
a123
b123
b321b[?25h[?0c[?25l[?1c:[?25h[?0c/^t24:/+1,/^t25/-1sort/\d\d/r
[?25l[?1cc321d
b322b
 123b
c123d
t24: alpha, sort on first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t25:/+1,/^t26/-1sort/\d\d/rn
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t25: numeric, sort on first 2 digits
abc
ab
a


a123
a122
b123
c123d
 123b
a321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t26:/+1,/^t27/-1sort/\d\d/rx
[?25l[?1cc321d
b322b
b321
b321b
t26: hexadecimal, sort on first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t27:/+1,/^t28/-1sort no
[?25l[?1cE474: Invalid argument[?25h[?0c[?25l[?1c:[?25h[?0c/^t28:/+1,/^t29/-1sort b
[?25l[?1cb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t28: binary


0b000000
0b001000
0b010000
0b100000
0b100010
0b100010
0b100100
0b101000
0b101000
0b101001[?25h[?0c[?25l[?1c:[?25h[?0c/^t29:/+1,/^t30/-1sort b
[?25l[?1c0b101001
0b101010
0b101100
0b111000
t29: binary with leading characters[?25h[?0c[?25l[?1c
:[?25h[?0c/^t30:/+1,/^t31/-1sort f
[?25l[?1ca0b001000
0b010000
ab0b100000
0b100010
0b100010
 0b100100
0b101000
0b101000
 0b101001
a0b101001
0b101010
b0b101100
b0b111000
t30: float


-1.1e3
-1.01e3
1.15e-6
0.88
1.234
123.456
t31: done[?25h[?0c[?25l[?1c:[?25h[?0c/^t01:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 501 lines, 3105 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test57 = test61; then \
#	  if diff test.out test57.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test57.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test57.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test60.in
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE  -o objects/if_perl.o auto/if_perl.c
[?25h[?8c[?25h[?0c[?25l[?1c"test60.in" 601 lines, 13116 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for the exists() and has() functions.  vim: set ft=vim ts=8 sw=2 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 596 lines, 13023 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! RunTest(str, result)
[?25l[?1c
:  [?25h[?0c    if exists(a:str) == a:result

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED: Checking for " . a:str

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0cendfunction
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x[?25h[?0c[?25l[?1c
:[?25h[?0cfunction! TestExists()
[?25l[?1c
:  [?25h[?0c    augroup myagroup

[?25l[?1c:  [?25h[?0c^Iautocmd! BufEnter       *.my     echo "myfile edited"

[?25l[?1c:  [?25h[?0c^Iautocmd! FuncUndefined  UndefFun exec "fu UndefFun()\nendfu"

[?25l[?1c:  [?25h[?0c    augroup END

[?25l[?1c:  [?25h[?0c    set rtp+=./sautest

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    let test_cases = []

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " valid autocmd group

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup', 1]]

[?25l[?1c:  [?25h[?0c    " valid autocmd group with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup+b', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group, event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter#*.my', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter#*.my', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd group or event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#xyzagroup', 0]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd group and valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#xyzagroup#BufEnter', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event with no matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#CmdwinEnter', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and non-existing autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#xyzacmd', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event and non-matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter#xyzpat', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event and non-matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter#xyzpat', 0]]

[?25l[?1c:  [?25h[?0c    " Empty autocmd group, event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['###', 0]]

[?25l[?1c:  [?25h[?0c    " Empty autocmd group and event or empty event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['##', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['##FileReadCmd', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['##MySpecialCmd', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&textwidth', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&tw', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['&tw-', 0]]

[?25l[?1c:  [?25h[?0c    " Global option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&g:errorformat', 1]]

[?25l[?1c:  [?25h[?0c    " Local option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&l:errorformat', 1]]

[?25l[?1c:  [?25h[?0c    " Negative form of existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&nojoinspaces', 0]]

[?25l[?1c:  [?25h[?0c    " Negative form of existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&nojs', 0]]

[?25l[?1c:  [?25h[?0c    " Non-existing option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&myxyzoption', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['+incsearch', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['+incsearch!1', 0]]

[?25l[?1c:  [?25h[?0c    " Existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['+is', 1]]

[?25l[?1c:  [?25h[?0c    " Existing option that is hidden.

[?25l[?1c:  [?25h[?0c    let test_cases += [['+autoprint', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing environment variable

[?25l[?1c:  [?25h[?0c    let $EDITOR_NAME = 'Vim Editor'

[?25l[?1c:  [?25h[?0c    let test_cases += [['$EDITOR_NAME', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing environment variable

[?25l[?1c:  [?25h[?0c    let test_cases += [['$NON_ENV_VAR', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr', 1]]

[?25l[?1c:  [?25h[?0c    " Valid internal function with ()

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr()', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing internal function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*myxyzfunc', 0]]

[?25l[?1c:  [?25h[?0c    " Valid internal function with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr&6', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid user defined function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*TestExists', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing user defined function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*MyxyzFunc', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Function that may be created by FuncUndefined event

[?25l[?1c:  [?25h[?0c    let test_cases += [['*UndefFun', 0]]

[?25l[?1c:  [?25h[?0c    " Function that may be created by script autoloading

[?25l[?1c:  [?25h[?0c    let test_cases += [['*footest#F', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    redir! > test.out

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    for [test_case, result] in test_cases

[?25l[?1c:    [?25h[?0c        echo test_case . ": " . result

[?25l[?1c:    [?25h[?0c        call RunTest(test_case, result)

[?25l[?1c:    [?25h[?0c    endfor

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (full match)

[?25l[?1c:  [?25h[?0c    echo ':edit: 2'

[?25l[?1c:  [?25h[?0c    if exists(':edit') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (full match) with garbage

[?25l[?1c:  [?25h[?0c    echo ':edit/a: 0'

[?25l[?1c:  [?25h[?0c    if exists(':edit/a') == 0

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (partial match)

[?25l[?1c:  [?25h[?0c    echo ':q: 1'

[?25l[?1c:  [?25h[?0c    if exists(':q') == 1

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing internal command

[?25l[?1c:  [?25h[?0c    echo ':invalidcmd: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':invalidcmd')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " User defined command (full match)

[?25l[?1c:  [?25h[?0c    command! MyCmd :echo 'My command'

[?25l[?1c:  [?25h[?0c    echo ':MyCmd: 2'

[?25l[?1c:  [?25h[?0c    if exists(':MyCmd') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " User defined command (partial match)

[?25l[?1c:  [?25h[?0c    command! MyOtherCmd :echo 'Another command'

[?25l[?1c:  [?25h[?0c    echo ':My: 3'

[?25l[?1c:  [?25h[?0c    if exists(':My') == 3

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Command modifier

[?25l[?1c:  [?25h[?0c    echo ':rightbelow: 2'

[?25l[?1c:  [?25h[?0c    if exists(':rightbelow') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing user defined command (full match)

[?25l[?1c:  [?25h[?0c    delcommand MyCmd

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    echo ':MyCmd: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':MyCmd')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing user defined command (partial match)

[?25l[?1c:  [?25h[?0c    delcommand MyOtherCmd

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    echo ':My: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':My')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local variable

[?25l[?1c:  [?25h[?0c    let local_var = 1

[?25l[?1c:  [?25h[?0c    echo 'local_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local variable with garbage

[?25l[?1c:  [?25h[?0c    let local_var = 1

[?25l[?1c:  [?25h[?0c    echo 'local_var%n: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_var%n')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local variable

[?25l[?1c:  [?25h[?0c    unlet local_var

[?25l[?1c:  [?25h[?0c    echo 'local_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing autoload variable that may be autoloaded

[?25l[?1c:  [?25h[?0c    echo 'footest#x: 0'

[?25l[?1c:  [?25h[?0c    if !exists('footest#x')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list

[?25l[?1c:  [?25h[?0c    let local_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'local_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list item

[?25l[?1c:  [?25h[?0c    echo 'local_list[1]: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_list[1]')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list item with garbage

[?25l[?1c:  [?25h[?0c    echo 'local_list[1]+5: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list[1]+5')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Invalid local list item

[?25l[?1c:  [?25h[?0c    echo 'local_list[2]: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list[2]')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local list

[?25l[?1c:  [?25h[?0c    unlet local_list

[?25l[?1c:  [?25h[?0c    echo 'local_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local dictionary

[?25l[?1c:  [?25h[?0c    let local_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'local_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local dictionary

[?25l[?1c:  [?25h[?0c    unlet local_dict

[?25l[?1c:  [?25h[?0c    echo 'local_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing local curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "local"

[?25l[?1c:  [?25h[?0c    let curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global variable

[?25l[?1c:  [?25h[?0c    let g:global_var = 1

[?25l[?1c:  [?25h[?0c    echo 'g:global_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global variable with garbage

[?25l[?1c:  [?25h[?0c    echo 'g:global_var-n: 1'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_var-n')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global variable

[?25l[?1c:  [?25h[?0c    unlet g:global_var

[?25l[?1c:  [?25h[?0c    echo 'g:global_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global list

[?25l[?1c:  [?25h[?0c    let g:global_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'g:global_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global list

[?25l[?1c:  [?25h[?0c    unlet g:global_list

[?25l[?1c:  [?25h[?0c    echo 'g:global_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global dictionary

[?25l[?1c:  [?25h[?0c    let g:global_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'g:global_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global dictionary

[?25l[?1c:  [?25h[?0c    unlet g:global_dict

[?25l[?1c:  [?25h[?0c    echo 'g:global_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "global"

[?25l[?1c:  [?25h[?0c    let g:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'g:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet g:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'g:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window variable

[?25l[?1c:  [?25h[?0c    echo 'w:window_var: 1'

[?25l[?1c:  [?25h[?0c    let w:window_var = 1

[?25l[?1c:  [?25h[?0c    if exists('w:window_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window variable

[?25l[?1c:  [?25h[?0c    unlet w:window_var

[?25l[?1c:  [?25h[?0c    echo 'w:window_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window list

[?25l[?1c:  [?25h[?0c    let w:window_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'w:window_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:window_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window list

[?25l[?1c:  [?25h[?0c    unlet w:window_list

[?25l[?1c:  [?25h[?0c    echo 'w:window_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window dictionary

[?25l[?1c:  [?25h[?0c    let w:window_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'w:window_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:window_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window dictionary

[?25l[?1c:  [?25h[?0c    unlet w:window_dict

[?25l[?1c:  [?25h[?0c    echo 'w:window_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "window"

[?25l[?1c:  [?25h[?0c    let w:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'w:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet w:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'w:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer variable

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_var: 1'

[?25l[?1c:  [?25h[?0c    let b:buffer_var = 1

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer variable

[?25l[?1c:  [?25h[?0c    unlet b:buffer_var

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer list

[?25l[?1c:  [?25h[?0c    let b:buffer_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer list

[?25l[?1c:  [?25h[?0c    unlet b:buffer_list

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer dictionary

[?25l[?1c:  [?25h[?0c    let b:buffer_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer dictionary

[?25l[?1c:  [?25h[?0c    unlet b:buffer_dict

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "buffer"

[?25l[?1c:  [?25h[?0c    let b:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'b:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet b:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'b:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Script-local tests

[?25l[?1c:  [?25h[?0c    source test60.vim

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing Vim internal variable

[?25l[?1c:  [?25h[?0c    echo 'v:version: 1'

[?25l[?1c:  [?25h[?0c    if exists('v:version')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing Vim internal variable

[?25l[?1c:  [?25h[?0c    echo 'v:non_exists_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('v:non_exists_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Function arguments

[?25l[?1c:  [?25h[?0c    function TestFuncArg(func_arg, ...)

[?25l[?1c:    [?25h[?0c        echo 'a:func_arg: 1'

[?25l[?1c:    [?25h[?0c        if exists('a:func_arg')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:non_exists_arg: 0'

[?25l[?1c:    [?25h[?0c        if !exists('a:non_exists_arg')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:1: 1'

[?25l[?1c:    [?25h[?0c        if exists('a:1')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:2: 0'

[?25l[?1c:    [?25h[?0c        if !exists('a:2')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c    endfunction

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    call TestFuncArg("arg1", "arg2")

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    echo ' g:footest#x =' g:footest#x

[?25l[?1c:    [?25h[?0c    echo '   footest#F()' footest#F()

[?25l[?1c:    [?25h[?0c    echo 'UndefFun()' UndefFun()

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    redir END

[?25l[?1c:    [?25h[?0cendfunction
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0ccall TestExists()
[?25l[?1c#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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0cdelfunc TestExists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc RunTest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestFuncArg
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit! test.out
[?25l[?1c"test.out" [Incomplete last line] 206 lines, 1940 characters#myagroup: 1OK
#myagroup+b: 0OK
#myagroup#BufEnter: 1OK#myagroup#BufEnter#*.my: 1OK
#BufEnter: 1OK#BufEnter#*.my: 1OK
#xyzagroup: 0OK#xyzagroup#BufEnter: 0
OK#myagroup#CmdwinEnter: 0
OK
#myagroup#xyzacmd: 0
OK#myagroup#BufEnter#xyzpat: 0
OK[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 206 lines, 1941 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test60 = test61; then \
#	  if diff test.out test60.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test60.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test60.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test64.in
[?25h[?8c[?25h[?0c[?25l[?1c"test64.in" 654 lines, 27565 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for regexp patterns without multi-byte support.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 621 lines, 27090 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:for pat in [' \ze*', ' \zs*']
:  try
:    let l = matchlist('x x', pat)
:    $put ='E888 NOT detected for ' . pat
:  catch
:    $put ='E888 detected for ' . pat
:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="">Ta 5</Title>
<T="">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" tl is a List of Lists with:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp engine
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp pattern
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    text to test the pattern on
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected match (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 1 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 2 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    etc.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  When there is no match use only the first two items.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Previously written tests """"""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b', 'abcdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abbdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c*', 'ccc', 'ccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c*', 'abdef', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\+', 'abdef']) "no match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"operator \|
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c\?', 'ccb', 'c'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\?', 'abd', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\?', 'abccd', 'bc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1}', 'ab', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'caad', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aba'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'abaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vb{1}', 'abca', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vba{2}', 'abaa', 'baa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vba{3}', 'aabaac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'dabc', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'acb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){0,2}', 'acb', "", ""])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){0,2}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1,2}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1,2}', 'ababc', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2,4}', 'ababcab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2,4}', 'abcababa', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'cdababe', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abacabab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'daaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'daaac', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'aaa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})+', 'adaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})+', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'aa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){2}', 'aaaa', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+){2}', 'dadaac', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){2}', 'daaac', 'aaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){3}', 'daac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){2}', 'dac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)+', 'daac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)+', 'aaa', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+){1,2}', 'aaa', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{3})+', 'daaaac', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b|c)+', 'aacb', 'aacb', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b|c){2}', 'abcb', 'ab', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc){2}', 'abcabd', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc){2}', 'abdabcabc','abcabc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a*', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+)+', 'ab', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{0,2})+', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((a*)+)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)*)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1,3}', 'aab', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2,3}', 'abaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}|b{2}', 'abab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}c', 'aabbccccccccccccc', 'abbc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va(bc){2}d', 'aabcbfbc' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'a', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'aa', 'aa' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'aaa', 'aaa' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'bbbabcc', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*b*|a*c*', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1}b{1}|a{1}b{1}', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"submatches
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)', 'ab', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)(b)', 'ab', 'ab', 'a', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)|(b)', 'ab', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', 'aaaa', 'aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x', 'abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" Simple tests """""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Search single groups
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'baced'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', '                    ab           ', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Search multi-modifiers
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'xcd', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'xxxxxxxxxxxxxxxxsofijiojgf', 'xxxxxxxxxxxxxxxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'abcdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" no match here
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abcdoin'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abcdeoijdfxxiuhfij', 'xx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'xxxxx', 'xxxxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abc x siufhiush xxxxxxxxx', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'x sdfoij', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'abc sfoij', '']) " empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'xxxxxxxxx c', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'x sdfoij', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'abc sfoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'xxxxxxxxxx c', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,0}', 'abcdfdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a?'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,1}', 'asiubid axxxaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a\{0,1}'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{1,0}', 'asiubid axxxaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aa siofuh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aaaaa asfoij afaa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aaaaaaaa', 'aaaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0}', 'asoiuj', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'iuash fiusahfliusah fiushfilushfi uhsaifuh askfj na

sfvius afg aaaa sfiuhuhiushf', 'aa'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,}', 'oij sdigfusnf', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,}', 'aaaaa aa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,}', 'sdfiougjdsafg'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,}', 'aaaaasfoij ', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{5,}', 'xxaaaaxxx '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{5,}', 'xxaaaaaxxx ', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,5}', 'abcd', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,5}', 'aaaaaaaaaa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" leading star as normal char when \{} follows
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '***'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '****', '****'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '*****', '*****'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{}', 'bbbcddiuhfcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{}', 'aaaaioudfh coisf jda', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,0}', 'abcdfdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" anti-greedy version of 'a?'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,1}', 'asiubid axxxaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aa siofuh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aaaaa asfoij afaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aaaaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0}', 'asoiuj', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2}', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,}', 'oij sdigfusnf', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,}', 'aaaaa aa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,}', 'sdfiougjdsafg'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,}', 'aaaaasfoij ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,5}', 'abcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,5}', 'aaaaaaaaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" anti-greedy version of 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-}', 'bbbcddiuhfcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-}', 'aaaaioudfh coisf jda', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test groups of characters and submatches
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(abc\)*', 'abcabcabc', 'abcabcabc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(ab\)\+', 'abababaaaaa', 'ababab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(abaaaaa\)*cd', 'cd', 'cd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(test1\)\? \(test2\)\?', 'test1 test3', 'test1 ', 'test1', 

''])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(test1\)\= \(test2\) \(test4443\)\=', ' test2 test4443 yupi

iiiiiiiiii', ' test2 test4443', '', 'test2', 'test4443'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\(sub1\) hello \(sub 2\)\)', 'asterix sub1 hello sub 2 obe

lix', 'sub1 hello sub 2', 'sub1 hello sub 2', 'sub1', 'sub 2'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\(\(yyxxzz\)\)\)', 'abcdddsfiusfyyzzxxyyxxzz', 'yyxxzz', '

yyxxzz', 'yyxxzz', 'yyxxzz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+|c+)+', 'abcccaba', 'abcccab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a(c*)+b)+', 'acbababaaa', 'acbabab', 'ab', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b*)+', 'aaaa', 'aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p*', 'aá ^I', 'aá '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test greedy-ness and lazy-ness
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,7}','aaaaaaaaaaaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,7}','aaaaaaaaaaaaaaaaaaaa', 'aaaaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vx(.{-,8})yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz','ayxa

','xayzxayz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vx(.*)yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz', 'ayxayzx

ayzxa',''])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){-2,3}','aaaaaaa','aaaa','aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{-1,3})+', 'aa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\zs\( x\|x$\)', ' x', ' x', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\zs\(x\| x$\)', ' x', ' x', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\ze\(x\| x$\)', ' x', '', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(\s\{-}\)\(x\| x$\)', ' x', ' x', '', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test Character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\d\+e\d\d','test 10e23 fd','10e23'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test collections and character range []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v[a]', 'abcd', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a[bcd]', 'abcd', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a[b-d]', 'acbd', 'ac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-d][e-f][x-x]d', 'cexdxx', 'cexd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v[[:alpha:]]+', 'abcdefghijklmnopqrstuvwxyz6','abcdefghijkl

mnopqrstuvwxyz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:]\+]', '6x8','x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]\+','abcabcabc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]','defghiasijvoinasoiunbvb','d'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]\+','ddddddda','ddddddd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-d]\+','aaaAAAZIHFNCddd','AAAZIHFNC'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*','iiiiiiii',''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*','abcdefgh','abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-f]\+','abcdefgh','gh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-c]\{-3,6}','abcabc','abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^[:alpha:]]\+','abcccadfoij7787ysf287yrnccdu','7787'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[-a]', '-', '-'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-]', '-', '-'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*\c','ABCDEFGH','ABCDEF'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[abc][xyz]\c','-af-AF-BY--','BY'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" filename regexp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[-./[:alnum:]_~]\+', 'log13.file', 'log13.file'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" special chars
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[\]\^\-\\]\+', '\^\\\-\---^', '\^\\\-\---^'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" collation elem
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[.a.]]\+', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" middle of regexp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc[0-9]*ddd', 'siuhabc ii'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc[0-9]*ddd', 'adf abc44482ddd oijs', 'abc44482ddd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[0-9]\+', 'asfi9888u', '9888'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9\n]\+', 'asfi9888u', '9888'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[0-9]\+', "asfi\n9888u", "\n9888"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_f', "  \na ", "\n"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_f\+', "  \na ", "\na"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9A-Za-z-_.]\+', " @0_a.A-{ ", "0_a.A-"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test start/end of line, start/end of file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^a.', "a_\nb ", "a_"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^a.', "b a \na_"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a$', " a\n "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a$', " a b\n_a", "_a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%^a.', "a a\na", "a "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%^a', " a \na "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a\%$', " a\n "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a\%$', " a\n_a", "_a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test recognition of character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Tests for \z features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" match ends at \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'xx \ze test', 'xx '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\zeend', 'oij abcend', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaxx', ' aabb ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaxx', ' aaxx ', 'aaxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aabb\|aa\zebb', ' aabb ', 'aabb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaebb', ' aabb ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" match starts at \zs
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\zsdd', 'ddabcddxyzt', 'dd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa \zsax', ' ax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if 

last'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\>\zs.', 'aword. ', '.'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is   [a t', '  '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Tests for \@= and \& features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=', 'abc', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=cd', 'abcd', 'abcd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=', 'ababc', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" will never match, no matter the input text
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abcd\@=e', 'abcd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" will never match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abcd\@=e', 'any text in here ... '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc)@=..', 'xabcd', 'ab', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(.*John\)\@=.*Bob', 'here is John, and here is B'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(John.*\)\@=.*Bob', 'John is Bobs friend', 'John is Bob', '

John is Bobs friend'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<\S\+\())\)\@=', '$((i=i+1))', 'i=i+1', '))'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.*John\&.*Bob', 'here is John, and here is B'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.*John\&.*Bob', 'John is Bobs friend', 'John is Bob'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(test1)@=.*yep', 'this is a test1, yep it is', 'test1, yep

', 'test1'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\(bar\)\@!', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\(bar\)\@!', 'foo bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if then else'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if else ', 'if else ', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@!bar', 'foobar', 'bar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@!...bar', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' bar foo '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo bar '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo xxx ', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ ]\@!\p\%([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:']

)[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ ]\@!\p\([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:', 

's'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'm\k\+_\@=\%(_\@!\k\)\@<=\k\+e', 'mx__xe', 'mx__xe'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%(\U\@<=S\k*\|S\l\)R', 'SuR', 'SuR'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Combining different tests and features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:]]\{-2,6}', '787abcdiuhsasiuhb4', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '', 'abcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(())', 'any possible text', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v%(ab(xyz)c)', '   abxyzc ', 'abxyzc', 'xyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(test|)empty', 'tesempty', 'empty', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|aa)(a|aa)', 'aaa', 'aa', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" \%u and friends
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%d32', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%o40', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%x20', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%u0020', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%U00000020', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%d0', "yes\x0ano", "\x0a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" \%[abc]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'fobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobar', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'fooxx', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobxx', 'foob'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobaxx', 'fooba'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobarxx', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]x', 'foobxx', 'foobx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]x', 'foobarxx', 'foobarx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'barxx', 'barx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'bxx', 'bx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'xxx', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b\%[[ao]r]', 'bar bor', 'bar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b\%[[]]r]', 'b]r bor', 'b]r'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '@\%[\w\-]*', '<http://john.net/pandoc/>[@pandoc]', '@pandoc'

])[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Alternatives, must use first longest match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'goo\|go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<goo\|\<go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<goo\|go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Back references
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\i\+\) \1', ' abc abc', 'abc abc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\i\+\) \1', 'xgoo goox', 'goo goo', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a\)\(b\)\(c\)\(dd\)\(e\)\(f\)\(g\)\(h\)\(i\)\1\2\3\4\5\6\7

\8\9', 'xabcddefghiabcddefghix', 'abcddefghiabcddefghi', 'a', 'b', 'c', 'dd', 'e

', 'f', 'g', 'h', 'i'])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\d*\)a \1b', ' a b ', 'a b', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.\(.\).\_..\1.', "aaa\naaa\nb", "aaa\naaa", 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.com', 'foo.bat/foo

.com', 'bat'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.bat'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<=$', 'foo.bat/foo.bat', 'foo.bat/foo

.bat', 'bat', 'bat'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}', '2013-06-27${0}', '$

{0}', '0'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(a*\)\1$', 'aaaaaaaa', 'aaaaaaaa', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(a\{-2,}\)\1\+$', 'aaaaaaaaa', 'aaaaaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Look-behind with limit
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@1<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@2<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<<

'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@1<=span.', 'xxspanxxxx<spanxx<<spanyyy'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@2<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<

<'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<!bar.', 'xx foobar1 xbar2 xx', 'bar2'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" look-behind match in front of a zero-width item
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" test header'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" Last Changed: 1970', '19

70'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=\>', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" complicated look-behind match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^[a-z]\+\ze \&\(asdf\)\@<!', 'foo bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" \@>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a*\)\@>a', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(.\{-}b\)\@>.', '  abcbd', '  abc', '  ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TODO: BT engine does not restore submatch after failure
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" "\_" prepended negated collection matches EOL
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Requiring lots of states.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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-"])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Skip adding state twice
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=', "#if FOO", 

"#if", ' FOO'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""" Test \%V atom
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%>70vGesamt', 'Jean-Michel Charlier & Victor Hubinon\Gesamt

ausgabe [Salleck]    Buck Danny {Jean-Michel Charlier & Victor Hubinon}\Gesamtau

sgabe', 'Gesamt'])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let text = t[2]

[?25l[?1c:  [?25h[?0c:  let matchidx = 3

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    try

[?25l[?1c:      [?25h[?0c:      let l = matchlist(text, pat)

[?25l[?1c:      [?25h[?0c:    catch

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l[?1c:      [?25h[?0c:    endtry

[?25l[?1c:    [?25h[?0c:" check the match itself

[?25l[?1c:    [?25h[?0c:    if len(l) == 0 && len(t) > matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    elseif len(l) > 0 && len(t) == matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l[?1c:      [?25h[?0c:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if len(l) > 0

[?25l[?1c:      [?25h[?0c:"   check all the nine submatches

[?25l[?1c:      [?25h[?0c:      for i in range(1, 9)

[?25l[?1c:[?25h[?0c:        if len(t) <= matchidx + i

[?25l[?1c:[?25h[?0c:          let e = ''

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          let e = t[matchidx + i]

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:        if l[i] != e

[?25l[?1c:[?25h[?0c:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:      endfor

[?25l[?1c:      [?25h[?0c:      unlet i

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 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.*$\)\@=
OK 0 - \%>70vGesamt
OK 1 - \%>70vGesamt
OK 2 - \%>70vGesamt
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl e l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""""" multi-line tests """"""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" back references
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.\(.\).\_..\1.', ['aaa', 'aaa', 'b'], ['XX', 'b']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" line breaks
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\S.*\nx', ['abc', 'def', 'ghi', 'xjk', 'lmn'], ['abc', 'def'

, 'XXjk', 'lmn']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check that \_[0-9] matching EOL does not break a following \>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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', '']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check a pattern with a line break and ^ and $
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(^.\+\n\)\1', [' dog', ' dog', 'asdf'], ['XXasdf']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the multi-line tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='multi-line tests'
[?25l[?1c
multi-line tests[?25h[?0c[?25l[?1c
:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let before = t[2]

[?25l[?1c:  [?25h[?0c:  let after = t[3]

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re ==1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    new

[?25l[?1c:    [?25h[?0c:    call setline(1, before)

[?25l[?1c:    [?25h[?0c:    exe '%s/' . pat . '/XX/'

[?25l[?1c:    [?25h[?0c:    let result = getline(1, '$')

[?25l[?1c:    [?25h[?0c:    q!

[?25l[?1c:    [?25h[?0c:    if result != after

[?25l[?1c:      [?25h[?0c:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . string(before) . 

'\", expected: \"' . string(after) . '\", got: \"' . string(result) . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 2 - \%>70vGesamt
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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check that using a pattern on two lines doesn't get messed up by using
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" matchstr() with \ze in between.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset re=0
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Substitute here
[?25l[?1csearch hit BOTTOM, continuing at TOP:    let l = matchlist('x x', pat)
:    $put ='E888 NOT detected for ' . pat
:  catch
:    $put ='E888 detected for ' . pat
:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="">Ta 5</Title>
<T="">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c.+1,.+2s/""/\='"'.matchstr(getline("."), '\d\+\ze<').'"'
[?25l[?1c5">Ta 5</Title>
<T="7">Ac 7</Title>
[?25h[?0c[?25l[?1c/[?25h[?0c^Substitute here
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c.+1,.+2yank
[?25l[?1c[?25h[?0c[?25l[?1cOK 2 - \%>70vGesamt
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
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
<T="5">Ta 5</Title>
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check a pattern with a look beind crossing a line boundary
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Behind:
[?25l[?1csearch hit BOTTOM, continuing at TOP:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexe the thexethe
andaxand andaxand
oooxofor foroxooo
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/[?25h[?0c\(<\_[xy]\+\)\@3<=start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.yank
[?25l[?1c[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
xxstart3
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check matching Visual area
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Visual:
[?25l[?1csearch hit BOTTOM, continuing at TOP<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexe the thexethe
andaxand andaxand
oooxofor foroxooo
oooxofor foroxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf

Results of test64:
search hit BOTTOM, continuing at TOP[?25h[?0c
the[?25l[?1c[?25h[?0c[?25l[?1cxe the the[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Ve/E/g
[?25l[?1c3 substitutions on 1 linexE thE thE
[?25h[?0c
[?25l[?1candaxand andaxand 
[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Va/A/g
[?25l[?1c6 substitutions on 1 lineAndAxAnd AndAxAnd[?25h[?0c
ooo[?25l[?1c[?25h[?0c[?25l[?1cxofor foro[?25h[?0c[?25l[?1cx
oooxofor foro[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Vo/O/g
[?25l[?1c8 substitutions on 2 linesxOfOr fOrOx
oooxOfOr fOrO
[?25h[?0c[?25l[?1c:[?25h[?0c/^Visual/+1,/^Visual/+4yank
[?25l[?1csearch hit BOTTOM, continuing at TOP
4 lines yanked[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
4 more lines
thexE thE thExethe4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check matching marks
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Marks:
[?25l[?1csearch hit BOTTOM, continuing at TOPasdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf

Results of test64:
OK 0 - ab
OK 1 - ab
OK 2 - ab
OK 0 - b
OK 1 - b
OK 2 - b
search hit BOTTOM, continuing at TOP[?25h[?0c
asdf[?25l[?1c:[?25h[?0c.-4,.+6s/.\%>'s.*\%<'e../here/
[?25l[?1chereasdf[?25h[?0c
asdf
dfsa
dfsadf[?25l[?1c:[?25h[?0c.-4,.+6s/.\%>'s\_.*\%<'e../again/
[?25l[?1c
asdfagainasdfOK 0 - bc*[?25h[?0c[?25l[?1c:[?25h[?0c/^Marks:/+1,/^Marks:/+3yank
[?25l[?1csearch hit BOTTOM, continuing at TOP
3 lines yanked[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
3 more linesasdfhereasdf
asdfagainasdf3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check patterns matching cursor position.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc! Postest()
[?25l[?1c
:  [?25h[?0c new

[?25l[?1c:  [?25h[?0c call setline(1, ['ffooooo', 'boboooo', 'zoooooo', 'koooooo', 'moooooo', "\t

\t\tfoo", 'abababababababfoo', 'bababababababafoo', '********_', '        xxxxxx

xxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx

xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxx

xxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxx

x xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx xxxxxxxxx xxxx

xxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xx

xxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx xxxxxxxxxxxx x

xxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxx

xxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx'])

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 1, 0, 0])

[?25l[?1c:  [?25h[?0c s/\%>3c.//g

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 2, 4, 0])

[?25l[?1c:  [?25h[?0c s/\%#.*$//g

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 3, 0, 0])

[?25l[?1c:  [?25h[?0c s/\%<3c./_/g

[?25l[?1c:  [?25h[?0c %s/\%4l\%>5c./_/g

[?25l[?1c:  [?25h[?0c %s/\%6l\%>25v./_/g

[?25l[?1c:  [?25h[?0c %s/\%>6l\%3c./!/g

[?25l[?1c:  [?25h[?0c %s/\%>7l\%12c./?/g

[?25l[?1c:  [?25h[?0c %s/\%>7l\%<9l\%>5v\%<8v./#/g

[?25l[?1c:  [?25h[?0c $s/\%(|\u.*\)\@<=[^|\t]\+$//ge

[?25l[?1c:  [?25h[?0c 1,$yank

[?25l[?1c:  [?25h[?0c quit!

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

asdfhereasdf
asdfagainasdf[?25h[?0c[?25l[?1c20 - a\n^b$\n^cOK 1 - a\n^b$\n^c2
OK 0 - \(^.\+\n\)\1
OK 1 - \(^.\+\n\)\1
OK 2<T="5">Ta 5</Title>
<T="7">Ac 7</Title>xxstart3thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooooooxOfOr fOrOxoooasdfhereasdfasdfagainasdf~                                                                               [?25h[?0c[?25l[?1c
-0-[?25h[?0c[?25l[?1c
:[?25h[?0cset re=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1coooxOfOr fOrOxooo

asdfhereasdf
asdfagainasdf-0-ffobob__ooooo
koooo__moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx[?25h[?0c[?25l[?1c
-1-[?25h[?0c[?25l[?1c
:[?25h[?0cset re=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c-1-
ffo
bob
__ooooo
koooo__
moooooo
   f__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxx
xxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx x xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxxxxxxxx
xxxxxx  xxx xxxx xx xxxxxxxx xxx xxxxxxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-2-[?25h[?0c[?25l[?1c:[?25h[?0cset re=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c-2-
ffo
bob~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" start and end of buffer
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%^
[?25l[?1csearch 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTest[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cOK 2 - \v(a*)+
OK 0 - \v((ab)+)+
OK 1 - \v((ab)+)+
OK 2 - \v((ab)+)+
OK 0 - \v(((ab)+)+)+
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}[?25h[?0c[?25l[?1c/[?25h[?0c\%^..
[?25l[?1csearch 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTest[?25h[?0c[?25l[?1ct END[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cOK 0 - \v((ab)+)+
OK 1 - \v((ab)+)+
OK 2 - \v((ab)+)+
OK 0 - \v(((ab)+)+)+
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}[?25h[?0c[?25l[?1c/[?25h[?0c\%$
[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:" tl is a List of Lists with:
:"    regexp engine
:"    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'])[?25h[?0c[?25l[?1c/[?25h[?0c..\%$
[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1cEN[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cE[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check for detecting error
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset regexpengine=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor pat in [' \ze*', ' \zs*']
[?25l[?1c
:  [?25h[?0c:  try

[?25l[?1c:    [?25h[?0c:    let l = matchlist('x x', pat)

[?25l[?1c:    [?25h[?0c:    $put ='E888 NOT detected for ' . pat

[?25l[?1c:    [?25h[?0c:  catch

[?25l[?1c:    [?25h[?0c:    $put ='E888 detected for ' . pat

[?25l[?1c:    [?25h[?0c:  endtry

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?ba
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxxxxxxx xxx xxxxxxx xxxxxxxxx  xxx
xxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxx xxxx xxx xxxx xxx xxx 
xx x xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx xxxxxxx xxxxxxx x x xx xxxxxx xxxxxxx  xxxxxxxxxx xxxxx xxx xxx xxxxxxxx   xxxx xxx xxxxxx xxxxx xxxxx xx  xxxxxxxxx xxxx xxxxxxxxx xxxxx xxxxx xx xxxxxxxxx xxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxTestEND
EN888 detected for  \ze*
E888 detected for  \zs*[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" Write the results """""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/\%#=1^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1107 lines, 22167 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test64 = test61; then \
#	  if diff test.out test64.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test64.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test64.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test65.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for floating point and logical operators.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 89 lines, 2067 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("float")
[?25l[?1c
:  [?25h[?0c:  e! test.ok

[?25l[?1c:  [?25h[?0c:  wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:$put =float2nr(123.456)
:$put =float2nr(-123.456)
:$put ='AND'[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%f', 123.456)
[?25l[?1c
123.456000[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%e', 123.456)
[?25l[?1c
1.234560e+02[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 123.456)
[?25l[?1c
123.456[?25h[?0c[?25l[?1c
:[?25h[?0c" check we don't crash on division by zero
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cecho 1.0 / 0.0
[?25l[?1cinf[?25h[?0c[?25l[?1c:[?25h[?0c$put ='+='
[?25l[?1c
+=[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v += 6.543
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%g', v)
[?25l[?1c
7.777[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v += 5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%g', v)
[?25l[?1c
6.234[?25h[?0c[?25l[?1c
:[?25h[?0clet a = 5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a += 3.333
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(a)
[?25l[?1c
8.333[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='=='
[?25l[?1c
==[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =v == 1.234
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =v == 1.2341
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='add-subtract'
[?25l[?1c
add-subtract[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4 + 1.234)
[?25l[?1c
5.234[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 1.234 - 8)
[?25l[?1c
-6.766[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='mult-div'
[?25l[?1c
mult-div[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4 * 1.234)
[?25l[?1c
4.936[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4.0 / 1234)
[?25l[?1c
0.003241[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='dict'
[?25l[?1c
dict[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string({'x': 1.234, 'y': -2.0e20})
[?25l[?1c
{'x': 1.234, 'y': -2.0e20}[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='list'
[?25l[?1c
list[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string([-123.4, 2.0e-20])
[?25l[?1c
[-123.4, 2.0e-20][?25h[?0c[?25l[?1c
:[?25h[?0c$put ='abs'
[?25l[?1c
abs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs(1456))
[?25l[?1c
1456[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs(-4))
[?25l[?1c
4[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs([1, 2, 3]))
[?25l[?1cE745: Using a List as a Number
-1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', abs(14.56))
[?25l[?1c
14.56[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', abs(-54.32))
[?25l[?1c
54.32[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ceil'
[?25l[?1c
ceil[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(1.456))
[?25l[?1c
2.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(-5.456))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(-4.000))
[?25l[?1c
-4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='floor'
[?25l[?1c
floor[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(1.856))
[?25l[?1c
1.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(-5.456))
[?25l[?1c
-6.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(4.0))
[?25l[?1c
4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='log10'
[?25l[?1c
log10[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', log10(1000))
[?25l[?1c
3.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', log10(0.01000))
[?25l[?1c
-2.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='pow'
[?25l[?1c
pow[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', pow(3, 3.0))
[?25l[?1c
27.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', pow(2, 16))
[?25l[?1c
65536.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='round'
[?25l[?1c
round[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(0.456))
[?25l[?1c
0.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(4.5))
[?25l[?1c
5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(-4.50))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='sqrt'
[?25l[?1c
sqrt[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', sqrt(100))
[?25l[?1c
10.0[?25h[?0c[?25l[?1c
:[?25h[?0cecho sqrt(-4.01)
[?25l[?1cnan[?25h[?0c[?25l[?1c:[?25h[?0c$put ='str2float'
[?25l[?1c
str2float[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', str2float('1e40'))
[?25l[?1c
1.0e40[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='trunc'
[?25l[?1c
trunc[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(1.456))
[?25l[?1c
1.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(-5.456))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(4.000))
[?25l[?1c
4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='float2nr'
[?25l[?1c
float2nr[?25h[?0c[?25l[?1c
:[?25h[?0c$put =float2nr(123.456)
[?25l[?1c
123[?25h[?0c[?25l[?1c
:[?25h[?0c$put =float2nr(-123.456)
[?25l[?1c
-123[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='AND'
[?25l[?1c
AND[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 127)
[?25l[?1c
127[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 16)
[?25l[?1c
16[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 128)
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='OR'
[?25l[?1c
OR[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(16, 7)
[?25l[?1c
23[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(8, 7)
[?25l[?1c
15[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(0, 123)
[?25l[?1c
123[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='XOR'
[?25l[?1c
XOR[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 127)
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 16)
[?25l[?1c
111[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 128)
[?25l[?1c
255[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='invert'
[?25l[?1c
invert[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(127), 65535)
[?25l[?1c
65408[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(16), 65535)
[?25l[?1c
65519[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(128), 65535)
[?25l[?1c
65407[?25h[?0c[?25l[?1c
:[?25h[?0c$put =invert(1.0)
[?25l[?1cE805: Using a Float as a Numbergcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o

0[?25h[?0c[?25l[?1c
:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 73 lines, 430 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test65 = test61; then \
#	  if diff test.out test65.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test65.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test65.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test66.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 234 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^one
[?25l[?1c[?25h[?0con[?25l[?1c[?25h[?0c[?25l[?1ce
one two three
one two three
one two three
one two three[?25h[?0c[?25l[?1c
4 fewer linesabcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cmore lines; before #1  0 seconds agoone two three
one two three
one two threeone two threeone two three[?25h[?0c[?25l[?1ce
one
one
one
on[?25h[?0c[?25l[?1c1
on1
on1
on1
on1[?25h[?0c[?25l[?1c:[?25h[?0c'<,'>w! test.out
[?25l[?1c"test.out" [New File] 5 lines, 70 characters written[?25h[?0c[?25l[?1c/[?25h[?0c^abcdefgh
[?25l[?1cabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
[?25h[?0c[?25l[?1ca
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?25h[?0c
[?25l[?1cabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc            defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci  [?25h[?0c[?25l[?1c
5 lines <ed 1 timeidefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0c$-5,$w >> test.out
[?25l[?1c"test.out"6 lines, 151 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$s/\s\+//g
[?25l[?1c7 substitutions on 4 linesabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
a
a
a[?25h[?0c[?25l[?1c
a
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghij
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?25h[?0c
[?25l[?1cabcdefghij[?25h[?0c
    ab[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc                       defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc                 defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci  [?25h[?0c[?25l[?1c
5 lines <ed 3 timesidefghijklmnopqrstuvwxyz    defghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$w >> test.out
[?25l[?1c"test.out"5 lines, 147 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test66 = test61; then \
#	  if diff test.out test66.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test66.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test66.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test67.in
[?25h[?8c[?25h[?0c[?25l[?1c"test67.in" 33 lines, 1110 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#<buffer>: " . exists("#BufEnter#<buffer>"))
:au BufEnter <buffer> let g:entered=1[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest that groups and patterns are tested correctly when calling exists() for[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 999 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
:edit testfile2.test
:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
:e! test.out
:call append(0, results)
:$d
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet results=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup auexists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "##BufEnter: " . exists("##BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter * let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup auexists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter * let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter *.test let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit testfile.test
[?25l[?1c"testfile.test" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter <buffer> let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit testfile2.test
[?25l[?1c"testfile2.test" [New File][?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File][?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, results)
[?25l[?1c##BufEnter: 1
#BufEnter: 0
#BufEnter: 1
#auexists#BufEnter: 0
#auexists#BufEnter: 1
#BufEnter#*.test: 0
#BufEnter#*.test: 1
#BufEnter#<buffer>: 0
#BufEnter#<buffer>: 1
#BufEnter#<buffer>: 0[?25h[?0c[?25l[?1c:[?25h[?0c$d
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 10 lines, 190 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test67 = test61; then \
#	  if diff test.out test67.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test67.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test67.in; \
#	  fi \
#	fi"
# 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.
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o vim objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o objects/gui.o objects/gui_athena.o objects/gui_x11.o objects/pty.o objects/gui_beval.o objects/gui_at_sb.o objects/gui_at_fs.o objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/json.o objects/main.o objects/memfile.o objects/message.o -lXaw -lXmu -lXext -lXt -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE -ldl  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test68.in
[?25h[?8c[?25h[?0c[?25l[?1c"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

{[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for text formatting.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 48 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noai tw=2 fo=t
[?25l[?1c[?25h[?0c[?25l[?1ca
b[?25h[?0c
[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 38 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c
a  b[?25h[?0c[?25l[?1c
:[?25h[?0cset ai tw=2 fo=tw
[?25l[?1c[?25h[?0c[?25l[?1c
b[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
a[?25h[?0ca [?25l[?1c
b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=3 fo=t
gqgqo
a ^V^A^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
a ^A[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=3 fo=t
[?25l[?1c[?25h[?0c[?25l[?1c
^A[?25h[?0c[?25l[?1ca
^A
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=2 fo=tcq1 comments=:#
gqgqjgqgqo
a b
#a b^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
a b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=2 fo=tcq1 comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
#a b[?25h[?0c[?25l[?1ca b
#a b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 46 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=tcn comments=:#
A b^[jA b^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  1 a[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=tcn comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
b[?25h[?0c[?25l[?1c
# 1 a[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+3
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 35 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=t2a si
i  ^[A_^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+3
[?25l[?1c{

  x a
  b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=t2a si
[?25l[?1c[?25h[?0c[?25l[?1c    b[?25h[?0c[?25l[?1c b_[?25h[?0c[?25l[?1c
c[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=qn comments=:#
gwap
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
# 1 a b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=qn comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=q2 comments=:#
gwap
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
# x[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=q2 comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c# x a
[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+2
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 26 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw& fo=a
I^^^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/syntax.o syntax.c
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+2
[?25l[?1c{
   1aa
   2bb[?25h[?0c[?25l[?1c
:[?25h[?0cset tw& fo=a
[?25l[?1c[?25h[?0c[?25l[?1c1aa ^^2bb }STARTTEST[?25h[?0c
[?25l[?1c/^STARTTEST
[?25h[?0c[?25l[?1c
/mno pqr/[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 69 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
A vwx yz^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0cmno pqr/
[?25l[?1c/* abc def ghi jkl
 *    mno pqr stu[?25h[?0c[?25l[?1c
:[?25h[?0csetl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1c
*    vwx yz[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^#/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 47 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:setl tw=12 fo=tqnc comments=:#
A foobar^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^#/
[?25l[?1c
# 1 xxxxx[?25h[?0c[?25l[?1c
:[?25h[?0csetl tw=12 fo=tqnc comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
#   foobar[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:1;/^Results/,$wq! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c63 fewer lines# 1 a#   b}{
# x a#   b}{ 1aa ^^2bb }/* abc def ghi jkl
 *    mno pqr stu
 *    vwx yz
 */# 1 xxxxx
#   foobar[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 77 lines, 281 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test68 = test61; then \
#	  if diff test.out test68.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test68.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test68.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test69.in
[?25h[?8c[?25h[?0c[?25l[?1c"test69.in" 192 lines, 2185 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for multi-byte text formatting.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 2 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest 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[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=t
[?25l[?1c[?25h[?0c
[?25l[?1c
XYZ[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cX[?25h[?0clink.sh: Linked fine
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-athena'
[ yes != "yes" ] || flock debian /usr/bin/make -j1 -C src/vim-athena test
[?25l[?1cY[?25h[?0c[?25l[?1c
Z
abc [?25h[?0c[?25l[?1c
X[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cZ[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=1 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
X[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=1 fo=tm
[?25l[?1c[?25h[?0c[?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c
X a
[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c
XY
[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
X Y
[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 140 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y
aX
abX
abcX
abX c
abXY^[
ENDTEST

{
X
Xa
X a
XY
X Y
aX
abX
abcX
abX c[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=tm
[?25l[?1c[?25h[?0c
[?25l[?1ca[?25h[?0c
[?25l[?1ca[?25h[?0c
[?25l[?1cY
[?25h[?0c
[?25l[?1cY 
[?25h[?0c[?25l[?1c
aX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abcX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abX c
[?25h[?0c[?25l[?1cX
c[?25h[?0c[?25l[?1c
abXY
[?25h[?0c[?25l[?1cX
Y
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1cY
a[?25h[?0c[?25l[?1cX
ab[?25h[?0c[?25l[?1cX
abc[?25h[?0c[?25l[?1cX
ab[?25h[?0c[?25l[?1cX
c
ab[?25h[?0c[?25l[?1c
X[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 47 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set ai tw=2 fo=tm
gqgqjgqgqo
X
Xa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  X[?25h[?0c[?25l[?1c
:[?25h[?0cset ai tw=2 fo=tm
[?25l[?1c[?25h[?0c  [?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
  [?25h[?0c[?25l[?1c
X
  a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 53 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set noai tw=2 fo=tm
gqgqjgqgqo
  X
  Xa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  X[?25h[?0c[?25l[?1c
:[?25h[?0cset noai tw=2 fo=tm
[?25l[?1c[?25h[?0c  [?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
  [?25h[?0c[?25l[?1c
X
a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 169 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
XaY
XY
XYZ
X Y
X YZ
XX
XXa
XXY^[
ENDTEST

{
X
Xa
XaY
XY
XYZ
X Y
X YZ
XX
XXa[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=cqm comments=n:X
[?25l[?1c[?25h[?0c

[?25l[?1cXY[?25h[?0c

[?25l[?1cXZ
[?25h[?0c

[?25l[?1c
X Z
[?25h[?0c[?25l[?1c
XX
[?25h[?0c[?25l[?1c
XXa
[?25h[?0c[?25l[?1c
XXY
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
Xa
[?25h[?0c[?25l[?1cXa[?25h[?0c[?25l[?1cXY
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cXZ
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cX Z
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
Xa
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 30 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=2 fo=tm
RXa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=2 fo=tm
[?25l[?1c[?25h[?0c[?25l[?1c
X
a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set mps+=^Vu2018:^Vu2019
d%
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
‘two three ’four[?25h[?0c[?25l[?1c
:[?25h[?0cset mps+=^‘:^’
[?25l[?1c[?25h[?0c[?25l[?1c four[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
/^ra test
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 16 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTjVjra
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^ra test
[?25l[?1c
ra test[?25h[?0c[?25l[?1c
abba
[?25h[?0c[?25l[?1cbba 
[?25h[?0c[?25l[?1c
a
aab 
[?25h[?0c[?25l[?1caaaaaaa [?25h[?0c
[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set whichwrap+=h
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 43 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/^x
dh
:set whichwrap-=h
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset whichwrap+=h
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^x
[?25l[?1cáx[?25h[?0c[?25l[?1cx[?25h[?0c
[?25l[?1c
:[?25h[?0cset whichwrap-=h
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:let a = '.é.' " one char of two bytes
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 548 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:let b = '.é.' " 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 = '.é.'
:put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet a = '.é.' " one char of two bytes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b = '.eé.' " normal e with composing char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^byteidx
[?25l[?1c
byteidx[?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), bytei

dx(a, 4)])
[?25l[?1c:set whichwrap-=h
ENDTESTáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), bytei

dx(b, 4)])
[?25l[?1cENDTESTáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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[?25h[?0c[?25l[?1c
/[?25h[?0c^byteidxcomp
[?25l[?1c
byteidxcomp[?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxc

omp(a, 3), byteidxcomp(a, 4)])
[?25l[?1cáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
:[?25h[?0clet b = '.eé.'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxc

omp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
[?25l[?1cSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^substitute
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 75 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:let y = substitute('123', '\zs', 'a', 'g')    | put =y
ENDTEST[?25h[?0c[?25l[?1csubstitute[?25h[?0c[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^substitute
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('123', '\zs', 'a', 'g')    | put =y
[?25l[?1ca1a2a3a[?25h[?0c[?25l[?1c

/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out[?25h[?0c[?25l[?1c

:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c

/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c104 fewer lines{ four}ra test
aaaaaaaáxbyteidx[0, 1, 3, 4, -1]
[0, 1, 4, 5, -1]byteidxcomp
[0, 1, 3, 4, -1]
[0, 1, 2, 4, 5, -1]substitute
a1a2a3a[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 166 lines, 730 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test69 = test61; then \
#	  if diff test.out test69.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test69.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test69.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test70.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cSmoke test for MzScheme interface and mzeval() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1398 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mzscheme.vim
[?25l[?1c"test.ok" 6 lines, 94 characters

"test.out" [New File] 6 lines, 94 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test70 = test61; then \
#	  if diff test.out test70.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test70.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test70.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test73.in
[?25h[?8c[?25h[?0c[?25l[?1c"test73.in" 169 lines, 3647 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
:"
:" On windows a stale "Xfind" directory may exist, remove it so that
:" we start from a clean state.
:call delete("Xfind", "rf")
:new
:let cwd=getcwd()
:let test_out = cwd . '/test.out'
:call mkdir('Xfind')
:cd Xfind
:set path=
:find
:exec "w! " . test_out
:close[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for find completion.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 164 lines, 3600 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 delete("Xfind", "rf")
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Do all test in a separate window to avoid E211 when we recursively
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" delete the Xfind directory during cleanup
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This will cause a few errors, do it silently.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" On windows a stale "Xfind" directory may exist, remove it so that
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" we start from a clean state.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xfind", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTESTtest73.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet test_out = cwd . '/test.out'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xfind')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xfind
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test73.in[?25h[?0c[?25l[?1c:[?25h[?0cset path=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE345: Can't find file "" in path[?25h[?0c[?25l[?1c:[?25h[?0cexec "w! " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out"
<ld/vim-XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test.out" [New] 0L, 0C written/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test73.in                   [?25h[?0c[?25l[?1c:[?25h[?0cset path=.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test73.in                   [?25h[?0c[?25l[?1c:[?25h[?0cset path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test73.in                   [?25h[?0c[?25l[?1c:[?25h[?0cset path=./**
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test73.in                   [?25h[?0c[?25l[?1c:[?25h[?0c" We shouldn't find any file at this point, test.out must be empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('in')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd in
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/in[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('path')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdirtest73.in                                                    [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/file.txt
[?25l[?1c"Xfind/file.txt" [New File]Xfind/file.txt[?25h[?0c[?25l[?1c-- INSERT --Holy Grail[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/file.txt" [New] 1L, 11C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/file.txt
[?25l[?1c"Xfind/in/file.txt" [New File]in/file.txt[?25h[?0c[?25l[?1c-- INSERT --Jimmy Hoffa[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/file.txt" [New] 1L, 12C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/stuff.txt
[?25l[?1c"Xfind/in/stuff.txt" [New File]stuff.txt[?25h[?0c[?25l[?1c-- INSERT --Another Holy Grail[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/stuff.txt" [New] 1L, 19C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/path/file.txt
[?25l[?1c"Xfind/in/path/file.txt" [New File]path/file.txt[?25h[?0c[?25l[?1c-- INSERT --E.T.[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/path/file.txt" [New] 1L, 5C written   [?25h[?0c[?25l[?1c:[?25h[?0cset path=Xfind/**
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Rerun the previous three find completions, using fullpath in 'path'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "set path=" . cwd . "/Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Same steps again, using relative and fullpath items that point to the same
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" recursive location.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This is to test that there are no duplicates in the completion list.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "set path+=Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffafile.txt     [?25h[?0c[?25l[?1c:[?25h[?0c" Test find completion for directory of current buffer, which at this point
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" is Xfind/in/file.txt.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset path=.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind st...[?25l[?1cuff.txt[?25h[?0c
[?25l[?1c"Xfind/in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 19C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test find completion for empty path item ",," which is the current directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xfind
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfindin/stuff.txt      /<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test73.in[?25h[?0c[?25l[?1c:[?25h[?0cset path=,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind f...[?25l[?1cile.txt[?25h[?0c...[?25l[?1c[?25h[?0c
[?25l[?1c"file.txt" 1L, 11CHoly Grailfile.txt    [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test shortening of
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    foo/x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    foo/y/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" When current directory is above foo/ they should be shortened to (in order
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" of appearance):
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    y/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('foo')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd foo
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/file.txt[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('x')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('y')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd x
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/x[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('bar')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo[?25h[?0c[?25l[?1c:[?25h[?0ccd y
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/y[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('bar')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfindfile.txt                                                          [?25h[?0c[?25l[?1c:[?25h[?0c" We should now be in the Xfind directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce foo/x/bar/voyager.txt
[?25l[?1c"foo/x/bar/voyager.txt" [New File]oo/x/bar/voyager.txt[?25h[?0c[?25l[?1c-- INSERT --Voyager 1[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"foo/x/bar/voyager.txt" [New] 1L, 10C written   [?25h[?0c[?25l[?1c:[?25h[?0ce foo/y/bar/voyager.txt
[?25l[?1c"foo/y/bar/voyager.txt" [New File]y[?25h[?0c[?25l[?1c-- INSERT --Voyager 2[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"foo/y/bar/voyager.txt" [New] 1L, 10C written   [?25h[?0c[?25l[?1c:[?25h[?0cexec "set path=" . cwd . "/Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1cx/bar/voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"foo/x/bar/voyager.txt" 1L, 10C1x[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1cx/bar/voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cy[?25h[?0c
[?25l[?1c"foo/y/bar/voyager.txt" 1L, 10C2y[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" When current directory is .../foo/y/bar they should be shortened to (in
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" order of appearance):
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    ./voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd foo
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/fooy/bar/voyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0ccd y
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/ybar/voyager.txt  [?25h[?0c[?25l[?1c:[?25h[?0ccd bar
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/y/barvoyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"voyager.txt" 1L, 10C[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cx/bar/voyager.txt[?25h[?0c
[?25l[?1c<ild/vim-XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/Xfind/foo/x/bar/voyager.txt"
<-XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/Xfind/foo/x/bar/voyager.txt" 1L, 10C1/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/x/bar/voyager.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Check the opposite too:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/y[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foox/bar/voyager.txt                                                              [?25h[?0c[?25l[?1c:[?25h[?0ccd x
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/xbar/voyager.txt  [?25h[?0c[?25l[?1c:[?25h[?0ccd bar
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/x/barvoyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"voyager.txt" 1L, 10C[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cy/bar/voyager.txt[?25h[?0c
[?25l[?1c<ild/vim-XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/Xfind/foo/y/bar/voyager.txt"
<-XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/Xfind/foo/y/bar/voyager.txt" 1L, 10C2/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/foo/y/bar/voyager.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Check for correct handling of shorten_fname()'s behavior on windows
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd . "/Xfind/in"
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfind/in[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"file.txt" 1L, 12CJimmy Hoffafile.txt                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for relative to current buffer 'path' item
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd . "/Xfind/"
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xfindin/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cset path=./path
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open the file where Jimmy Hoffa is found
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce in/file.txt
[?25l[?1c"in/file.txt" 1L, 12C[?25h[?0c[?25l[?1c:[?25h[?0c" Find the file containing 'E.T.' in the Xfind/in/path directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1ctxt[?25h[?0c
[?25l[?1c"in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test that completion works when path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open Jimmy Hoffa file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce in/file.txt
[?25l[?1c"in/file.txt" 1L, 12CJimmy Hoffafile.txt     [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Search for the file containing Holy Grail in same directory as in/path.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind stu...[?25l[?1cff.txt[?25h[?0c
[?25l[?1c"in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test.out" 1L, 19C appended[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xfind", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test73 = test61; then \
#	  if diff test.out test73.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test73.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test73.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test75.in
[?25h[?8c[?25h[?0c[?25l[?1c"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<C-V> is<F4>foo
:vnoremap <script> <buffer> <expr> <silent> bar isbar
:call append('$', maparg('foo<C-V>'))
:call append('$', string(maparg('foo<C-V>', '', 0, 1)))
:call append('$', string(maparg('bar', '', 0, 1)))
:map <buffer> <nowait> foo bar
:call append('$', string(maparg('foo', '', 0, 1)))
:"
:map abc x<char-114>x
:call append('$', maparg('abc'))
:map abc y<S-char-114>y
:call append('$', maparg('abc'))
:"
Go^[:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for maparg().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 34 lines, 919 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" Outside of the range, minimum
:inoremap <Char-0x1040> a
:execute "normal a\u1040\<Esc>"
:" Inside of the range, minimum
:inoremap <Char-0x103f> b
:execute "normal a\u103f\<Esc>"
:" Inside of the range, maximum
:inoremap <Char-0xf03f> c
:execute "normal a\uf03f\<Esc>"
:" Outside of the range, maximum
:inoremap <Char-0xf040> d
:execute "normal a\uf040\<Esc>"
:"
:/^eof/+1,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf8
[?25l[?1c:map abc x<char-114>x
:call append('$', maparg('abc'))
:map abc y<S-char-114>y
:call append('$', maparg('abc'))
:"
Go^[:"
:" Outside of the range, minimum
:inoremap <Char-0x1040> a
:execute "normal a\u1040\<Esc>"
:" Inside of the range, minimum
:inoremap <Char-0x103f> b
:execute "normal a\u103f\<Esc>"
:" Inside of the range, maximum
:inoremap <Char-0xf03f> c
:execute "normal a\uf03f\<Esc>"
:" Outside of the range, maximum
:inoremap <Char-0xf040> d
:execute "normal a\uf040\<Esc>"
:"
:/^eof/+1,$w! test.out
:qa!
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0c" Test maparg() with a string result
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap foo<C-V> is<F4>foo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap <script> <buffer> <expr> <silent> bar isbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('foo<C-V>'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('foo<C-V>', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('bar', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap <buffer> <nowait> foo bar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('foo', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap abc x<char-114>x
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('abc'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap abc y<S-char-114>y
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('abc'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1ceof
is<F4>foo
{'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'nowait': 0, 'expr':0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
{'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'nowait': 0, 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
{'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ', 'nowait': 1, 'expr': 0, 'sid': 0, 'rhs': 'bar', 'buffer': 1}
xrx
yRy[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Outside of the range, minimum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0x1040> a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\u1040\<Esc>"
[?25l[?1ca[?25h[?0c[?25l[?1c:[?25h[?0c" Inside of the range, minimum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0x103f> b
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\u103f\<Esc>"
[?25l[?1cb[?25h[?0c[?25l[?1c:[?25h[?0c" Inside of the range, maximum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0xf03f> c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\uf03f\<Esc>"
[?25l[?1cc[?25h[?0c[?25l[?1c:[?25h[?0c" Outside of the range, maximum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0xf040> d
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\uf040\<Esc>"
[?25l[?1cd[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^eof/+1,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 7 lines, 384 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test75 = test61; then \
#	  if diff test.out test75.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test75.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test75.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test77.failed test.ok test.out X* viminfo
cp test77.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test77.in
[?25h[?8c[?25h[?0c[?25l[?1c"test77.in" 30 lines, 719 charactersInserts 2 million lines with consecutive integers starting from 1
(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
and writes its cksum to test.out.

We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
up the lines the checksum would differ.

cksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST
:so small.vim
:if !executable("cksum")
: e! test.ok
: w! test.out
: qa!
:endif
:set fileformat=unix undolevels=-1
ggdG
:let i = 1
:while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhileggdd
:w! Xtest[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cInserts 2 million lines with consecutive integers starting from 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 288 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:r !cksum Xtest
:s/\s/ /g
:set fileformat&
:.w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !executable("cksum")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1ccksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST[?25h[?0c[?25l[?1c
:[?25h[?0cset fileformat=unix undolevels=-1
[?25l[?1c[?25h[?0c[?25l[?1cInserts 2 million lines with consecutive integers starting from 1
(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
and writes its cksum to test.out.

We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
up the lines the checksum would differ.[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhil

e[?25l[?1c12345678910111213141516171819202122[?25h[?0c[?25l[?1c
23[?25h[?0c
[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 2000000 lines, 14888896 characters written[?25h[?0c[?25l[?1c:[?25h[?0cr !cksum Xtest
[?25l[?1c[?25h[?0c[?25l[?1c1
2
3678979763 14888896 Xtest
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22[?25h[?0c[?25l[?1c:[?25h[?0cs/\s/ /g
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 26 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test77 = test61; then \
#	  if diff test.out test77.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test77.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test77.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test79.failed test.ok test.out X* viminfo
cp test79.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test79.in
[?25h[?8c[?25h[?0c[?25l[?1c"test79.in" 255 lines, 3381 charactersTest for *sub-replace-special* and *sub-replace-expression* on :substitute.
Test for submatch() on :substitue.
Test for *:s%* on :substitute.
Test for :s replacing \n with  line break.

STARTTEST
:so small.vim
ENDTEST

Results of test71:

STARTTEST
:set magic
:set cpo&
/^TEST/
j:s/A/&&/
j:s/B/\&/
j:s/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
j:s/D/d/
j:s/E/~/
j:s/F/\~/
j:s/G/\ugg/
j:s/H/\Uh\Eh/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for *sub-replace-special* and *sub-replace-expression* on :substitute.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 347 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTj:s/L/^V^M/
j:s/M/\r/
j:s/N/\^V^M/
j:s/O/\n/
j:s/P/\b/
j:s/Q/\t/
j:s/R/\\/
j:s/S/\c/
j:s/T/^V^@/
j:s/U/\L\uuUu\l\EU/
j:s/V/\U\lVvV\u\Ev/
ENDTEST

TEST_1:
A
B
C123456789
D
E
F
G
H
I[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/&&/
[?25l[?1cA
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\&/
[?25l[?1c&[?25h[?0c
[?25l[?1c:[?25h[?0cs/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l[?1c987654321
[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/d/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/E/~/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/G/\ugg/
[?25l[?1cg
[?25h[?0c
[?25l[?1c:[?25h[?0cs/H/\Uh\Eh/
[?25l[?1ch
[?25h[?0c
[?25l[?1c:[?25h[?0cs/I/\lII/
[?25l[?1ciI
[?25h[?0c[?25l[?1c
J[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\LJ\EJ/
[?25l[?1cjJ
[?25h[?0c[?25l[?1c
K[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\Uk\ek/
[?25l[?1ck
[?25h[?0c[?25l[?1c
lLl[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/^^M/
[?25l[?1c
l[?25h[?0c[?25l[?1c
mMm
[?25h[?0c[?25l[?1c
:[?25h[?0cs/M/\r/
[?25l[?1c
m[?25h[?0c[?25l[?1c
nNn
[?25h[?0c[?25l[?1c
:[?25h[?0cs/N/\^^M/
[?25l[?1c^Mn
[?25h[?0c[?25l[?1c
oOo[?25h[?0c[?25l[?1c
:[?25h[?0cs/O/\n/
[?25l[?1c^@o
[?25h[?0c[?25l[?1c
pPp[?25h[?0c[?25l[?1c
:[?25h[?0cs/P/\b/
[?25l[?1c^Hp
[?25h[?0c[?25l[?1c
qQq[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q/\t/
[?25l[?1c       q
[?25h[?0c[?25l[?1c
rRr[?25h[?0c[?25l[?1c
:[?25h[?0cs/R/\\/
[?25l[?1c\
[?25h[?0c[?25l[?1c
sSs[?25h[?0c[?25l[?1c
:[?25h[?0cs/S/\c/
[?25l[?1cc
[?25h[?0c[?25l[?1c
tTt[?25h[?0c[?25l[?1c
:[?25h[?0cs/T/^^@/
[?25l[?1c^@t
[?25h[?0c[?25l[?1c
U[?25h[?0c[?25l[?1c
:[?25h[?0cs/U/\L\uuUu\l\EU/
[?25l[?1cuuU
[?25h[?0c[?25l[?1c
V[?25h[?0c[?25l[?1c
:[?25h[?0cs/V/\U\lVvV\u\Ev/
[?25l[?1cvVVv
[?25h[?0c[?25l[?1c/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set nomagic
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 351 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/L/^V^M/
j:s/M/\r/
j:s/N/\^V^M/
j:s/O/\n/
j:s/P/\b/
j:s/Q/\t/
j:s/R/\\/
j:s/S/\c/
j:s/T/^V^@/
j:s/U/\L\uuUu\l\EU/
j:s/V/\U\lVvV\u\Ev/
ENDTEST

TEST_2:
A
B
C123456789
D
E
F
G
H
I[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/&&/
[?25l[?1c&&
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\&/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l[?1c987654321
[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/d/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/E/~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/G/\ugg/
[?25l[?1cg
[?25h[?0c
[?25l[?1c:[?25h[?0cs/H/\Uh\Eh/
[?25l[?1ch
[?25h[?0c
[?25l[?1c:[?25h[?0cs/I/\lII/
[?25l[?1ciI
[?25h[?0c[?25l[?1c
J[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\LJ\EJ/
[?25l[?1cjJ
[?25h[?0c[?25l[?1c
K[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\Uk\ek/
[?25l[?1ck
[?25h[?0c[?25l[?1c
lLl[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/^^M/
[?25l[?1c
l[?25h[?0c[?25l[?1c
mMm
[?25h[?0c[?25l[?1c
:[?25h[?0cs/M/\r/
[?25l[?1c
m[?25h[?0c[?25l[?1c
nNn
[?25h[?0c[?25l[?1c
:[?25h[?0cs/N/\^^M/
[?25l[?1c^Mn
[?25h[?0c[?25l[?1c
oOo[?25h[?0c[?25l[?1c
:[?25h[?0cs/O/\n/
[?25l[?1c^@o
[?25h[?0c[?25l[?1c
pPp[?25h[?0c[?25l[?1c
:[?25h[?0cs/P/\b/
[?25l[?1c^Hp
[?25h[?0c[?25l[?1c
qQq[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q/\t/
[?25l[?1c       q
[?25h[?0c[?25l[?1c
rRr[?25h[?0c[?25l[?1c
:[?25h[?0cs/R/\\/
[?25l[?1c\
[?25h[?0c[?25l[?1c
sSs[?25h[?0c[?25l[?1c
:[?25h[?0cs/S/\c/
[?25l[?1cc
[?25h[?0c[?25l[?1c
tTt[?25h[?0c[?25l[?1c
:[?25h[?0cs/T/^^@/
[?25l[?1c^@t
[?25h[?0c[?25l[?1c
U[?25h[?0c[?25l[?1c
:[?25h[?0cs/U/\L\uuUu\l\EU/
[?25l[?1cuuU
[?25h[?0c[?25l[?1c
V[?25h[?0c[?25l[?1c
:[?25h[?0cs/V/\U\lVvV\u\Ev/
[?25l[?1cvVVv
[?25h[?0c[?25l[?1c/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 203 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/B/\='\\'/
j:s/C/\='^V^M'/
j:s/D/\='\^V^M'/
j:s/E/\='\\^V^M'/
j:s/F/\='\r'/
j:s/G/\='^V^@'/
j:s/H/\='\^V^@'/
j:s/I/\='\\^V^@'/
j:s/J/\='\n'/
j:s/K/\="\r"/
j:s/L/\="\n"/
ENDTEST

TEST_3:
aAa
bBb
cCc
dDd
eEe
fFf
gGg
hHh
iIi[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/\='\'/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\='\\'/
[?25l[?1c\\b
[?25h[?0c
[?25l[?1c:[?25h[?0cs/C/\='^^M'/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/\='\^^M'/
[?25l[?1c\d[?25h[?0c
[?25l[?1c


:[?25h[?0cs/E/\='\\^^M'/
[?25l[?1c\\
efFf[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\='\r'/
[?25l[?1c\rf
[?25h[?0c[?25l[?1c
gGg[?25h[?0c[?25l[?1c
:[?25h[?0cs/G/\='^^@'/
[?25l[?1c
g[?25h[?0c[?25l[?1c
hHh
[?25h[?0c[?25l[?1c
:[?25h[?0cs/H/\='\^^@'/
[?25l[?1c
\h[?25h[?0c[?25l[?1c
iIi
[?25h[?0c[?25l[?1c
:[?25h[?0cs/I/\='\\^^@'/
[?25l[?1c
\\
i[?25h[?0c[?25l[?1c
jJj
[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\='\n'/
[?25l[?1c\nj
[?25h[?0c[?25l[?1c
kKk[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\="\r"/
[?25l[?1c
k[?25h[?0c[?25l[?1c
lLl
[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/\="\n"/
[?25l[?1c
l[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 611 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/B/\=substitute(submatch(0), '.', '\\', '')/
j:s/C/\=substitute(submatch(0), '.', '^V^M', '')/
j:s/D/\=substitute(submatch(0), '.', '\^V^M', '')/
j:s/E/\=substitute(submatch(0), '.', '\\^V^M', '')/
j:s/F/\=substitute(submatch(0), '.', '\r', '')/
j:s/G/\=substitute(submatch(0), '.', '^V^@', '')/
j:s/H/\=substitute(submatch(0), '.', '\^V^@', '')/
j:s/I/\=substitute(submatch(0), '.', '\\^V^@', '')/
j:s/J/\=substitute(submatch(0), '.', '\n', '')/
j:s/K/\=substitute(submatch(0), '.', "\r", '')/
j:s/L/\=substitute(submatch(0), '.', "\n", '')/
ENDTEST

TEST_4:
aAa
bBb
cCc
dDd
eEe
fFf
gGg
hHh
iIi[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/\=substitute(submatch(0), '.', '\', '')/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\=substitute(submatch(0), '.', '\\', '')/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/C/\=substitute(submatch(0), '.', '^^M', '')/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/\=substitute(submatch(0), '.', '\^^M', '')/
[?25l[?1cd[?25h[?0c
[?25l[?1c


:[?25h[?0cs/E/\=substitute(submatch(0), '.', '\\^^M', '')/
[?25l[?1c\efFf[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\=substitute(submatch(0), '.', '\r', '')/
[?25l[?1c
f[?25h[?0c[?25l[?1c
gGg
[?25h[?0c[?25l[?1c
:[?25h[?0cs/G/\=substitute(submatch(0), '.', '^^@', '')/
[?25l[?1c
g[?25h[?0c[?25l[?1c
hHh
[?25h[?0c[?25l[?1c
:[?25h[?0cs/H/\=substitute(submatch(0), '.', '\^^@', '')/
[?25l[?1c
h[?25h[?0c[?25l[?1c
iIi
[?25h[?0c[?25l[?1c
:[?25h[?0cs/I/\=substitute(submatch(0), '.', '\\^^@', '')/
[?25l[?1c
\i[?25h[?0c[?25l[?1c
jJj
[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\=substitute(submatch(0), '.', '\n', '')/
[?25l[?1c
j[?25h[?0c[?25l[?1c
kKk
[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\=substitute(submatch(0), '.', "\r", '')/
[?25l[?1c
k[?25h[?0c[?25l[?1c
lLl
[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/\=substitute(submatch(0), '.', "\n", '')/
[?25l[?1c
l[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 445 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set cpo&
/^TEST/
j:s/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)/
j:s/B\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c
TEST_5:[?25h[?0c[?25l[?1c
A123456789
[?25h[?0c[?25l[?1c
:[?25h[?0cs/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .

submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(

3) . submatch(2) . submatch(1)/
[?25l[?1ci\
i987654321[?25h[?0c[?25l[?1c
B123456789
[?25h[?0c[?25l[?1c
:[?25h[?0cs/B\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=string([submatch(0, 1), sub

match(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), sub

match(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
[?25l[?1ci
j[['B123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/^TEST/
:set cpo+=/
j:s/A/a/
j:s/B/%/
:set cpo-=/
j:s/C/c/
j:s/D/%/
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1cTEST_6:
A
B[?25h[?0c[?25l[?1c


:[?25h[?0cset cpo+=/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/a/
[?25l[?1ca[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/%/
[?25l[?1ca[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=/
[?25l[?1c[?25h[?0c[?25l[?1cC
D[?25h[?0c[?25l[?1c


:[?25h[?0cs/C/c/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/%/
[?25l[?1c%[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 11 lines, 303 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set cpo&
/^TEST_7/
j:s/A./\=submatch(0)/
j:s/B./\=submatch(0)/
j:s/C./\=strtrans(string(submatch(0, 1)))/
j:s/D.\nD/\=strtrans(string(submatch(0, 1)))/
j:s/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
/^Q$
:s/Q[^\n]Q/\=submatch(0)."foobar"/
:" Avoid :s error breaks dotest map on Windows.
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST_7/
[?25l[?1c
TEST_7:[?25h[?0c[?25l[?1c
A^MA
[?25h[?0c[?25l[?1c
:[?25h[?0cs/A./\=submatch(0)/
[?25l[?1c
A[?25h[?0c[?25l[?1c
B^@B
[?25h[?0c[?25l[?1c
:[?25h[?0cs/B./\=submatch(0)/
[?25l[?1c
B[?25h[?0c[?25l[?1c
C^@C
[?25h[?0c[?25l[?1c
:[?25h[?0cs/C./\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['C^@']C
[?25h[?0c[?25l[?1c
D^@[?25h[?0c[?25l[?1c
:[?25h[?0cs/D.\nD/\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['D^@', 'D']
[?25h[?0c[?25l[?1c
E^@[?25h[?0c[?25l[?1c
:[?25h[?0cs/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['E^@', '^@', '^@', '^@', '^@E']
[?25h[?0c[?25l[?1c/[?25h[?0c^Q$
[?25l[?1c
Q[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q[^\n]Q/\=submatch(0)."foobar"/
[?25l[?1cE486: Pattern not found: Q[^\n]Q[?25h[?0c[?25l[?1c:[?25h[?0c" Avoid :s error breaks dotest map on Windows.
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
Q

STARTTEST[?25h[?0c[?25l[?1c
:function! TitleString()
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 177 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTlet check = 'foo' =~ 'bar'
  return ""
endfunction
:set titlestring=%{TitleString()}
:/^test_one/s/.*/\="foo\nbar"/
:/^test_two/s/.*/\="foo\nbar"/c
y
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cfunction! TitleString()
[?25l[?1c
:  [?25h[?0c  let check = 'foo' =~ 'bar'

[?25l[?1c:  [?25h[?0c  return ""

[?25l[?1c:  [?25h[?0cendfunction
[?25l[?1cTEST_7:
A[?25h[?0c[?25l[?1c
:[?25h[?0cset titlestring=%{TitleString()}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^test_one/s/.*/\="foo\nbar"/
[?25l[?1cfoo
bar[?25h[?0c[?25l[?1c
:[?25h[?0c/^test_two/s/.*/\="foo\nbar"/c
[?25l[?1c
test_tworeplace with \="foo\nbar" (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c
foobar
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 72 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:1;/^Results/,$wq! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c136 fewer linesaa
c
%TEST_7:AABB['C^@']C['D^@', 'D']
['E^@', '^@', '^@', '^@', '^@E']
Q
Qfoo
bar
foobar[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 134 lines, 574 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test79 = test61; then \
#	  if diff test.out test79.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test79.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test79.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test80.failed test.ok test.out X* viminfo
cp test80.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test80.in
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/tag.o tag.c
[?25h[?8c[?25h[?0c[?25l[?1c"test80.in" 201 lines, 6298 charactersTest for *sub-replace-special* and *sub-replace-expression* on substitute().
Test for submatch() on substitute().
Test for *:s%* on :substitute.

STARTTEST
:so small.vim
ENDTEST

TEST_1:

STARTTEST
:set magic
:set cpo&
:$put =\"\n\nTEST_1:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
:$put =substitute('D', 'D', 'd', '')
:$put =substitute('E', 'E', '~', '')
:$put =substitute('F', 'F', '\~', '')
:$put =substitute('G', 'G', '\ugg', '')
:$put =substitute('H', 'H', '\Uh\Eh', '')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for *sub-replace-special* and *sub-replace-expression* on substitute().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1142 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =substitute('pPp', 'P', '\b', '')
:$put =substitute('qQq', 'Q', '\t', '')
:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('xXx', 'X', \"\r\", '')
:$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
:$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
/^TEST_2
ENDTEST

TEST_2:

STARTTEST
:set nomagic
:set cpo&
:$put =\"\n\nTEST_2:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_1:\"
[?25l[?1c3 more lines:set cpo&
:$put =\"\n\nTEST_10:\"
:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST

TEST_11:

STARTTEST
:/^Results/,$wq! test.out
ENDTEST

Results of test72:


TEST_1:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', '&&', '')
[?25l[?1c
AA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '\&', '')
[?25l[?1c
&[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l[?1c:let y = substitute('123', '\zs.', 'a', 'g')| $put =y.\zs\ze', 'a', 'g') .', 'a', 'g').\ze1\|\ze', 'a', 'g')zs\|[23]', 'a', 'g')
/^TEST_11ENDTESTTEST_11:STARTTEST
:/^Results/,$wq! test.out
ENDTESTResults of test72:TEST_1:
AA&C123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', 'd', '')
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('E', 'E', '~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('F', 'F', '\~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('G', 'G', '\ugg', '')
[?25l[?1c
Gg[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l[?1c
Hh[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('I', 'I', '\lII', '')
[?25l[?1c
iI[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l[?1c
jJ[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('K', 'K', '\Uk\ek', '')
[?25l[?1c
Kk[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('lLl', 'L', '^^M', '')
[?25l[?1c
l^Ml[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('mMm', 'M', '\r', '')
[?25l[?1c
m^Mm[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('nNn', 'N', '\^^M', '')
[?25l[?1c
n^Mn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('oOo', 'O', '\n', '')
[?25l[?1co
o[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('pPp', 'P', '\b', '')
[?25l[?1c
p^Hp[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('qQq', 'Q', '\t', '')
[?25l[?1c
qq[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('rRr', 'R', '\\', '')
[?25l[?1c
r\r[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('sSs', 'S', '\c', '')
[?25l[?1c
scs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('uUu', 'U', \"\n\", '')
[?25l[?1cu
u[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('vVv', 'V', \"\b\", '')
[?25l[?1c
v^Hv[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('wWw', 'W', \"\\\", '')
[?25l[?1c
w\w[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('xXx', 'X', \"\r\", '')
[?25l[?1c
x^Mx[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
[?25l[?1c
YyyY[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
[?25l[?1c
zZZz[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_2
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('xXx', 'X', \"\r\", '')
:$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
:$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
/^TEST_2
ENDTEST

TEST_2:

STARTTEST
:set nomagic
:set cpo&
:$put =\"\n\nTEST_2:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
:$put =substitute('D', 'D', 'd', '')
:$put =substitute('E', 'E', '~', '')
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1144 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =substitute('pPp', 'P', '\b', '')
:$put =substitute('qQq', 'Q', '\t', '')
:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('tTt', 'T', \"\r\", '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
:$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
/^TEST_3
ENDTEST

TEST_3:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_3:\"
:let y = substitute('aAa', 'A', '\="\\"', '')| $put =y
:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_2:\"
[?25l[?1c3 more linesHh
iI
jJ
Kk
l^Ml
m^Mm
n^Mn
o
o
p^Hp
qq
r\r
scs
u
u
v^Hv
w\w
x^Mx
YyyY
zZZz


TEST_2:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', '&&', '')
[?25l[?1c
AA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '\&', '')
[?25l[?1c
&[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l[?1cKk
l^Ml
mm
nn
op^Hp
q       q
r\rscs
uv^Hv
w\wx^Mx
YyyY
zZZzTEST_2:
AA&C123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', 'd', '')
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('E', 'E', '~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('F', 'F', '\~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('G', 'G', '\ugg', '')
[?25l[?1c
Gg[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l[?1c
Hh[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('I', 'I', '\lII', '')
[?25l[?1c
iI[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l[?1c
jJ[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('K', 'K', '\Uk\ek', '')
[?25l[?1c
Kk[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('lLl', 'L', '^^M', '')
[?25l[?1c
l^Ml[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('mMm', 'M', '\r', '')
[?25l[?1c
m^Mm[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('nNn', 'N', '\^^M', '')
[?25l[?1c
n^Mn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('oOo', 'O', '\n', '')
[?25l[?1co
o[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('pPp', 'P', '\b', '')
[?25l[?1c
p^Hp[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('qQq', 'Q', '\t', '')
[?25l[?1c
qq[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('rRr', 'R', '\\', '')
[?25l[?1c
r\r[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('sSs', 'S', '\c', '')
[?25l[?1c
scs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('tTt', 'T', \"\r\", '')
[?25l[?1c
t^Mt[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('uUu', 'U', \"\n\", '')
[?25l[?1cu
u[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('vVv', 'V', \"\b\", '')
[?25l[?1c
v^Hv[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('wWw', 'W', \"\\\", '')
[?25l[?1c
w\w[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
[?25l[?1c
XxxX[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
[?25l[?1c
yYYy[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_3
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('tTt', 'T', \"\r\", '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
:$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
/^TEST_3
ENDTEST

TEST_3:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_3:\"
:let y = substitute('aAa', 'A', '\="\\"', '')| $put =y
:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y
:let y = substitute('eEe', 'E', '\="\\\\^V^M"', '')     | $put =y
:let y = substitute('fFf', 'F', '\="\\r"', '')| $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 642 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('jJj', 'J', '\="\\n"', '')| $put =y
:let y = substitute('kKk', 'K', '\="\r"', '')| $put =y
:let y = substitute('lLl', 'L', '\="\n"', '')| $put =y
/^TEST_4
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_3:\"
[?25l[?1c3 more linesHh
iI
jJ
Kk
l^Ml
m^Mm
n^Mn
o
o
p^Hp
qq
r\r
scs
t^Mt
u
u
v^Hv
w\w
XxxX
yYYy


TEST_3:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('aAa', 'A', '\="\\"', '')           | $put =y
[?25l[?1c
a\a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('bBb', 'B', '\="\\\\"', '')         | $put =y
[?25l[?1c
b\\b[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('cCc', 'C', '\="^^M"', '')         | $put =y
[?25l[?1c
c^Mc[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('dDd', 'D', '\="\\^^M"', '')       | $put =y
[?25l[?1c
d\^Md[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('eEe', 'E', '\="\\\\^^M"', '')     | $put =y
[?25l[?1c
e\\^Me[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('fFf', 'F', '\="\\r"', '')          | $put =y
[?25l[?1c
f\rf[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('jJj', 'J', '\="\\n"', '')          | $put =y
[?25l[?1c
j\nj[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('kKk', 'K', '\="\r"', '')           | $put =y
[?25l[?1c
k^Mk[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('lLl', 'L', '\="\n"', '')           | $put =y
[?25l[?1cl
l[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_4
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y
:let y = substitute('eEe', 'E', '\="\\\\^V^M"', '')     | $put =y
:let y = substitute('fFf', 'F', '\="\\r"', '')| $put =y
:let y = substitute('jJj', 'J', '\="\\n"', '')| $put =y
:let y = substitute('kKk', 'K', '\="\r"', '')| $put =y
:let y = substitute('lLl', 'L', '\="\n"', '')| $put =y
/^TEST_4
ENDTEST

TEST_4:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_4:\"
:let y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')| $put =y
:let y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '')     | $put =y
:let y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^V^M", "")', '')     | $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 912 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^V^M", "")',
'')   | $put =y
:let y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^V^M", "")', '') | $put =y
:let y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', '')| $put =y
:let y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '')| $put =y
:let y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')| $put =y
:let y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')| $put =y
/^TEST_5
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_4:\"
[?25l[?1c3 more linest^Mt
u
u
v^Hv
w\w
XxxX
yYYy


TEST_3:
a\a
b\\b
c^Mc
d\^Md
e\\^Me
f\rf
j\nj
k^Mk
l
l


TEST_4:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')

      | $put =y
[?25l[?1cu

v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '

')     | $put =y
[?25l[?1cu
v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^^M", "")', '')

    | $put =y
[?25l[?1cv^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^^M", "")', '

')   | $put =y
[?25l[?1cw\w
XxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^^M", "")',

'') | $put =y
[?25l[?1cXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', ''

)      | $put =y
[?25l[?1cyYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mf[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', ''

)      | $put =y
[?25l[?1cTEST_3:
a\a
b\\bc^Mc
d\^Md
e\\^Me
f\rfj\njk^Mk
llTEST_4:
a\a
b\bc^Mc
d^Md
e\^Me
ff
jj[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')

      | $put =y
[?25l[?1cTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')

      | $put =y
[?25l[?1cb\\b
c^Mc
d\^Md
e\\^Me
f\rfj\njk^Mk
llTEST_4:
a\a
b\bc^Mc
d^Md
e\^Me
ff
jjk^Mk
l
l[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_5
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '')| $put =y
:let y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')| $put =y
:let y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')| $put =y
/^TEST_5
ENDTEST

TEST_5:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])', '')
/^TEST_6
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 543 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTENDTEST[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_5:\"
[?25l[?1c3 more linese\\^Me
f\rf
j\nj
k^Mk
l
l


TEST_4:
a\a
b\b
c^Mc
d^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . subm

atch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
[?25l[?1cf\rf
j\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), su

bmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), su

bmatch(1, 1)])', '')
[?25l[?1cj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_6
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])', '')
/^TEST_6
ENDTEST

TEST_6:

STARTTEST
:set magic&
:$put =\"\n\nTEST_6:\"
:set cpo+=/
:$put =substitute('A', 'A', 'a', '')
:$put =substitute('B', 'B', '%', '')
:set cpo-=/
:$put =substitute('C', 'C', 'c', '')
:$put =substitute('D', 'D', '%', '')
/^TEST_7
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 216 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1cTEST_7:[?25h[?0c[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_6:\"
[?25l[?1c3 more linesl


TEST_4:
a\a
b\b
c^Mc
d^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0cset cpo+=/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', 'a', '')
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '%', '')
[?25l[?1c
%[?25h[?0c[?25l[?1c
:[?25h[?0cset cpo-=/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('C', 'C', 'c', '')
[?25l[?1c
c[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', '%', '')
[?25l[?1c
%[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_7
[?25l[?1csearch hit BOTTOM, continuing at TOP:set magic&
:$put =\"\n\nTEST_6:\"
:set cpo+=/
:$put =substitute('A', 'A', 'a', '')
:$put =substitute('B', 'B', '%', '')
:set cpo-=/
:$put =substitute('C', 'C', 'c', '')
:$put =substitute('D', 'D', '%', '')
/^TEST_7
ENDTEST

TEST_7:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A^V^MA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
:$put =substitute('-bb', '\zeb', 'a', 'g')
:$put =substitute('-bb', '\ze', 'c', 'g')
/^TEST_8
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 313 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_7:\"
[?25l[?1c3 more linesd^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
a
%
c
%


TEST_7:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A^^MA', 'A.', '\=submatch(0)', '')
[?25l[?1c
A^MA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
[?25l[?1cB
B[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
[?25l[?1c['B
']B[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('-bb', '\zeb', 'a', 'g')
[?25l[?1c
-abab[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('-bb', '\ze', 'c', 'g')
[?25l[?1c
c-cbcbc[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_8
[?25l[?1csearch hit BOTTOM, continuing at TOP:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A^V^MA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
:$put =substitute('-bb', '\zeb', 'a', 'g')
:$put =substitute('-bb', '\ze', 'c', 'g')
/^TEST_8
ENDTEST

TEST_8:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 10 lines, 186 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTyy/^TEST_9:
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_8:\"
[?25l[?1c3 more linesTEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
a
%
c
%


TEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =',,X'
[?25l[?1c
,,X[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|X\)/\1N/g
[?25l[?1cN,,NX
[?25h[?0c[?25l[?1c:[?25h[?0c$put =',,Y'
[?25l[?1c
,,Y[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|Y\)/\1N/gc
[?25l[?1c,
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cN,,NY
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =',,Z'
[?25l[?1c
,,Z[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|Z\)/\1N/gc
[?25l[?1c,
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cN,,Z
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c,NZ
[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_9:
[?25l[?1csearch hit BOTTOM, continuing at TOP:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
yy/^TEST_9:
ENDTEST

TEST_9:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
ENDTEST

TEST_10:
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 82 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_9:\"
[?25l[?1c3 more linesa
%
c
%


TEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
N,,NX
N,,NY
N,,NZ


TEST_9:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put ='xxx'
[?25l[?1c
xxx[?25h[?0c[?25l[?1c
:[?25h[?0cs/x/X/gc
[?25l[?1cx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cXx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cXx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cx[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_10:
[?25l[?1csearch hit BOTTOM, continuing at TOPTEST_9:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
ENDTEST

TEST_10:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_10:\"
:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 584 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_10:\"
[?25l[?1c3 more linesTEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
N,,NX
N,,NY
N,,NZ


TEST_9:
XXx


TEST_10:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('123', '\zs', 'a', 'g')             | $put =y
[?25l[?1c
a1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\zs.', 'a', 'g')            | $put =y
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '.\zs', 'a', 'g')            | $put =y
[?25l[?1c
1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\ze', 'a', 'g')             | $put =y
[?25l[?1c
a1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\ze.', 'a', 'g')            | $put =y
[?25l[?1c
a1a2a3[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '.\ze', 'a', 'g')            | $put =y
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '1\|\ze', 'a', 'g')          | $put =y
[?25l[?1c
aa2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
[?25l[?1c
1aaa[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_11
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST

TEST_11:

STARTTEST
:/^Results/,$wq! test.out
ENDTEST

Results of test72:


TEST_1:
AA
&
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 26 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 131 lines, 617 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test80 = test61; then \
#	  if diff test.out test80.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test80.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test80.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test82.failed test.ok test.out X* viminfo
cp test82.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test82.in
[?25h[?8c[?25h[?0c[?25l[?1c"test82.in" 103 lines, 3166 charactersTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
Also test "g~ap".

STARTTEST
:so small.vim
:if !has("multi_byte")
: e! test.ok
: w! test.out
: qa!
:endif
:set enc=utf8
ggdG:
:
:function! Ch(a, op, b, expected)
:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 97 lines, 3055 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:call append(0, printf('%d checks passed', b:passed))
:"
:" test that g~ap changes one paragraph only.
:new
iabcd

defg^[gg0g~ap:let lns = getline(1,3)
:q!
:call append(line('$'), lns)
:"
:wq! test.out
ENDTEST

~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("multi_byte")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor[?25h[?0c[?25l[?1c


:[?25h[?0cset enc=utf8
[?25l[?1c:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:call append(0, printf('%d checks passed', b:passed))
:"
:" test that g~ap changes one paragraph only.
:new
iabcd

defg^[gg0g~ap:let lns = getline(1,3)
:q!
:call append(line('$'), lns)
:"
:wq! test.out
ENDTEST

~                                                                               ~                                                                               [?25h[?0c[?25l[?1cTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
Also test "g~ap".

STARTTEST
:so small.vim
:if !has("multi_byte")
: e! test.ok
: w! test.out
: qa!
:endif
:set enc=utf8
ggdG:
:
:function! Ch(a, op, b, expected)
:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Ch(a, op, b, expected)
[?25l[?1c
:  [?25h[?0c:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected

[?25l[?1c:    [?25h[?0c:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a

:op, a:b, a:expected))

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    let b:passed += 1

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Chk(a, b, result)
[?25l[?1c
:  [?25h[?0c:  if a:result == 0

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 0)

[?25l[?1c:    [?25h[?0c:  elseif a:result > 0

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 1)

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 0)

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Check(a, b, result)
[?25l[?1c
:  [?25h[?0c:  call Chk(a:a, a:b, a:result)

[?25l[?1c:  [?25h[?0c:  call Chk(a:b, a:a, -a:result)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! LT(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, -1)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! GT(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, 1)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! EQ(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, 0)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:passed=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('', '')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('', 'a')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('abc', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('Abc', 'abC')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('ab', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('AB', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('ab', 'aBc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xb9\xd0\xa6\

xd0\xa3\xd0\xba\xd0\x95\xd0\xbd')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xaf\xd1\x86\

xd1\x83\xd0\xba\xd0\xb5\xd0\xbd')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa', 'k')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xe2\x84\xaa', 'kkkkkk')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\x

aakk\xe2\x84\xa6')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('Abc\x80', 'AbC\x80')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('Abc\x80', 'AbC\x81')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('Abc', 'AbC\x80')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('abc\x80DEF', 'abc\x80def')  " case folding stops at the first bad cha

racter
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xc3XYZ', '\xc3xyz')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xef\xbc\xba', '\xef\xbd\x9a')  " FF3A (upper), FF5A (lower)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall GT('\xef\xbc\xba', '\xef\xbc\xff')  " first string is ok and equals \xef\

xbd\x9a after folding, second string is illegal and was left unchanged, then the

strings were bytewise compared
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xc3', '\xc3\x83')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.

2X', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, printf('%d checks passed', b:passed))
[?25l[?1c3732 checks passed[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test that g~ap changes one paragraph only.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               [No Name]                                                                       3732 checks passedtest82.in [+]                                                                   [?25h[?0c[?25l[?1cabcddefg[+][?25h[?0c[?25l[?1cABCD
[?25h[?0c[?25l[?1c:[?25h[?0clet lns = getline(1,3)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c3732 checks passed

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), lns)
[?25l[?1cABCDdefg[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 5 lines, 31 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test82 = test61; then \
#	  if diff test.out test82.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test82.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test82.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test84.failed test.ok test.out X* viminfo
cp test84.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test84.in
[?25h[?8c[?25h[?0c[?25l[?1c"test84.in" 35 lines, 786 charactersTests for curswant not changing when setting an option

STARTTEST
:so small.vim
:/^start target options$/+1,/^end target options$/-1 yank
:let target_option_names = split(@0)
:function TestCurswant(option_name)
:  normal! ggf8j
:  let curswant_before = winsaveview().curswant
:  execute 'let' '&'.a:option_name '=' '&'.a:option_name
:  let curswant_after = winsaveview().curswant
:  return [a:option_name, curswant_before, curswant_after]
:endfunction
:
:new
:put =['1234567890', '12345']
:1 delete _
:let result = []
:for option_name in target_option_names
:  call add(result, TestCurswant(option_name))
:endfor
:
:new[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for curswant not changing when setting an option[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 637 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _
:write test.out
:
:qall!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start target options$/+1,/^end target options$/-1 yank
[?25l[?1c3 lines yanked[?25h[?0c[?25l[?1c:[?25h[?0clet target_option_names = split(@0)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction TestCurswant(option_name)
[?25l[?1c
:  [?25h[?0c:  normal! ggf8j

[?25l[?1c:  [?25h[?0c:  let curswant_before = winsaveview().curswant

[?25l[?1c:  [?25h[?0c:  execute 'let' '&'.a:option_name '=' '&'.a:option_name

[?25l[?1c:  [?25h[?0c:  let curswant_after = winsaveview().curswant

[?25l[?1c:  [?25h[?0c:  return [a:option_name, curswant_before, curswant_after]

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:  normal! ggf8j
:  let curswant_before = winsaveview().curswant
:  execute 'let' '&'.a:option_name '=' '&'.a:option_name
:  let curswant_after = winsaveview().curswant
:  return [a:option_name, curswant_before, curswant_after]
:endfunction[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       endfornew
:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _write test.outqall!
ENDTESTtest84.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cput =['1234567890', '12345']
[?25l[?1c123456789012345[+][?25h[?0c[?25l[?1c:[?25h[?0c1 delete _
[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet result = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor option_name in target_option_names
[?25l[?1c
:  [?25h[?0c:  call add(result, TestCurswant(option_name))

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c1234567890
12345[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1234567890
12345
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   :1 delete _
:write test.out
:
:qall!
ENDTEST

test84.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cput =map(copy(result), 'join(v:val, '' '')')
[?25l[?1c3 more linestabstop 7 4timeoutlen 7 7ttimeoutlen 7 7[+][?25h[?0c[?25l[?1c:[?25h[?0c1 delete _
[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cwrite test.out
[?25l[?1c"test.out" [New File] 3 lines, 43 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqall!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test84 = test61; then \
#	  if diff test.out test84.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test84.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test84.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test88.failed test.ok test.out X* viminfo
cp test88.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test88.in
[?25h[?8c[?25h[?0c[?25l[?1c"test88.in" 99 lines, 1449 charactersvim: set ft=vim

Tests for correct display (cursor column position) with +conceal and
tabulators.

STARTTEST
:so small.vim
:if !has('conceal')
   e! test.ok
   wq! test.out
:endif
:" Conceal settings.
:set conceallevel=2
:set concealcursor=nc
:syntax match test /|/ conceal
:" Save current cursor position. Only works in <expr> mode, can't be used
:" with :normal because it moves the cursor to the command line. Thanks to ZyX
:" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
:let positions = []
:nnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
:" Start test.
/^start:
:normal ztj[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cvim: set ft=vim[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 82 lines, 1216 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:normal W
GGk
:normal W
GGk
:normal W
GGk
:normal $
GGk
:" Display result.
:call append('$', 'end:')
:call append('$', positions)
:/^end/,$wq! test.out
ENDTEST

start:
.concealed.     text
|concealed|     text.concealed.     text|concealed|     text

.a.     .b.     .c.     .d.
|a|     |b|     |c|     |d|[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('conceal')
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:normal W
GGk
:normal W[?25h[?0c[?25l[?1c:[?25h[?0c" Conceal settings.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset conceallevel=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset concealcursor=nc
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyntax match test /|/ conceal
[?25l[?1cconcealed  concealed  


a       b       c       d[?25h[?0c[?25l[?1c:[?25h[?0c" Save current cursor position. Only works in <expr> mode, can't be used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" with :normal because it moves the cursor to the command line. Thanks to ZyX
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet positions = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Start test.
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ztj
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:let positions += ['2:1']
[?25h[?0c[?25l[?1c:[?25h[?0c" We should end up in the same column when running these commands on the two
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" lines.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['2:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['2:20']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:20']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:8']
[?25h[?0c[?25l[?1c:[?25h[?0c" Same for next test block.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:28']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:8']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:28']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:1']
[?25h[?0c[?25l[?1c:[?25h[?0c" And check W with multiple tabs and conceals in a line.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:27']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0cset lbr
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0cset list listchars=tab:>-
[?25l[?1c>------

>------->----
>------->------>----.b.>----.c.>----
a>------b>------c>------[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0c" Display result.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', 'end:')
[?25l[?1cend:[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', positions)
[?25l[?1c2:12:172:203:13:173:205:85:255:286:86:256:288:1[?25h[?0c[?25l[?1c:[?25h[?0c/^end/,$wq! test.out
[?25l[?1c"test.out" [New File] 29 lines, 135 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test88 = test61; then \
#	  if diff test.out test88.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test88.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test88.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test90.failed test.ok test.out X* viminfo
cp test90.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test90.in
[?25h[?8c[?25h[?0c[?25l[?1c"test90.in" 53 lines, 1204 charactersTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :

STARTTEST
:so small.vim
:if !has('cryptv') || !exists('*sha256')
   e! test.ok
   wq! test.out
:endif
:"
:let testcase='test for empty string: '
:if sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for 1 char: '
:if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb'
: let res='ok'
:else[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1114 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for contains non-ascii char: '
:if sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:/^start:/,$wq! test.out
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('cryptv') || !exists('*sha256')
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for empty string: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b785

2b855'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'[?25h[?0c[?25l[?1c

:[?25h[?0c$put =testcase.res
[?25l[?1c
test for empty string: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for 1 char: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785af

ee48bb'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1c
test for 1 char: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for 3 chars: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("abc") ==# 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61

f20015ad'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'
:else[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1ctest for 3 chars: ok
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for contains meta char: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8c

c39ed110ca776'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c: let res='ok'
:else
: let res='ng'
:endif[?25h[?0c[?25l[?1c

:[?25h[?0c$put =testcase.res
[?25l[?1ctest for contains meta char: ok[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for contains non-ascii char: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb

0b8d27db8d5feaa813953'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c: let res='ok'
:else
: let res='ng'
:endif[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1c
test for contains non-ascii char: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 6 lines, 143 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test90 = test61; then \
#	  if diff test.out test90.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test90.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test90.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test91.failed test.ok test.out X* viminfo
cp test91.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test91.in
[?25h[?8c[?25h[?0c[?25l[?1c"test91.in" 116 lines, 3240 charactersTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().
vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"
:" Use strings to test for memory leaks.
:" First, check that in an empty window, gettabvar() returns the correct value
:let t:testvar='abcd'
:$put =string(gettabvar(1,'testvar'))
:$put =string(gettabvar(1,'testvar'))
:" Test for getbufvar()
:let b:var_num = '1234'
:let def_num = '5678'
:$put =string(getbufvar(1, 'var_num'))
:$put =string(getbufvar(1, 'var_num', def_num))
:$put =string(getbufvar(1, ''))
:$put =string(getbufvar(1, '', def_num))
:unlet b:var_num
:$put =string(getbufvar(1, 'var_num', def_num))
:$put =string(getbufvar(1, ''))
:$put =string(getbufvar(1, '', def_num))[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 109 lines, 3127 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:tabnext
:3wincmd w
:unlet w:var_dict
:tabrewind
:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:$put =string(gettabwinvar(2, 9, ''))
:$put =string(gettabwinvar(2, 9, '', def_dict))
:$put =string(gettabwinvar(9, 3, ''))
:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict
:$put =string(gettabwinvar(2, 3, '&nux'))
:$put =string(gettabwinvar(2, 3, '&nux', 1))
:tabonly
:"
:/^start/,$wq! test.out
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Use strings to test for memory leaks.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" First, check that in an empty window, gettabvar() returns the correct value
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet t:testvar='abcd'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(gettabvar(1,'testvar'))
[?25l[?1c
'abcd'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(1,'testvar'))
[?25l[?1c
'abcd'[?25h[?0c[?25l[?1c
:[?25h[?0c" Test for getbufvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:var_num = '1234'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_num = '5678'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, 'var_num'))
[?25l[?1c
'1234'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, 'var_num', def_num))
[?25l[?1c
'1234'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, ''))
[?25l[?1c
{'var_num': '1234'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '', def_num))
[?25l[?1c
{'var_num': '1234'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet b:var_num
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, 'var_num', def_num))
[?25l[?1c
'5678'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '', def_num))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(9, '', def_num))
[?25l[?1c
'5678'[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_num
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, '&autoindent'))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '&autoindent', 1))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open new window with forced option values
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew ++ff=dos ++bin ++enc=iso-8859-2
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       {'var_num': '1234'}

'5678'{}''
'5678'
0test91.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0clet otherff = getbufvar(bufnr('%'), '&fileformat')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet otherbin = getbufvar(bufnr('%'), '&bin')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet otherfenc = getbufvar(bufnr('%'), '&fenc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict:$put =string(gettabwinvar(2, 3, '&nux')):$put =string(gettabwinvar(2, 3, '&nux', 1)):tabonly:":/^start/,$wq! test.outENDTESTstart:'abcd''abcd''1234'{'var_num': '1234'}
'5678'

{}
'''5678'

0[?25h[?0c[?25l[?1c:[?25h[?0c$put =otherff
[?25l[?1c
dos[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(otherbin)
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =otherfenc
[?25l[?1c
iso-8859-2[?25h[?0c[?25l[?1c
:[?25h[?0cunlet otherff otherbin otherfenc
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for getwinvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet w:var_str = "Dance"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_str = "Chance"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getwinvar(1, 'var_str'))
[?25l[?1c
'Dance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, 'var_str', def_str))
[?25l[?1c
'Dance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, ''))
[?25l[?1c
{'var_str': 'Dance'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '', def_str))
[?25l[?1c
{'var_str': 'Dance'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet w:var_str
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getwinvar(1, 'var_str', def_str))
[?25l[?1c
'Chance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '', def_str))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(9, '', def_str))
[?25l[?1c
'Chance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '&nu'))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '&nu',  1))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_str
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for gettabvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet t:var_list = [1, 2, 3]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet t:other = 777
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_list = [4, 5, 6, 7]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X{'var_num': '1234'}
'5678'
{}
{}
''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list'))
[?25l[?1c
[1, 2, 3][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list', def_list))
[?25l[?1c
[1, 2, 3][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, ''))
[?25l[?1c
{'var_list': [1, 2, 3], 'other': 777}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '', def_list))
[?25l[?1c
{'var_list': [1, 2, 3], 'other': 777}[?25h[?0c[?25l[?1c
:[?25h[?0ctablast
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cunlet t:var_list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(9, '', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '&nu'))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '&nu', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabonly
[?25l[?1cdos[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for gettabwinvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabprev
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c2 [No Name]  [No Name]  X[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c + test91.in  3 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0cvert split
[?25l[?1c4 X||||||~~~~~[No Name]                              [?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name]                                [No Name]                               X[?25h[?0c[?25l[?1c:[?25h[?0clet w:var_dict = {'dict': 'tabwin'}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_dict = {'dict2': 'newval'}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd b
[?25l[?1c[No Name]                              [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[4, 5, 6, 7]
''
[4, 5, 6, 7]
''
[4, 5, 6, 7]
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict'))
[?25l[?1c
{'dict': 'tabwin'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l[?1c
{'dict': 'tabwin'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, ''))
[?25l[?1c
{'var_dict': {'dict': 'tabwin'}}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l[?1c
{'var_dict': {'dict': 'tabwin'}}[?25h[?0c[?25l[?1c
:[?25h[?0ctabnext
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ||||||~                                       
~                                       
~                                       
~                                       
~                                       
[No Name]                                ~                                      ~                                      ~                                      ~                                      ~                                      [No Name]                              ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1c[No Name]                              [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0cunlet w:var_dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[4, 5, 6, 7]
''
[4, 5, 6, 7]
''
[4, 5, 6, 7]
{'dict': 'tabwin'}
{'dict': 'tabwin'}
{'var_dict': {'dict': 'tabwin'}}
{'var_dict': {'dict': 'tabwin'}}
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 9, '', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(9, 3, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(9, 3, '', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(gettabwinvar(2, 3, '&nux'))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '&nux', 1))
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0ctabonly
[?25l[?1c0[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 50 lines, 530 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test91 = test61; then \
#	  if diff test.out test91.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test91.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test91.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test94.failed test.ok test.out X* viminfo
cp test94.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test94.in
[?25h[?8c[?25h[?0c[?25l[?1c"test94.in" 256 lines, 4824 charactersTest for Visual mode and operators

Tests for the two kinds of operations: Those executed with Visual mode
followed by an operator and those executed via Operator-pending mode. Also
part of the test are mappings, counts, and repetition with the . command.

Test cases:
- Visual modes (v V CTRL-V) followed by an operator; count; repeating
- Visual mode maps; count; repeating
  - Simple
  - With an Ex command (custom text object)
- Operator-pending mode maps
  - Simple
  - With Ex command moving the cursor
  - With Ex command and Visual selection (custom text object)
- Patch 7.3.879: Properly abort Ex command in Operator-pending mode

STARTTEST
:so small.vim
:set enc=utf-8 nocp viminfo+=nviminfo
:
:" User functions
:function MoveToCap()[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Visual mode and operators[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/term.o term.c
[New File] 211 lines, 3837 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTkv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '
:set selection=exclusive
0v3l^[gvcxxx^[
:$put ='---'
:/^start:/+2,$w! test.out
:q!
ENDTEST

start:

apple banana cherry

line 1 line 1
line 2 line 2
line 3 line 3
line 4 line 4
line 5 line 5
line 6 line 6[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf-8 nocp viminfo+=nviminfo
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '
:set selection=exclusive
0v3l^[gvcxxx^[
:$put ='---'
:/^start:/+2,$w! test.out
:q!
ENDTEST

start:

apple banana cherry

line 1 line 1
line 2 line 2
line 3 line 3
line 4 line 4
line 5 line 5
line 6 line 6[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" User functions
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction MoveToCap()
[?25l[?1c
:  [?25h[?0c:  call search('\u', 'W')

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'[?25h[?0c[?25l[?1c:[?25h[?0cfunction SelectInCaps()
[?25l[?1c
:  [?25h[?0c:  let [line1, col1] = searchpos('\u', 'bcnW')

[?25l[?1c:  [?25h[?0c:  let [line2, col2] = searchpos('.\u', 'nW')

[?25l[?1c:  [?25h[?0c:  call setpos("'<", [0, line1, col1, 0])

[?25l[?1c:  [?25h[?0c:  call setpos("'>", [0, line2, col2, 0])

[?25l[?1c:  [?25h[?0c:  normal! gv

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual modes followed by operator
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^apple
[?25l[?1c[?25h[?0ca[?25l[?1c-- VISUAL --[?25h[?0c[?25l[?1cp[?25h[?0c[?25l[?1cle banana cherry[?25h[?0c[?25l[?1c banana cherry[?25h[?0c [?25l[?1cbanan-- VISUAL --[?25h[?0c[?25l[?1c
a  cherry[?25h[?0c[?25l[?1cy[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^line 1
[?25l[?1c[?25h[?0c[?25l[?1cline 1 line 1 -- VISUAL LINE --[?25h[?0c[?25l[?1cINSERT --newline[?25h[?0c[?25l[?1c-- INSERT --newline[?25h[?0c[?25l[?1c
line 3 line 3 
line 4 line 4 


-- VISUAL LINE --[?25h[?0c[?25l[?1cline 5 line 5line 6 line 6xxxxxxxxxxxxx[?25h[?0c[?25l[?1cxxxxxxxxxxxxx
xxxxxxxxxxxxx[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^xxxx
[?25l[?1c[?25h[?0c[?25l[?1c


-- VISUAL BLOCK --[?25h[?0c[?25l[?1cx
[?25h[?0c[?25l[?1cx
x[?25h[?0c[?25l[?1cINSERT --  
  [?25h[?0c [?25l[?1c


-- INSERT --  
    [?25h[?0c [?25l[?1c
xxxx
    xxxx
xxxxxxxx
xxxxxxxxxxxxx
-- VISUAL BLOCK --[?25h[?0c[?25l[?1c
-- INSERT ------
    ----
xxxx----
xxxx----[?25h[?0c-[?25l[?1c-- INSERT ------------------[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual mode maps (movement and text object)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap W /\u/s-1<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Kiwi
[?25l[?1cKiwiRaspberryDateWatermelonPeach[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c/\u/s-1
Kiw[?25h[?0c[?25l[?1c
-- INSERT --NoRaspberryDateWatermelonPeach[?25h[?0co[?25l[?1c
-- INSERT --NoberryDateWatermelonPeach[?25h[?0coberry[?25l[?1cDateWat
-- VISUAL --[?25h[?0c[?25l[?1crmelonPeach[?25h[?0c[?25l[?1cach[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Jambu
[?25l[?1c
JambuRambutanBananaTangerineMango[?25h[?0cJa[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c:'<,'>call SelectInCaps()
Jamb[?25h[?0c[?25l[?1c
-- INSERT ---RambutanBananaTangerineMango[?25h[?0c-[?25l[?1c
-- INSERT ---tanBananaTangerineMango[?25h[?0c-[?25l[?1ctanBanana
-- VISUAL --[?25h[?0c[?25l[?1c
--angerineMango[?25h[?0ca[?25l[?1cgo[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Operator-pending mode maps (movement and text object)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap W /\u/<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap <Leader>W :<C-U>call MoveToCap()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Pineapple
[?25l[?1cPineappleQuinceLoganberryOrangeGrapefruitKiwiZ[?25h[?0c[?25l[?1c
/\u/
-QuinceLoganberryOrangeGrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---LoganberryOrangeGrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---GrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---Z[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Juniper
[?25l[?1c
JuniperDurianZ[?25h[?0c[?25l[?1c
:call MoveToCap()
Whavcre
[?25h[?0c[?25l[?1c:call MoveToCap()
Qhevna[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Lemon
[?25l[?1c
LemonNectarineZ[?25h[?0c[?25l[?1c
:call SelectInCaps()
[?25h[?0c[?25l[?1cLemonLemonNectarineZ
Lemo[?25h[?0cn[?25l[?1c:call SelectInCaps()
NewNectarineZ[?25h[?0cwNecta[?25l[?1c
:call SelectInCaps()
wZ[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^zzzz
[?25l[?1czzzz[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noma | let v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1cE21: Cannot make changes, 'modifiable' is off[?25h[?0c[?25l[?1c:[?25h[?0cset ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed'
[?25l[?1c
ok[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset noma | let v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok'
[?25l[?1c
ok[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: replace last line'
[?25l[?1c
characterwise visual mode: replace last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0clet @" = 'x'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v:errmsg='.v:errmsg
[?25l[?1c
v:errmsg=[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete middle line'
[?25l[?1c
characterwise visual mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- VISUAL --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cb
c
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete middle two line'
[?25l[?1c
characterwise visual mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- VISUAL --[?25h[?0c[?25l[?1ca 
[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='characterwise visual mode: delete last line'
[?25l[?1c
characterwise visual mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete last two line'
[?25l[?1c
characterwise visual mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1cb 
[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Select mode maps
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>End> <End>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>Down> <Down>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>Del> <Del>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete middle line'
[?25l[?1c
characterwise select mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- SELECT --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cb
c
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete middle two line'
[?25l[?1c
characterwise select mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- SELECT --[?25h[?0c[?25l[?1ca 
[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='characterwise select mode: delete last line'
[?25l[?1c
characterwise select mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c
-- SELECT --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete last two line'
[?25l[?1c
characterwise select mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c

-- SELECT --[?25h[?0c[?25l[?1cb 
[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete middle line'
[?25l[?1c
linewise select mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1ca 


-- SELECT LINE --[?25h[?0c[?25l[?1cbc
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete middle two line'
[?25l[?1c
linewise select mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1ca 


-- SELECT LINE --[?25h[?0c[?25l[?1ca
b 
[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='linewise select mode: delete last line'
[?25l[?1c
linewise select mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1cc 
-- SELECT LINE --[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete last two line'
[?25l[?1c
linewise select mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1cb 

-- SELECT LINE --[?25h[?0c[?25l[?1cb
c 
[?25h[?0c[?25l[?1c~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='v_p: replace last character with line register at middle line'
[?25l[?1c
v_p: replace last character with line register at middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0cbb[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1cccc
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at middle line selecting

newline'
[?25l[?1clinewise select mode: delete middle two line
c---linewise select mode: delete last line
ab
---linewise select mode: delete last two line
a---v_p: replace last character with line register at middle line
aaabbaaaccc
---v_p: replace last character with line register at middle line selecting newline[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0cbb[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1c
ccc
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at last line'
[?25l[?1c
v_p: replace last character with line register at last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0ccc[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at last line selecting n

ewline'
[?25l[?1caaa
bbaaaccc
---v_p: replace last character with line register at middle line selecting newline
aaabbaaa
ccc
---v_p: replace last character with line register at last line
aaabbb
ccaaa---v_p: replace last character with line register at last line selecting newline[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0ccc[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='gv in exclusive select mode after operation'
[?25l[?1c
gv in exclusive select mode after operation[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='zzz '
[?25l[?1c
zzz[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='äà '
[?25l[?1c
äÃ[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1czzz[?25h[?0c[?25l[?1c
zzz[?25h[?0c
[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cäÃ[?25h[?0c[?25l[?1c
zzz[?25h[?0c[?25l[?1c
-- VISUAL --zzz[?25h[?0c[?25l[?1cINSERTxxx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='gv in exclusive select mode without operation'
[?25l[?1c
gv in exclusive select mode without operation[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='zzz '
[?25l[?1c
zzz[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1czzz[?25h[?0c[?25l[?1c
zzz[?25h[?0c[?25l[?1c
-- VISUAL --zzz[?25h[?0c[?25l[?1cINSERTxxx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c/^start:/+2,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 123L, 1328C written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test94 = test61; then \
#	  if diff test.out test94.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test94.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test94.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test95.failed test.ok test.out X* viminfo
cp test95.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test95.in
[?25h[?8c[?25h[?0c[?25l[?1c"test95.in" 141 lines, 5827 charactersTest for regexp patterns with multi-byte support, using utf-8.
See test64 for the non-multi-byte tests.

A pattern that gives the expected result produces OK, so that we know it was
actually tried.

STARTTEST
:so small.vim
:so mbyte.vim
:set nocp encoding=utf-8 viminfo+=nviminfo nomore
:" tl is a List of Lists with:
:"    2: test auto/old/new  0: test auto/old  1: test auto/new
:"    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 = []
:
:"""" Multi-byte character tests. These will fail unless vim is compiled
:"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for regexp patterns with multi-byte support, using utf-8.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 131 lines, 5590 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:endif
:      endfor
:      unlet i
:    endif
:  endfor
:endfor
:unlet t tl e l
:
:" check that 'ambiwidth' does not change the meaning of \p
:set regexpengine=1 ambiwidth=single
:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=1 ambiwidth=double
:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=single
:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=double
:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
:
:/\%#=1^Results/,$wq! test.out
ENDTEST

Results of test95:
~                                                                               [?25h[?0c
[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp encoding=utf-8 viminfo+=nviminfo nomore
[?25l[?1c:endif
:      endfor
:      unlet i
:    endif
:  endfor
:endfor
:unlet t tl e l
:
:" check that 'ambiwidth' does not change the meaning of \p
:set regexpengine=1 ambiwidth=single
:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=1 ambiwidth=double
:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=single
:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=double
:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
:
:/\%#=1^Results/,$wq! test.out
ENDTEST

Results of test95:
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c" tl is a List of Lists with:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    2: test auto/old/new  0: test auto/old  1: test auto/new
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp pattern
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    text to test the pattern on
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected match (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 1 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 2 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    etc.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  When there is no match use only the first two items.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Multi-byte character tests. These will fail unless vim is compiled
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[=a=]]\+', 'ddaãâbcd', 'aãâ'])^I^I^I^I^I^I^I^I" equivalence

classes
[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0ccall add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oij

asoifjos'])
[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0ccall add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna']

)[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" this is not a normal "i" but 0xec
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p\+', 'ìa', 'ìa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p*', 'aあ', 'aあ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test recognition of some character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\i\+', '&*¨xx ', 'xx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\f\+', '&*<9f>fname ', 'fname'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test composing character matching
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.ม', 'xมม่x yมy', 'yม'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.มม่', 'xมม่x yมy', 'xมม่'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\u05b9\u05bb", " y\u05b9 x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9\u05bb", " y\u05bb x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "a", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ca", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "a\u0300", "ca\u0300t", "a\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\%C', "ca\u0300t", "a\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ca\%C', "ca\u0300t", "ca\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ca\%Ct', "ca\u0300t", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test \Z
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ú\Z', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'יהוה\Z', 'יהוה', 'יהוה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְהווָה\Z', 'יהוה', 'יהוה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'יהוה\Z', 'ייְהווָה', 'ייְהווָה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְהווָה\Z', 'ייְהווָה', 'ייְהווָה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְ\Z', 'ווְייַ', 'ייַ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200dxy", "ק\u200dx"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200dx\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200dx\\Z", "xק\u200dxy", "ק\u200dx"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\\Z", "xyz"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\\Z\u05b9", "xyz"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\\Z", "xy\u05b9z", "y\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\\Z\u05b9", "xy\u05b9z", "y\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\u05b9\\+\\Z", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\\Z\u05b9\\+", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Combining different tests and features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^[=a=]]\+', 'ddaãâbcd', 'dd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let text = t[2]

[?25l[?1c:  [?25h[?0c:  let matchidx = 3

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    try

[?25l[?1c:      [?25h[?0c:      let l = matchlist(text, pat)

[?25l[?1c:      [?25h[?0c:    catch

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l[?1c:      [?25h[?0c:    endtry

[?25l[?1c:    [?25h[?0c:" check the match itself

[?25l[?1c:    [?25h[?0c:    if len(l) == 0 && len(t) > matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    elseif len(l) > 0 && len(t) == matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l[?1c:      [?25h[?0c:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if len(l) > 0

[?25l[?1c:      [?25h[?0c:"   check all the nine submatches

[?25l[?1c:      [?25h[?0c:      for i in range(1, 9)

[?25l[?1c:[?25h[?0c:        if len(t) <= matchidx + i

[?25l[?1c:[?25h[?0c:          let e = ''

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          let e = t[matchidx + i]

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:        if l[i] != e

[?25l[?1c:[?25h[?0c:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:      endfor

[?25l[?1c:      [?25h[?0c:      unlet i

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl e l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" check that 'ambiwidth' does not change the meaning of \p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset regexpengine=1 ambiwidth=single
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 1 ambi single: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=1 ambiwidth=double
[?25l[?1cOK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 1 ambi double: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=2 ambiwidth=single
[?25l[?1cOK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
eng 1 ambi double: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 2 ambi single: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=2 ambiwidth=double
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
eng 1 ambi double: 0
eng 2 ambi single: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 2 ambi double: 0[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/\%#=1^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 140L, 2022C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test95 = test61; then \
#	  if diff test.out test95.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test95.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test95.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test98.failed test.ok test.out X* viminfo
cp test98.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test98.in
[?25h[?8c[?25h[?0c[?25l[?1c"test98.in" 43 lines, 908 charactersTest for 'scrollbind' causing an unexpected scroll of one of the windows.
STARTTEST
:so small.vim
:" We don't want the status line to cause problems:
:set laststatus=0
:let g:totalLines = &lines * 20
:let middle = g:totalLines / 2
:wincmd n
:wincmd o
:for i in range(1, g:totalLines)
:    call setline(i, 'LINE ' . i)
:endfor
:exe string(middle)
:normal zt
:normal M
:aboveleft vert new
:for i in range(1, g:totalLines)
:    call setline(i, 'line ' . i)
:endfor
:exe string(middle)
:normal zt
:normal M
:" Execute the following two command at once to reproduce the problem.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'scrollbind' causing an unexpected scroll of one of the windows.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 791 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:setl scb | wincmd p
:setl scb
:wincmd w
:let topLineLeft = line('w0')
:wincmd p
:let topLineRight = line('w0')
:setl noscrollbind
:wincmd p
:setl noscrollbind
:q!
:%del _
:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight))
:w! test.out
:brewind
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" We don't want the status line to cause problems:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset laststatus=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:totalLines = &lines * 20
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet middle = g:totalLines / 2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd n
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cwincmd o
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(1, g:totalLines)
[?25l[?1c
:  [?25h[?0c:    call setline(i, 'LINE ' . i)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cLINE 1
LINE 2
LINE 3LINE 4LINE 5LINE 6LINE 7LINE 8LINE 9LINE 10LINE 11LINE 12LINE 13LINE 14LINE 15LINE 16LINE 17LINE 18LINE 19LINE 20LINE 21LINE 22LINE 23[?25h[?0c[?25l[?1c:[?25h[?0cexe string(middle)
[?25l[?1cLINE 229
LINE 230
LINE 231
LINE 232
LINE 233
LINE 234
LINE 235
LINE 236
LINE 237
LINE 238
LINE 239
LINE 240
LINE 241
LINE 242
LINE 243
LINE 244
LINE 245
LINE 246
LINE 247
LINE 248
LINE 249
LINE 250
LINE 251[?25h[?0c[?25l[?1c:[?25h[?0cnormal zt
[?25l[?1cLINE 252
LINE 253
LINE 254
LINE 255
LINE 256
LINE 257
LINE 258
LINE 259
LINE 260
LINE 261
LINE 262[?25h[?0c[?25l[?1c:[?25h[?0cnormal M
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caboveleft vert new
[?25l[?1c        |||||||||||||||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       LINE 240LINE 241LINE 242LINE 243LINE 244LINE 245LINE 246LINE 247LINE 248LINE 249LINE 250LINE 251LINE 252LINE 253LINE 254LINE 255LINE 256LINE 257LINE 258LINE 259LINE 260LINE 261LINE 262[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(1, g:totalLines)
[?25l[?1c
:  [?25h[?0c:    call setline(i, 'line ' . i)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cline 1|
line 2|
line 3                                  
line 4                                  
line 5                                  
line 6                                  
line 7                                  
line 8                                  
line 9                                  
line 10                                 
line 11                                 
line 12                                 
line 13                                 
line 14                                 
line 15                                 
line 16                                 
line 17                                 
line 18                                 
line 19                                 
line 20                                 
line 21                                 
line 22                                 
line 23                                 LINE 240LINE 241[?25h[?0c[?25l[?1c:[?25h[?0cexe string(middle)
[?25l[?1c2293023123223323423523623723823924024124224324424524624748495051[?25h[?0c[?25l[?1c:[?25h[?0cnormal zt
[?25l[?1cline 240                                
line 241                                
line 242                                
line 243                                
line 244                                
line 245                                
line 246                                
line 247                                
line 248                                
line 249                                
line 250                                
line 251                                
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        line 252
line 253
line 254
line 255
line 256
line 257
line 258
line 259
line 260
line 261
line 262[?25h[?0c[?25l[?1c:[?25h[?0cnormal M
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Execute the following two command at once to reproduce the problem.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl scb | wincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl scb
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet topLineLeft = line('w0')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet topLineRight = line('w0')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1cLINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINE[?25h[?0c[?25l[?1c:[?25h[?0c%del _
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, 'Difference between the top lines (left - right): ' . string(t

opLineLeft - topLineRight))
[?25l[?1cDifference between the top lines (left - right): 0[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 51 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test98.in" 43 lines, 908 characters:normal M:" Execute the following two command at once to reproduce the problem.:setl scb | wincmd p:setl scb:wincmd w:let topLineLeft = line('w0'):wincmd p:let topLineRight = line('w0'):setl noscrollbind:wincmd p:setl noscrollbind:q!:%del _:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight)):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test98 = test61; then \
#	  if diff test.out test98.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test98.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test98.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test99.failed test.ok test.out X* viminfo
cp test99.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test99.in
[?25h[?8c[?25h[?0c[?25l[?1c"test99.in" 69 lines, 1400 charactersTests for regexp with multi-byte encoding and various magic settings.
Test matchstr() with a count and multi-byte chars.
See test44 for exactly the same test with re=1.

STARTTEST
:so mbyte.vim
:set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
:set re=2
/^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
f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with multi-byte encoding and various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 43 lines, 931 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
: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
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
[?25l[?1c:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
: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
:[?25h[?0c" Test \%u, [\u] and friends
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%u20ac
[?25l[?1c
/[?25h[?0c[\u4f7f\u5929]\+
[?25l[?1c
/[?25h[?0c\%U12345678
[?25l[?1c
/[?25h[?0c[\U1234abcd\u1234\uabcd]
[?25l[?1c
/[?25h[?0c\%d21879b
[?25l[?1c
:[?25h[?0c" Test backwards search from a multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cx
[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" l Test what 7.3.192 fixed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^l
[?25l[?1c
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
#@/bin/sh -c "if test -f test.out -a test99 = test61; then \
#	  if diff test.out test99.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test99.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test99.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test103.failed test.ok test.out X* viminfo
cp test103.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test103.in
[?25h[?8c[?25h[?0c[?25l[?1c"test103.in" 37 lines, 823 charactersTest for visual mode not being reset causing E315 error.
STARTTEST
:so small.vim
:enew
:let g:msg="Everything's fine."
:function! TriggerTheProblem()
:" At this point there is no visual selection because :call reset it.
:" Let's restore the selection:
:normal gv
:'<,'>del _
:try
:exe "normal \<Esc>"
:catch /^Vim\%((\a\+)\)\=:E315/
:echom 'Snap! E315 error!'
:let g:msg='Snap! E315 error!'
:endtry
:endfunction
:enew
:setl buftype=nofile
:call append(line('$'), 'Delete this line.')
:"
:"
:" NOTE: this has to be done by a call to a function because executing :del the[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for visual mode not being reset causing E315 error.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 723 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"ex-way will require the colon operator which resets the visual mode thus
:"preventing the problem:
:"
GV:call TriggerTheProblem()
:%del _
:call append(line('$'), g:msg)
:w! test.out
:brewind
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cenew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet g:msg="Everything's fine."
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! TriggerTheProblem()
[?25l[?1c
:  [?25h[?0c:^I" At this point there is no visual selection because :call reset it.

[?25l[?1c:  [?25h[?0c:^I" Let's restore the selection:

[?25l[?1c:  [?25h[?0c:^Inormal gv

[?25l[?1c:  [?25h[?0c:^I'<,'>del _

[?25l[?1c:  [?25h[?0c:^Itry

[?25l[?1c:    [?25h[?0c:^I^Iexe "normal \<Esc>"

[?25l[?1c:    [?25h[?0c:^Icatch /^Vim\%((\a\+)\)\=:E315/

[?25l[?1c:    [?25h[?0c:^I^Iechom 'Snap! E315 error!'

[?25l[?1c:    [?25h[?0c:^I^Ilet g:msg='Snap! E315 error!'

[?25l[?1c:    [?25h[?0c:^Iendtry

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cenew
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl buftype=nofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), 'Delete this line.')
[?25l[?1cDelete this line.[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" NOTE: this has to be done by a call to a function because executing :del the
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"       ex-way will require the colon operator which resets the visual mode th

us[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"       preventing the problem:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c
[?25l[?1cDelete this line. 
[?25h[?0c[?25l[?1c:'<,'>[?25h[?0ccall TriggerTheProblem()
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c%del _
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), g:msg)
[?25l[?1cEverything's fine.[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 2 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test103.in" 37 lines, 823 characters:endtry
:endfunction:enew:setl buftype=nofile:call append(line('$'), 'Delete this line.'):":":" NOTE: this has to be done by a call to a function because executing :del the:"       ex-way will require the colon operator which resets the visual mode thus:"       preventing the problem::"GV:call TriggerTheProblem():%del _:call append(line('$'), g:msg):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test103 = test61; then \
#	  if diff test.out test103.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test103.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test103.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test104.failed test.ok test.out X* viminfo
cp test104.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test104.in
[?25h[?8c[?25h[?0c[?25l[?1c"test104.in" 30 lines, 698 charactersTests for :let.  vim: set ft=vim ts=8 :

STARTTEST
:so small.vim
:set runtimepath+=./sautest
:" Test to not autoload when assigning.  It causes internal error.
:try
:  let Test104#numvar = function('tr')
:  $put ='OK: ' . string(Test104#numvar)
:catch
:  $put ='FAIL: ' . v:exception
:endtry
:let a = 1
:let b = 2
:for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0
== 1 ? "a" : "b"}']
:  try
:    redir => messages
:    execute 'let' letargs
:    redir END
:    $put ='OK:'
:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')
:  catch[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :let.  vim: set ft=vim ts=8 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 24 lines, 618 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:    $put ='FAIL: ' . v:exception
:    redir END
:  endtry
:endfor
:/^Results/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset runtimepath+=./sautest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test to not autoload when assigning.  It causes internal error.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  let Test104#numvar = function('tr')

[?25l[?1c:  [?25h[?0c:  $put ='OK: ' . string(Test104#numvar)

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:  $put ='FAIL: ' . v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c:catch
:  $put ='FAIL: ' . v:exception
:endtry
:let a = 1
:let b = 2
:for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0
== 1 ? "a" : "b"}']
:  try:    redir => messages
:    execute 'let' letargsEND$put ='OK:'$put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')
:  catch'FAIL: ' . v:exception  redir END
:  endtryendfor/^Results/,$wq! test.out
ENDTESTResults of test104:
OK: function('tr')[?25h[?0c[?25l[?1c
:[?25h[?0clet a = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b = 2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0

== 1 ? "a" : "b"}']
[?25l[?1c:  [?25h[?0c:  try

[?25l[?1c:    [?25h[?0c:    redir => messages

[?25l[?1c:    [?25h[?0c:    execute 'let' letargs

[?25l[?1ca#1

b#2

:    [?25h[?0c:    redir END

[?25l[?1c:    [?25h[?0c:    $put ='OK:'

[?25l[?1c:    [?25h[?0c:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')

[?25l[?1c:    [?25h[?0c:  catch

[?25l[?1c:    [?25h[?0c:    $put ='FAIL: ' . v:exception

[?25l[?1c:    [?25h[?0c:    redir END

[?25l[?1c:    [?25h[?0c:  endtry

[?25l[?1c:  [?25h[?0c:endfor

[?25l[?1cb#2

b#2

a#1

a#1

b#2

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 13 lines, 244 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test104 = test61; then \
#	  if diff test.out test104.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test104.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test104.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test107.failed test.ok test.out X* viminfo
cp test107.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test107.in
[?25h[?8c[?25h[?0c[?25l[?1c"test107.in" 38 lines, 717 charactersTests for adjusting window and contents     vim: set ft=vim :

STARTTEST
:so small.vim
:new
:call setline(1, range(1,256))
:let r=[]
:func! GetScreenStr(row)
:   let str = ""
:   for c in range(1,3)
:let str .= nr2char(screenchar(a:row, c))
:   endfor
:   return str
:endfunc
:
:exe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
:
:exe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for adjusting window and contents     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 32 lines, 628 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(r, [line("w0"), s3])
:
:exe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:"/^start:/,$wq! test.out
ENDTESTtest107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, range(1,256))
[?25l[?1c1
234567891011[+][?25h[?0c[?25l[?1c:[?25h[?0clet r=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc! GetScreenStr(row)
[?25l[?1c
:  [?25h[?0c:   let str = ""

[?25l[?1c:  [?25h[?0c:   for c in range(1,3)

[?25l[?1c:    [?25h[?0c:       let str .= nr2char(screenchar(a:row, c))

[?25l[?1c:    [?25h[?0c:   endfor

[?25l[?1c:  [?25h[?0c:   return str

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c1
2
3
4
5
6[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
[?25l[?1c[No Name] [+]                                                                   :let s3=GetScreenStr(1)test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
[?25l[?1c50
51
52
53
54
55
56
57
58
59
[No Name] [+]                                                                   :let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST

test107.in                                                                      [?25h[?0c[?25l[?1c

:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
[?25l[?1c59
60
61
62
63
64
65
66
67
68
[No Name] [+]                                                                   :let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST

test107.in                                                                      [?25h[?0c[?25l[?1c

:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c:wincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipeout!
[?25l[?1c::exe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
::exe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
:exe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
::wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:":/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0c$put=r
[?25l[?1c3 more linesstart:
[1, '1  ']
[50, '50 ']
[59, '59 ']3 more lines[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 4 lines, 42 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test107 = test61; then \
#	  if diff test.out test107.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test107.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test107.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test108.failed test.ok test.out X* viminfo
cp test108.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test108.in
[?25h[?8c[?25h[?0c[?25l[?1c"test108.in" 88 lines, 1329 charactersTests for backtrace debug commands.     vim: set ft=vim :

STARTTEST
:so small.vim
:lang mess C
:function! Foo()
:   let var1 = 1
:   let var2 = Bar(var1) + 9
:   return var2
:endfunction
:
:function! Bar(var)
:    let var1 = 2 + a:var
:    let var2 = Bazz(var1) + 4
:    return var2
:endfunction
:
:function! Bazz(var)
:    let var1 = 3 + a:var
:    let var3 = "another var"
:    return var1
:endfunction
:new[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for backtrace debug commands.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 83 lines, 1251 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTup
b
echo "fil is not frame or finish, it is file"
fil
echo "\n- relative backtrace movement\n"
fr -1
frame
fra +1
fram
echo "\n- go beyond limits does not crash\n"
fr 100
fra
frame -40
fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang mess C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Foo()
[?25l[?1c
:  [?25h[?0c:   let var1 = 1

[?25l[?1c:  [?25h[?0c:   let var2 = Bar(var1) + 9

[?25l[?1c:  [?25h[?0c:   return var2

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Bar(var)
[?25l[?1c
:  [?25h[?0c:    let var1 = 2 + a:var

[?25l[?1c:  [?25h[?0c:    let var2 = Bazz(var1) + 4

[?25l[?1c:  [?25h[?0c:    return var2

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Bazz(var)
[?25l[?1c
:  [?25h[?0c:    let var1 = 3 + a:var

[?25l[?1c:  [?25h[?0c:    let var3 = "another var"

[?25l[?1c:  [?25h[?0c:    return var1

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       echo "\n- final result 19:"
cont:0debuggreedy
:redir END$put =out
:w! test.out
:qa!ENDTESTtest108.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cdebuggreedy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdebug echo Foo()
[?25l[?1cEntering Debug mode.  Type "cont" to continue.

cmd: echo Foo()

>[?25h[?0cstep

[?25l[?1cfunction Foo

line 1: let var1 = 1

>[?25h[?0cstep

[?25l[?1cfunction Foo

line 2: let var2 = Bar(var1) + 9

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 1: let var1 = 2 + a:var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 2: let var2 = Bazz(var1) + 4

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 1: let var1 = 3 + a:var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho "- show backtrace:\n"

[?25l[?1c- show backtrace:

>[?25h[?0cbacktrace

[?25l[?1c  2 function Foo[2]

  1 Bar[2]

->0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho "\nshow variables on different levels:\n"

[?25l[?1c
show variables on different levels:

>[?25h[?0cecho var1

[?25l[?1c6
>[?25h[?0cup

[?25l[?1c>[?25h[?0cback

[?25l[?1c  2 function Foo[2]

->1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho var1

[?25l[?1c3
>[?25h[?0cu

[?25l[?1c>[?25h[?0cbt

[?25l[?1c->2 function Foo[2]

  1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho var1

[?25l[?1c1
>[?25h[?0cecho "\n- undefined vars:\n"

[?25l[?1c
- undefined vars:

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 3: return var1

>[?25h[?0cframe 2

[?25l[?1c>[?25h[?0cecho "undefined var3 on former level:"

[?25l[?1cundefined var3 on former level:

>[?25h[?0cecho var3

[?25l[?1cError detected while processing function Foo[2]..Bar[2]..Bazz:

line    3:

E121: Undefined variable: var3

E15: Invalid expression: var3

>[?25h[?0cfr 0

[?25l[?1c>[?25h[?0cecho "here var3 is defined with \"another var\":"

[?25l[?1chere var3 is defined with "another var":

>[?25h[?0cecho var3

[?25l[?1canother var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 3: End of function

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 3: return var2

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 3: End of function

>[?25h[?0cup

[?25l[?1c>[?25h[?0cecho "\nundefined var2 on former level"

[?25l[?1c
undefined var2 on former level

>[?25h[?0cecho var2

[?25l[?1cError detected while processing function Foo[2]..Bar:

line    3:

E121: Undefined variable: var2

E15: Invalid expression: var2

>[?25h[?0cdown

[?25l[?1c>[?25h[?0cecho "here var2 is defined with 10:"

[?25l[?1chere var2 is defined with 10:

>[?25h[?0cecho var2

[?25l[?1c10

>[?25h[?0cecho "\n- backtrace movements:\n"

[?25l[?1c
- backtrace movements:

>[?25h[?0cb

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cecho "\nnext command cannot go down, we are on bottom\n"

[?25l[?1c
next command cannot go down, we are on bottom

>[?25h[?0cdown

[?25l[?1cframe is zero

>[?25h[?0cup

[?25l[?1c>[?25h[?0cecho "\nnext command cannot go up, we are on top\n"

[?25l[?1c
next command cannot go up, we are on top

>[?25h[?0cup

[?25l[?1cframe at highest level: 1

>[?25h[?0cb

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cecho "fil is not frame or finish, it is file"

[?25l[?1cfil is not frame or finish, it is file

>[?25h[?0cfil

[?25l[?1c"[No Name]" --No lines in buffer--

>[?25h[?0cecho "\n- relative backtrace movement\n"

[?25l[?1c
- relative backtrace movement

>[?25h[?0cfr -1

[?25l[?1c>[?25h[?0cframe

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cfra +1

[?25l[?1c>[?25h[?0cfram

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cecho "\n- go beyond limits does not crash\n"

[?25l[?1c
- go beyond limits does not crash

>[?25h[?0cfr 100

[?25l[?1cframe at highest level: 1

>[?25h[?0cfra

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cframe -40

[?25l[?1cframe is zero

>[?25h[?0cfram

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cecho "\n- final result 19:"

[?25l[?1c
- final result 19:

>[?25h[?0ccont

[?25l[?1c19

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c0debuggreedy
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST

test108.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =out
[?25l[?1c83 more lines->1 function Foo[2]
  0 Barline 3: End of functionframe is zero  1 function Foo[2]->0 Barline 3: End of function- final result 19:19[+][?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 84 lines, 1390 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test108 = test61; then \
#	  if diff test.out test108.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test108.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test108.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_autocmd_option.failed test.ok test.out X* viminfo
cp test_autocmd_option.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autocmd_option.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_autocmd_option.in" 77 lines, 2954 charactersTest for option autocommand

STARTTEST
:so small.vim
:if !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! test.out | qa! | endif
:fu! AutoCommand(match)
:let c=g:testcase
:let item=remove(g:options, 0)
:let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Scope:
<%s>\n", item[0], item[1], item[2], item[3])
:let c.=printf("Autocmd Option: <%s>,", a:match)
:let c.=printf(" OldVal: <%s>,", v:option_old)
:let c.=printf(" NewVal: <%s>,", v:option_new)
:let c.=printf(" Scope: <%s>\n", v:option_type)
:call setreg('r', printf("%s\n%s", getreg('r'), c))
:endfu
:au OptionSet * :call AutoCommand(expand("<amatch>"))
:let g:testcase="1: Setting number option\n"
:let g:options=[['number', 0, 1, 'global']]
:set nu
:let g:testcase="2: Setting local number option\n"
:let g:options=[['number', 1, 0, 'local']][?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for option autocommand[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 2896 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let g:testcase="13: Setting option backspace through setbufvar()\n"
:let g:options=[['backup', '', '1', 'local']]
: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
:call setbufvar(1, '&l:bk', 1)
: "should trigger, use correct option name
:call setbufvar(1, '&backup', 1)
:let g:testcase="14: Setting number option using setwinvar\n"
:let g:options=[['number', 0, 1, 'local']]
:call setwinvar(0, '&number', 1)
:" Write register now, because next test shouldn't output anything.
:$put r
:let @r=''
:let g:testcase="\n15: Setting key option, shouldn't trigger\n"
:let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
:setlocal key=blah
:setlocal key=
:$put =g:testcase
:$put r
:/^dummy text/,$w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! 

test.out | qa! | endif
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"[?25h[?0c[?25l[?1c
:[?25h[?0cfu! AutoCommand(match)
[?25l[?1c
:  [?25h[?0c:^Ilet c=g:testcase

[?25l[?1c:  [?25h[?0c:       let item=remove(g:options, 0)

[?25l[?1c:  [?25h[?0c:       let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Sco

pe: <%s>\n", item[0], item[1], item[2], item[3])

[?25l[?1c:  [?25h[?0c:       let c.=printf("Autocmd Option: <%s>,", a:match)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" OldVal: <%s>,", v:option_old)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" NewVal: <%s>,", v:option_new)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" Scope: <%s>\n", v:option_type)

[?25l[?1c:  [?25h[?0c:       call setreg('r', printf("%s\n%s", getreg('r'), c))

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"
:let g:options=[['backup', '', '1', 'local']]
: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
:call setbufvar(1, '&l:bk', 1)
: "should trigger, use correct option name
:call setbufvar(1, '&backup', 1)
:let g:testcase="14: Setting number option using setwinvar\n"
:let g:options=[['number', 0, 1, 'local']]
:call setwinvar(0, '&number', 1)[?25h[?0c[?25l[?1c
:[?25h[?0cau OptionSet * :call AutoCommand(expand("<amatch>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="1: Setting number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"
     57 :let g:options=[['backup', '', '1', 'local']]
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
     59 :call setbufvar(1, '&l:bk', 1)
     60 : "should trigger, use correct option name
     61 :call setbufvar(1, '&backup', 1)
     62 :let g:testcase="14: Setting number option using setwinvar\n"
     63 :let g:options=[['number', 0, 1, 'local']]
     64 :call setwinvar(0, '&number', 1)
     65 :" Write register now, because next test shouldn't output anything.
     66 :$put r
     67 :let @r=''
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
     70 :setlocal key=blah
     71 :setlocal key=
     72 :$put =g:testcase
     73 :$put r
     74 :/^dummy text/,$w! test.out
     75 :qa!
     76 ENDTEST
     77 dummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="2: Setting local number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 1, 0, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal nonu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n":let g:options=[['backup', '', '1', 'local']]: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger:call setbufvar(1, '&l:bk', 1): "should trigger, use correct option name:call setbufvar(1, '&backup', 1):let g:testcase="14: Setting number option using setwinvar\n":let g:options=[['number', 0, 1, 'local']]:call setwinvar(0, '&number', 1):" Write register now, because next test shouldn't output anything.:$put r:let @r='':let g:testcase="\n15: Setting key option, shouldn't trigger\n":let g:options=[['key', 'invalid', 'invalid1', 'invalid']]:setlocal key=blah:setlocal key=:$put =g:testcase:$put r:/^dummy text/,$w! test.out:qa!ENDTESTdummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="3: Setting global number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nonu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="4: Setting local autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="5: Setting global autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="6: Setting global autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ai!
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c Should not print anything, use :noa
[?25l[?1cE492: Not an editor command: Should not print anything, use :noa[?25h[?0c[?25l[?1c:[?25h[?0cnoa :set nonu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="7: Setting several global list and number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list nu
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"$
     57 :let g:options=[['backup', '', '1', 'local']]$
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger$
     59 :call setbufvar(1, '&l:bk', 1)$
     60 : "should trigger, use correct option name$
     61 :call setbufvar(1, '&backup', 1)$
     62 :let g:testcase="14: Setting number option using setwinvar\n"$
     63 :let g:options=[['number', 0, 1, 'local']]$
     64 :call setwinvar(0, '&number', 1)$
     65 :" Write register now, because next test shouldn't output anything.$
     66 :$put r$
     67 :let @r=''$
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"$
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]$
     70 :setlocal key=blah$
     71 :setlocal key=$
     72 :$put =g:testcase$
     73 :$put r$
     74 :/^dummy text/,$w! test.out$
     75 :qa!$
     76 ENDTEST$
     77 dummy text$[?25h[?0c[?25l[?1c:[?25h[?0cnoa set nolist nonu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n":let g:options=[['backup', '', '1', 'local']]: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger:call setbufvar(1, '&l:bk', 1): "should trigger, use correct option name:call setbufvar(1, '&backup', 1):let g:testcase="14: Setting number option using setwinvar\n":let g:options=[['number', 0, 1, 'local']]:call setwinvar(0, '&number', 1):" Write register now, because next test shouldn't output anything.:$put r:let @r='':let g:testcase="\n15: Setting key option, shouldn't trigger\n":let g:options=[['key', 'invalid', 'invalid1', 'invalid']]:setlocal key=blah:setlocal key=:$put =g:testcase:$put r:/^dummy text/,$w! test.out:qa!ENDTESTdummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="8: Setting global acd\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autochdir', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal acd
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="9: Setting global autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="10: Setting local autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal ar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="11: Setting global autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal invar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="12: Setting option backspace through :let\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['backspace', '', 'eol,indent,start', 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet &bs="eol,indent,start"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="13: Setting option backspace through setbufvar()\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['backup', '', '1', 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c "try twice, first time, shouldn't trigger because option name is invalid, sec

ond time, it should trigger
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"[?25h[?0c[?25l[?1c
:[?25h[?0ccall setbufvar(1, '&l:bk', 1)
[?25l[?1cE355: Unknown option: l:bk[?25h[?0c[?25l[?1c:[?25h[?0c "should trigger, use correct option name
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setbufvar(1, '&backup', 1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="14: Setting number option using setwinvar\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setwinvar(0, '&number', 1)
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"
     57 :let g:options=[['backup', '', '1', 'local']]
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
     59 :call setbufvar(1, '&l:bk', 1)
     60 : "should trigger, use correct option name
     61 :call setbufvar(1, '&backup', 1)
     62 :let g:testcase="14: Setting number option using setwinvar\n"
     63 :let g:options=[['number', 0, 1, 'local']]
     64 :call setwinvar(0, '&number', 1)
     65 :" Write register now, because next test shouldn't output anything.
     66 :$put r
     67 :let @r=''
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
     70 :setlocal key=blah
     71 :setlocal key=
     72 :$put =g:testcase
     73 :$put r
     74 :/^dummy text/,$w! test.out
     75 :qa!
     76 ENDTEST
     77 dummy text[?25h[?0c[?25l[?1c:[?25h[?0c" Write register now, because next test shouldn't output anything.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put r
[?25l[?1c60 more lines117Autocmd Option: <autoread>, OldVal: <0>, NewVal: <1>, Scope: <global>11811910: Setting local autoread    120 Expected: Name: <autoread>, Oldval: <0>, NewVal: <1>, Scope: <local>121Autocmd Option: <autoread>, OldVal: <1>, NewVal: <1>, Scope: <local>12212311: Setting global autoread124Expected: Name: <autoread>, Oldval: <1>, NewVal: <0>, Scope: <global>125Autocmd Option: <autoread>, OldVal: <1>, NewVal: <0>, Scope: <global>12612712: Setting option backspace through :let128Expected: Name: <backspace>, Oldval: <>, NewVal: <eol,indent,start>, Scope: <global>129Autocmd Option: <backspace>, OldVal: <>, NewVal: <eol,indent,start>, Scope: <global>131313: Setting option backspace through setbufvar()13Expected: Name: <backup>, Oldval: <>, NewVal: <1>, Scope: <local>13Autocmd Option: <backup>, OldVal: <0>, NewVal: <1>, Scope: <local>131314: Setting number option using setwinvar13xpected: Name: <number>, Oldval: <0>, NewVal: <1>, Scope: <local>13Autocmd Option: <number>, OldVal: <0>, NewVal: <1>, Scope: <local>[?25h[?0c[?25l[?1c:[?25h[?0clet @r=''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="\n15: Setting key option, shouldn't trigger\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['key', 'invalid', 'invalid1', 'invalid']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal key=blah
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal key=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:testcase
[?25l[?1c    138 
    139 15: Setting key option, shouldn't trigger[?25h[?0c[?25l[?1c
:[?25h[?0c$put r
[?25l[?1c
    140 [?25h[?0c[?25l[?1c
:[?25h[?0c/^dummy text/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 64 lines, 2700 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_autocmd_option = test61; then \
#	  if diff test.out test_autocmd_option.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_autocmd_option.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autocmd_option.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autoformat_join.in
[?25h[?8c[?25h[?0c[?25l[?1c"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:[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for setting the '[,'] marks when joining lines.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 9 lines, 265 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^\t\t/
[?25l[?1c[?25h[?0c[?25l[?1cattamen consulite per voster honur.
Tua pulchra facies me fay planszer milies[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^This line/;'}-join
[?25l[?1cThis line.  Should be joined with the next line and with this line


~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet b=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='First test: Start/End '.string(a)
[?25l[?1cFirst test: Start/End '[0, 16, 1, 0]/[0, 17, 1, 0]'[?25h[?0c[?25l[?1c:[?25h[?0c$put ='Second test: Start/End '.string(b)
[?25l[?1cSecond test: Start/End '[0, 19, 11, 0]/[0, 19, 67, 0]'[?25h[?0c[?25l[?1c:[?25h[?0c/^\t\t/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 292 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_autoformat_join = test61; then \
#	  if diff test.out test_autoformat_join.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_autoformat_join.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autoformat_join.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_changelist.failed test.ok test.out X* viminfo
cp test_changelist.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_changelist.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_changelist.in" 22 lines, 288 charactersTest changelist position after splitting window
Set 'undolevels' to make changelist for sourced file

STARTTEST
:so small.vim
Gkylp:set ul=100
Gylp:set ul=100
gg
:vsplit
:try
:  normal g;
:  normal ggVGcpass^[
:catch
:  normal ggVGcfail^[
:finally
:  %w! test.out
:endtry
:qa!
ENDTEST

1
2
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest changelist position after splitting window[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 163 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c

[?25l[?1c11[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c22[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cvsplit
[?25l[?1c|
 window                                 |
Set 'undolevels' to make changelist for |
sourced file|
             |
STARTTEST       |
:so small.vim  |
Gkylp:set ul=100|
Gylp:set ul=100|
gg  |
:vsplit     |
:try                 |
:  normal g;|pass|
:catch  |
:  normal ggVGcfail^[|
:finally|
:  %w! test.out|
:endtry|
:qa!|
ENDTEST|
  |
test_changelist.in [+]                   Test changelist position after splitting windowSet 'undolevels' to make changelist forsourced fileSTARTTEST:so small.vimGkylp:set ul=100Gylp:set ul=100gg:vsplit:try:  normal g;:  normal ggVGcpass^[:catch:  normal ggVGcfail^[:finally:  %w! test.out:endtry:qa!ENDTESTtest_changelist.in [+]                 [?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  normagcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ui.o ui.c
l g;

[?25l[?1c:  [?25h[?0c:  normal ggVGcpass
[?25l[?1c21 fewer lines
:  

:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:  normal ggVGcfail

[?25l[?1c:  

:  [?25h[?0c:finally

[?25l[?1c:  [?25h[?0c:  %w! test.out

[?25l[?1c"test.out" [New File] 1 line, 5 characters written

:  [?25h[?0c:endtry
[?25l[?1cpass||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                          pass~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                         [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_changelist = test61; then \
#	  if diff test.out test_changelist.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_changelist.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_changelist.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_close_count.failed test.ok test.out X* viminfo
cp test_close_count.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_close_count.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_close_count.in" 153 lines, 2665 charactersTests for :[count]close! and :[count]hide     vim: set ft=vim :

STARTTEST
:so small.vim
:let tests = []
:for i in range(5)
:new
:endfor
:4wincmd w
:close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:$close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1wincmd w
:2close![?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :[count]close! and :[count]hide     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 41 lines, 749 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(tests, buffers)
:2wincmd w
:+1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(0, map(copy(tests), 'join(v:val, " ")'))
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:for i in range(5)
:new
:endfor
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:4wincmd w
:.hide[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cclose!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?25h[?0c[?25l[?1c


:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c-1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c+1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File]test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 7 lines, 39 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 15 4 25 27 5 27 5~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c"test_close_count.in" 153 lines, 2665 characters:2wincmd w
:+1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(0, map(copy(tests), 'join(v:val, " ")'))
:w:only!:b1ENDTESTSTARTTEST:let tests = []:for i in range(5):new:endfor:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers):4wincmd w:.hide:let buffers = [][?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 44 lines, 815 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:2wincmd w
:+hide
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new
:endfor
:1wincmd w
:$ hide
:let buffers = []
:windo call add(buffers, bufnr('%'))[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c.hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?25h[?0c[?25l[?1c


:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c-hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c+hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 7 lines, 39 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c13 12 11 10 9 113 12 11 9 112 11 9 112 11 9[+][?25h[?0c[?25l[?1c12 9
15 12 9
15 12[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0cw
[?25l[?1c"test.out" 15 lines, 106 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 15 4 25 27 5 27 513 12 11 10 9 113 12 11 9 112 11 9 112 11 912 915 12 9
15 12~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c:+hide:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w:only!:b1ENDTESTSTARTTEST
:let tests = []
:set hidden
:for i in range(5):new:endfor:1wincmd w:$ hide:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers)"test_close_count.in" line 93 of 153 --60%-- col 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 448 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:1wincmd w
:.+close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new
:endfor
:4wincmd w
^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$ hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$-1 close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c.+close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 15 lines, 106 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c[+][?25h[?0c[?25l[?1c15 12 915 120 19 18 17 16
20 19 18 16
20 18 16
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0cw
[?25l[?1c"test.out" 19 lines, 143 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5

13 12 11 10 9 1
13 12 11 9 1
12 11 9 1
12 11 9
12 9
15 12 9
15 12

20 19 18 17 16
20 19 18 16
20 18 16

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c:.+close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w:only!:b1ENDTESTSTARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new:endfor:4wincmd w
^Wc:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers)"test_close_count.in" line 121 of 153 --79%-- col 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 28 lines, 511 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST1^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
9^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1wincmd w
2^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:only!
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" line 19 of 19 --100%-- col 16 5 4 2 1
5 4 2 15 4 25 27 5 27 513 12 11 10 9 113 12 11 9 112 11 9 112 11 912 915 12 915 1220 19 18 17 1620 19 18 1620 18 16[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c25 24 23 21 124 23 21 124 23 2124 21[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 23 lines, 183 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_close_count = test61; then \
#	  if diff test.out test_close_count.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_close_count.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_close_count.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_comparators.failed test.ok test.out X* viminfo
cp test_comparators.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_comparators.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_comparators.in" 21 lines, 283 characters" Test for expression comparators.   vim: set ft=vim :


STARTTEST
:so small.vim
:try
:  let oldisident=&isident
:  set isident+=#
:  if 1 is#1
:    $put ='ok'
:  else
:    $put ='ng'
:  endif
:finally
:  let &isident=oldisident
:endtry
:"
:/^marker/+1,$wq! test.out
ENDTEST

marker
~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c" Test for expression comparators.   vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 200 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  let oldisident=&isident

[?25l[?1c:  [?25h[?0c:  set isident+=#

[?25l[?1c:  [?25h[?0c:  if 1 is#1

[?25l[?1c:    [?25h[?0c:    $put ='ok'

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    $put ='ng'

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:finally

[?25l[?1c:  [?25h[?0c:  let &isident=oldisident

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c" Test for expression comparators.   vim: set ft=vim :


STARTTEST
:so small.vim
:try
:  let oldisident=&isident
:  set isident+=#
:  if 1 is#1
:    $put ='ok'ok[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^marker/+1,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1 line, 3 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_comparators = test61; then \
#	  if diff test.out test_comparators.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_comparators.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_comparators.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_erasebackword.failed test.ok test.out X* viminfo
cp test_erasebackword.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_erasebackword.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_erasebackword.in" 19 lines, 427 charactersTest for erasing backword

STARTTEST
:so small.vim
:so mbyte.vim
:set encoding=utf-8
G
:/^test/,$w! test.out
:qa!
ENDTEST

test starts here:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for erasing backword[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 12 lines, 362 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest for erasing backword

STARTTEST
:so small.vim
:so mbyte.vim
:set encoding=utf-8
G
o wwwこんにちわ世界ワールドvim ^W^[
o wwwこんにちわ世界ワールドvim ^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^W^W^[
:/^test/,$w! test.out
:qa!
ENDTEST

test starts here:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c

[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1cド[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0cgcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/undo.o undo.c
[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c/^test/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 111 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_erasebackword = test61; then \
#	  if diff test.out test_erasebackword.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_erasebackword.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_erasebackword.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_eval.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_eval.in" 247 lines, 6201 charactersTest for various eval features.   vim: set ft=vim :

Note: system clipboard is saved, changed and restored.

clipboard contents
something else

STARTTEST
:so small.vim
:set encoding=latin1
:set noswapfile
:lang C
:fun AppendRegContents(reg)
  call AppendRegParts(a:reg, getregtype(a:reg), getreg(a:reg), string(getreg(a:reg, 0, 1)), getreg(a:reg, 1), string(getreg(a:reg, 1, 1)))
:endfun
:fun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
  call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)', a:reg, a:type, a:cont, a:strcont, a:cont1, a:strcont1))
endfun
:command -nargs=? AR :call AppendRegContents(<q-args>)
:fun SetReg(...)
    call call('setreg', a:000)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for various eval features.   vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 233 lines, 6010 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=latin1
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun AppendRegContents(reg)
[?25l[?1c
:  [?25h[?0c  call AppendRegParts(a:reg, getregtype(a:reg), getreg(a:reg), string(getreg

(a:reg, 0, 1)), getreg(a:reg, 1), string(getreg(a:reg, 1, 1)))

[?25l[?1c:  [?25h[?0c:endfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n[?25h[?0c[?25l[?1c:[?25h[?0cfun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
[?25l[?1c
:  [?25h[?0c  call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)', a:re

g, a:type, a:cont, a:strcont, a:cont1, a:strcont1))

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n[?25h[?0c[?25l[?1c:[?25h[?0ccommand -nargs=? AR :call AppendRegContents(<q-args>)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun SetReg(...)
[?25l[?1c
:  [?25h[?0c    call call('setreg', a:000)

[?25l[?1c:  [?25h[?0c    call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))

[?25l[?1c:  [?25h[?0c    call AppendRegContents(a:1)

[?25l[?1c:  [?25h[?0c    if a:1 isnot# '='

[?25l[?1c:    [?25h[?0c        execute "silent normal! Go==\n==\e\"".a:1."P"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?25h[?0c[?25l[?1c:[?25h[?0cfun ErrExe(str)
[?25l[?1c
:  [?25h[?0c    call append('$', 'Executing '.a:str)

[?25l[?1c:  [?25h[?0c    try

[?25l[?1c:    [?25h[?0c        execute a:str

[?25l[?1c:    [?25h[?0c    catch

[?25l[?1c:    [?25h[?0c        $put =v:exception

[?25l[?1c:    [?25h[?0c    endtry

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?25h[?0c[?25l[?1c:[?25h[?0cfun Test()
[?25l[?1c
:  [?25h[?0c$put ='{{{1 let tests'

[?25l[?1c:  [?25h[?0clet @" = 'abc'

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @" = "abc\n"

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @" = "abc\<C-m>"

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @= = '"abc"'

[?25l[?1c:  [?25h[?0cAR =

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Basic setreg tests'

[?25l[?1c:  [?25h[?0ccall SetReg('a', 'abcA', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcB', 'v')

[?25l[?1c:  [?25h[?0ccall SetReg('c', 'abcC', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('d', 'abcD', 'V')

[?25l[?1c:  [?25h[?0ccall SetReg('e', 'abcE', 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('f', 'abcF', "\<C-v>")

[?25l[?1c:  [?25h[?0ccall SetReg('g', 'abcG', 'b10')

[?25l[?1c:  [?25h[?0ccall SetReg('h', 'abcH', "\<C-v>10")

[?25l[?1c:  [?25h[?0ccall SetReg('I', 'abcI')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending single lines with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAc', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAc2','c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBc', 'ca')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBb', 'ba')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBc2','ca')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBb2','b50a')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('C', 'abcCl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('C', 'abcCc', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('D', 'abcDb', 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('E', 'abcEb', 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('E', 'abcEl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('F', 'abcFc', 'c')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending NL with setreg()'

[?25l[?1c:  [?25h[?0ccall setreg('a', 'abcA2', 'c')

[?25l[?1c:  [?25h[?0ccall setreg('b', 'abcB2', 'v')

[?25l[?1c:  [?25h[?0ccall setreg('c', 'abcC2', 'l')

[?25l[?1c:  [?25h[?0ccall setreg('d', 'abcD2', 'V')

[?25l[?1c:  [?25h[?0ccall setreg('e', 'abcE2', 'b')

[?25l[?1c:  [?25h[?0ccall setreg('f', 'abcF2', "\<C-v>")

[?25l[?1c:  [?25h[?0ccall setreg('g', 'abcG2', 'b10')

[?25l[?1c:  [?25h[?0ccall setreg('h', 'abcH2', "\<C-v>10")

[?25l[?1c:  [?25h[?0ccall setreg('I', 'abcI2')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('A', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('B', "\n", 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('D', "\n", 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('E', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('F', "\n", 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Setting lists with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('a', ['abcA3'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB3'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('c', ['abcC3'], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('d', ['abcD3'])

[?25l[?1c:  [?25h[?0ccall SetReg('e', [1, 2, 'abc', 3])

[?25l[?1c:  [?25h[?0ccall SetReg('f', [1, 2, 3])

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending lists with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', ['abcA3c'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB3l'], 'la')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ['abcC3b'], 'lb')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ['abcD32'])

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('A', ['abcA32'])

[?25l[?1c:  [?25h[?0ccall SetReg('B', ['abcB3c'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ['abcC3l'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ['abcD3b'], 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending lists with NL with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', ["\n", 'abcA3l2'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('B', ["\n", 'abcB3c2'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ["\n", 'abcC3b2'], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ["\n", 'abcD3b50'],'b50')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Setting lists with NLs with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4

-4-2"])

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\na

bcB4c-4-2"], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\na

bcC4l-4-2"], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\na

bcD4b-4-2"], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4

b10-4\nabcE4b10-4-2"], 'b10')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Search and expressions'

[?25l[?1c:  [?25h[?0ccall SetReg('/', ['abc/'])

[?25l[?1c:  [?25h[?0ccall SetReg('/', ["abc/\n"])

[?25l[?1c:  [?25h[?0ccall SetReg('=', ['"abc/"'])

[?25l[?1c:  [?25h[?0ccall SetReg('=', ["\"abc/\n\""])

[?25l[?1c:  [?25h[?0c$put ='{{{1 System clipboard'

[?25l[?1c:  [?25h[?0cif has('clipboard')

[?25l[?1c:    [?25h[?0c" Save and restore system clipboard.

[?25l[?1c:    [?25h[?0c" If no connection to X-Server is possible, test should succeed.

[?25l[?1c:    [?25h[?0clet _clipreg = ['*', getreg('*'), getregtype('*')]

[?25l[?1c:    [?25h[?0clet _clipopt = &cb

[?25l[?1c:    [?25h[?0clet &cb='unnamed'

[?25l[?1c:    [?25h[?0c5y

[?25l[?1c:    [?25h[?0cAR *

[?25l[?1c:    [?25h[?0ctabdo :windo :echo "hi"

[?25l[?1c:    [?25h[?0c6y

[?25l[?1c:    [?25h[?0cAR *

[?25l[?1c:    [?25h[?0clet &cb=_clipopt

[?25l[?1c:    [?25h[?0ccall call('setreg', _clipreg)

[?25l[?1c:    [?25h[?0celse

[?25l[?1c:    [?25h[?0c  call AppendRegParts('*', 'V', "clipboard contents\n", "['clipboard conte

nts']", "clipboard contents\n", "['clipboard contents']")

[?25l[?1c:    [?25h[?0c  call AppendRegParts('*', 'V', "something else\n", "['something else']", 

"something else\n", "['something else']")

[?25l[?1c:    [?25h[?0cendif

[?25l[?1c:  [?25h[?0c$put ='{{{1 Errors'

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg()')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, 2, 3, 4)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg([], 2)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, {})')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, 2, [])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg("/", ["1", "2"])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg("=", ["1", "2"])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, ["", "", [], ""])')

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Test()
[?25l[?1chi*: type V; value: something else^@ (['something else']), expr: something else^@
(['something else'])
{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)
Vim(call):E118: Too many arguments for function: setreg
Executing call setreg([], 2)
Vim(call):E730: using List as a String
Executing call setreg(1, {})
Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction SetReg
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction AppendRegContents
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction ErrExe
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction Test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelcommand AR
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name not starting with capital
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! g:test()

[?25l[?1c:  [?25h[?0c:echo "test"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)8: Too many arguments for function: setreg[], 2)730: using List as a String1, {}1Dictionary as a String2, [])0List as a String"/", ["1", "2"])883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])Vim(call):E730: using List as a String
Vim(function):E128: Function name must start with a capital or "s:": g:test()
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name includes a colon
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! b:test()

[?25l[?1c:  [?25h[?0c:echo "test"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)Vim(function):E128: Function name must start with a capital or "s:": b:test()[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name folowed by #
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! test2() "#

[?25l[?1c:  [?25h[?0c:echo "test2"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1cExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)
Vim(call):E118: Too many arguments for function: setreg
Executing call setreg([], 2)Vim(call):E730: using List as a String
Executing call setreg(1, {})Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a Stringfunction):E128: Function name must start with a capital or "s:": g:test()btest2() "#[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name starting with/without "g:", buffer-local funcref.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! g:Foo(n)
[?25l[?1c
:  [?25h[?0c:  $put ='called Foo(' . a:n . ')'

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg[?25h[?0c[?25l[?1c
:[?25h[?0clet b:my_func = function('Foo')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall b:my_func(1)
[?25l[?1c
called Foo(1)[?25h[?0c[?25l[?1c
:[?25h[?0cecho g:Foo(2)
[?25l[?1c0
called Foo(2)[?25h[?0c[?25l[?1c
:[?25h[?0cecho Foo(3)
[?25l[?1c0
called Foo(3)[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" script-local function used in Funcref must exist.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso test_eval_func.vim
[?25l[?1cs:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Using $ instead of '$' must give an error
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c: call append($, 'foobar')

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1cExecuting call setreg(1, {})
Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a Stringfunction):E128: Function name must start with a capital or "s:": g:test()btest2() "#
called Foo(123
s:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1func Bar exists: 1
Vim(call):E116: Invalid arguments for function append[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='{{{1 getcurpos/setpos'
[?25l[?1c
{{{1 getcurpos/setpos[?25h[?0c[?25l[?1c
/[?25h[?0c^012345678
[?25l[?1csearch hit BOTTOM, continuing at TOP:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:
{{{1 let tests
": type v; value: abc (['abc']), expr: abc (['abc'])
": type V; value: abc^@ (['abc']), expr: abc^@ (['abc'])
": type V; value: abc^M^@ (['abc^M']), expr: abc^M^@ (['abc^M'])
=: type v; value: abc (['abc']), expr: "abc" (['"abc"'])
{{{1 Basic setreg tests
{{{2 setreg('a', 'abcA', 'c')
a: type v; value: abcA (['abcA']), expr: abcA (['abcA'])
search hit BOTTOM, continuing at TOP[?25h[?0c012345[?25l[?1c:[?25h[?0clet sp = getcurpos()
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0ccall setpos('.', sp)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put
[?25l[?1cExecuting call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
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:": b:test()
Vim(function):E128: Function name must start with a capital or "s:": test2() "#
called Foo(1)
called Foo(2)
called Foo(3)
s:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1
Vim(call):E116: Invalid arguments for function append
{{{1 getcurpos/setpos
6[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" substring and variable name
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet str = 'abcdef'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet n = 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[n:]
[?25l[?1c
def[?25h[?0c[?25l[?1c
:[?25h[?0c$put =str[:n]
[?25l[?1c
abcd[?25h[?0c[?25l[?1c
:[?25h[?0c$put =str[n:n]
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0cunlet n
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet nn = 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[nn:]
[?25l[?1cdef
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put =str[:nn]
[?25l[?1cabcd[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[nn:nn]
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0cunlet nn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:nn = 4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[b:nn:]
[?25l[?1cef
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put =str[:b:nn]
[?25l[?1cabcde[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[b:nn:b:nn]
[?25l[?1c
e[?25h[?0c[?25l[?1c
:[?25h[?0cunlet b:nn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/+1,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 362 lines, 11279 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_eval = test61; then \
#	  if diff test.out test_eval.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_eval.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_eval.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_fixeol.failed test.ok test.out X* viminfo
cp test_fixeol.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_fixeol.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_fixeol.in" 40 lines, 780 charactersTests for 'fixeol'vim: set ft=vim :

STARTTEST
:" use Unix fileformat for consistency
:set ff=unix
:enew!
awith eol^[:w! XXEol
:enew!
:set noeol nofixeol
awithout eol^[:w! XXNoEol
:set eol fixeol
:bwipe XXEol XXNoEol
:"
:" try editing files with 'fixeol' disabled
:e! XXEol
ostays eol^[:set nofixeol
:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol
:w! XXTestNoEol
:bwipe XXEol XXNoEol XXTestEol XXTestNoEol
:set fixeol[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'fixeol'vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 698 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" Append "END" to each file so that we can see what the last written char was.
ggdGaEND^[:w >>XXEol
:w >>XXNoEol
:w >>XXTestEol
:w >>XXTestNoEol
:"
:" Concatenate the results
:e! test.out
a0^[:$r XXEol
:$r XXNoEol
Go1^[:$r XXTestEol
:$r XXTestNoEol
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
2 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol:w! XXTestNoEol:bwipe XXEol XXNoEol XXTestEol XXTestNoEol:set fixeol:":" Append "END" to each file so that we can see what the last written char was.ggdGaEND^[:w >>XXEol:w >>XXNoEol:w >>XXTestEol:w >>XXTestNoEol:":" Concatenate the results:e! test.outa0^[:$r XXEol:$r XXNoEolGo1^[:$r XXTestEol:$r XXTestNoEol:w:qa!ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0c" try editing files with 'fixeol' disabled
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" 1 line, 9 characterswith eol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c
stays eol[?25h[?0c[?25l[?1c:[?25h[?0cset nofixeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! XXTestEol
[?25l[?1c"XXTestEol" [New File] 2 lines, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXNoEol
[?25l[?1c"XXNoEol" [Incomplete last line] 1 line, 11 charactersout eol
~                                                                               [?25h[?0c[?25l[?1c
stays without[?25h[?0c[?25l[?1c:[?25h[?0cset nofixeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! XXTestNoEol
[?25l[?1c"XXTestNoEol" [New File][Incomplete last line] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol XXNoEol XXTestEol XXTestNoEol
[?25l[?1c"test_fixeol.in" 40 lines, 780 characters

4 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fixeol
[?25l[?1c:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol:w! XXTestNoEol:bwipe XXEol XXNoEol XXTestEol XXTestNoEol:set fixeol:":" Append "END" to each file so that we can see what the last written char was.ggdGaEND^[:w >>XXEol:w >>XXNoEol:w >>XXTestEol:w >>XXTestNoEol:":" Concatenate the results:e! test.outa0^[:$r XXEol:$r XXNoEolGo1^[:$r XXTestEol:$r XXTestNoEol:w:qa!ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Append "END" to each file so that we can see what the last written char was.
[?25l[?1c[?25h[?0c[?25l[?1cTests for 'fixeol'vim: set ft=vim :

STARTTEST
:" use Unix fileformat for consistency
:set ff=unix
:enew!
awith eol^[:w! XXEol
:enew!
:set noeol nofixeol
awithout eol^[:w! XXNoEol
:set eol fixeol
:bwipe XXEol XXNoEol
:"
:" try editing files with 'fixeol' disabled
:e! XXEol
ostays eol^[:set nofixeol[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cEND[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXEol
[?25l[?1c"XXEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXNoEol
[?25l[?1c"XXNoEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXTestEol
[?25l[?1c"XXTestEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXTestNoEol
[?25l[?1c"XXTestNoEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Concatenate the results
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File][?25h[?0c[?25l[?1c0[?25h[?0c[?25l[?1c:[?25h[?0c$r XXEol
[?25l[?1c"XXEol" 2 lines, 13 characterswith eolEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXNoEol
[?25l[?1c"XXNoEol" 1 line, 15 characterswithout eolEND[?25h[?0c[?25l[?1c
1[?25h[?0c[?25l[?1c:[?25h[?0c$r XXTestEol
[?25l[?1c"XXTestEol" 3 lines, 23 characterswith eolstays eolEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXTestNoEol
[?25l[?1c"XXTestNoEol" 2 lines, 29 characterswithout eolstays withoutEND[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 10 lines, 84 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_fixeol = test61; then \
#	  if diff test.out test_fixeol.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_fixeol.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_fixeol.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_getcwd.failed test.ok test.out X* viminfo
cp test_getcwd.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_getcwd.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_getcwd.in" 96 lines, 2374 charactersTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :

STARTTEST
:so small.vim
:" Do all test in a separate window to avoid E211 when we recursively
:" delete the Xtopdir directory during cleanup
:"
:" This will cause a few errors, do it silently.
:set visualbell
:set nocp viminfo+=nviminfo
:"
:" On windows a swapfile in Xtopdir prevents it from being cleaned up.
:set noswapfile
:"
:function! GetCwdInfo(win, tab)
: let tab_changed = 0
: let mod = ":t"
: if a:tab > 0 && a:tab != tabpagenr()
:   let tab_changed = 1
:   exec "tabnext " . a:tab
: endif
: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)
: if tab_changed[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 90 lines, 2273 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:wincmd W
:lcd Xdir2
:call add(r, GetCwdInfo(0, 0))
:wincmd W
:lcd Xdir3
:call add(r, GetCwdInfo(0, 0))
:call add(r, GetCwdInfo(bufwinnr("x"), 0))
:call add(r, GetCwdInfo(bufwinnr("y"), 0))
:call add(r, GetCwdInfo(bufwinnr("z"), 0))
:let tp_nr = tabpagenr()
:tabrewind
:call add(r, GetCwdInfo(3, tp_nr))
:call add(r, GetCwdInfo(2, tp_nr))
:call add(r, GetCwdInfo(1, tp_nr))
:"
:call writefile(r, test_out, "a")
:q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Do all test in a separate window to avoid E211 when we recursively
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" delete the Xtopdir directory during cleanup
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This will cause a few errors, do it silently.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" On windows a swapfile in Xtopdir prevents it from being cleaned up.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! GetCwdInfo(win, tab)
[?25l[?1c
:  [?25h[?0c: let tab_changed = 0

[?25l[?1c:  [?25h[?0c: let mod = ":t"

[?25l[?1c:  [?25h[?0c: if a:tab > 0 && a:tab != tabpagenr()

[?25l[?1c:    [?25h[?0c:   let tab_changed = 1

[?25l[?1c:    [?25h[?0c:   exec "tabnext " . a:tab

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)

[?25l[?1c:  [?25h[?0c: if tab_changed

[?25l[?1c:    [?25h[?0c:   tabprevious

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: if a:win == 0 && a:tab == 0

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir()

[?25l[?1c:    [?25h[?0c: elseif a:tab == 0

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(a:win), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir(a:win)

[?25l[?1c:    [?25h[?0c: else

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(a:win, a:tab), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir(a:win, a:tab)

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: return bufname . ' ' . dirname . ' ' . lflag

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:wincmd W
:lcd Xdir2
:call add(r, GetCwdInfo(0, 0))
:wincmd W
:lcd Xdir3
:call add(r, GetCwdInfo(0, 0))
:call add(r, GetCwdInfo(bufwinnr("x"), 0))
:call add(r, GetCwdInfo(bufwinnr("y"), 0))
:call add(r, GetCwdInfo(bufwinnr("z"), 0))
:let tp_nr = tabpagenr()
:tabrewind
:call add(r, GetCwdInfo(3, tp_nr))
:call add(r, GetCwdInfo(2, tp_nr))
:call add(r, GetCwdInfo(1, tp_nr))
:"
:call writefile(r, test_out, "a")
:q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST
[?25h[?0c[?25l[?1c

:[?25h[?0c" On windows a stale "Xtopdir" directory may exist, remove it so that
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" we start from a clean state.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xtopdir", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet r=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       test_getcwd.in                                                                  [?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet test_out = cwd . '/test.out'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xtopdir')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xtopdir
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test_getcwd.in[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir1')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir2')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir3')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew a
[?25l[?1c"a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test_getcwd.in              [?25h[?0c[?25l[?1c:[?25h[?0cnew b
[?25l[?1c"b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test_getcwd.in              [?25h[?0c[?25l[?1c:[?25h[?0cnew c
[?25l[?1c"c" [New File]~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test_getcwd.in              [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1cc                                                                               a                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir1
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/Xdir1/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/b/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/a[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                            b                                                                               a                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                                               b                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir3
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/Xdir3/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/b/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/a[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("a"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("b"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("c"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                                               b                                                            a                                                            /<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test_getcwd.in              [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("a"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("b"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("c"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew x
[?25l[?1c"x" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  x                                               X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew y
[?25l[?1c"y" [New File]2y  Xy                                                                               x                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew z
[?25l[?1c"z" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               z                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               y                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               x                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1cz                                                                               x                                                                               x X[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cy                                                                               x                                                                               y X[?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir2
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/Xdir2/b/v/v/s/v/t/X/y  X/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/z/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/y/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/x[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cz                 Xz                                                                               y                                                                               x                                                            [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir3
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/Xdir3/b/v/v/s/v/t/X/z  X/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/z/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/y/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtopdir/x[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("x"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("y"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("z"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tp_nr = tabpagenr()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test_getcwd.in              [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(3, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test_getcwd.in              [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(2, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test_getcwd.in              [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(1, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test_getcwd.in              [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall writefile(r, test_out, "a")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c 4 [No Name]  3 z                                                               X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdirX/z  XXtopdir/cXtopdir/bXtopdir/a
[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xtopdir", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_getcwd = test61; then \
#	  if diff test.out test_getcwd.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_getcwd.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_getcwd.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_insertcount.failed test.ok test.out X* viminfo
cp test_insertcount.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_insertcount.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_insertcount.in" 14 lines, 204 charactersTests for repeating insert and replace.

STARTTEST
:so small.vim
:/Second
4gro
:/^First/,$wq! test.out
:" get here when failed and in Insert mode
^[:.wq! test.out
ENDTEST

First line
Second line
Last line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for repeating insert and replace.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 111 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/Second
[?25l[?1c[?25h[?0c[?25l[?1cooooecond line
ooo[?25h[?0c
Las[?25l[?1c:[?25h[?0c/^First/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 3 lines, 36 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_insertcount = test61; then \
#	  if diff test.out test_insertcount.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_insertcount.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_insertcount.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listchars.failed test.ok test.out X* viminfo
cp test_listchars.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listchars.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listchars.in" 54 lines, 705 charactersTests for 'listchars' display with 'list' and :list

STARTTEST
:so small.vim
:set ff=unix
:let g:lines = []
:function GetScreenCharsForLine(lnum)
:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val))'), '')
:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\<CR>"
:set listchars+=tab:>-,space:.,trail:<
:set list
:
/^start:/
:normal! jzt
GG
GG
GG
GG
GGH:
:set listchars-=trail:<[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'listchars' display with 'list' and :list[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 431 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTGG
GG
GG
GG
GG:
:put =g:lines
:'[,']w! test.out
ENDTEST[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:lines = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction GetScreenCharsForLine(lnum)
[?25l[?1c
:  [?25h[?0c:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val

))'), '')

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\<CR>"[?25h[?0c[?25l[?1c
:[?25h[?0cnnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))

\<CR>"
[?25l[?1c:endfunction[?25h[?0c[?25l[?1c
:[?25h[?0cset listchars+=tab:>-,space:.,trail:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list
[?25l[?1c$.<expr>.GG.":call..$
:set.$
:set.list$
:$$.jzt$
GG$
GG$
GG$
GG$
GGH:$
:set.$
GG$
GG$
GG$
GG$
GG:$
:put.$.$$
$[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c
start:$[?25h[?0c[?25l[?1c
:[?25h[?0cnormal! jzt
[?25l[?1c>-------aa>-----$
..bb>---<<$
...cccc><$
dd........ee<<>-$
<$
$
$
STARTTEST$
:set.listchars+=trail:<$
:set.nolist$
:$
/^start:/$
:redir!.>>.test.out$
:+1,$list$
:redir.END$
:q!$
ENDTEST$
$
start:$
..fff>--<<$
>-------gg>-----$
.....h>-$
iii<<<<><<$[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(1))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(2))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(3))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(4))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(5))
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset listchars-=trail:<
[?25l[?1c.....
.......>..[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(1))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(2))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(3))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(4))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(5))
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =g:lines
[?25l[?1c10 more >-------aa>-----$$
..bb>---<<$$
...cccc><$$
dd........ee<<>-$$
<$$
>-------aa>-----$$
..bb>---..$$
...cccc>.$$
dd........ee..>-$$
.$$10 more lines[?25h[?0c[?25l[?1c:[?25h[?0c'[,']w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 124 characters written[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 93 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:+1,$list$
:redir.END$
:q!$
ENDTEST$[?25h[?0c[?25l[?1c
$[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset listchars+=trail:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nolist
[?25l[?1c   >>  [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c
start:[?25h[?0c[?25l[?1c
:[?25h[?0credir! >> test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c+1,$list
[?25l[?1c..fff>--<<$

>-------gg>-----$

.....h>-$

iii<<<<><<$

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c>-------aa>-----$
..bb>---..$
...cccc>.$
dd........ee..>-$
.$STARTTEST:set listchars+=trail:<
:set nolist
:
/^start:/
:redir! >> test.out+1,$listredir END
:q!ENDTESTstart:  fff
        ggh
iii   [?25h[?0c[?25l[?1c
:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listchars = test61; then \
#	  if diff test.out test_listchars.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listchars.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listchars.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listlbr.failed test.ok test.out X* viminfo
cp test_listlbr.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listlbr.in" 119 lines, 2868 charactersTest for linebreak and list option (non-utf8)

STARTTEST
:so small.vim
:if !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |
endif
:10new|:vsp|:vert resize 20
:put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width)
:let c=''
:for j in range(1,4)
:for i in range(1,a:width)
:let c.=nr2char(screenchar(j, i))
:endfor
:let c.="\n"
:endfor
:return c
:endfu
:fu! DoRecordScreen()
:wincmd l
:$put =printf(\"\n%s\", g:test)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for linebreak and list option (non-utf8)[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 114 lines, 2792 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTabcd{ef
ghijklm
no}pqrs^[2k0f{^V^Vc%^[
:"
:let g:test ="Test 11: using block replace mode after wrapping"
:$put =g:test
:set linebreak wrap
Go^[150aa^[yypk147|^Vjr0
:"
:let g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$":set list listchars=space:_,trail:-,tab:>-,eol:$
:$put =g:test
:let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |

endif
[?25l[?1cabcd{ef[?25h[?0c[?25l[?1c
:[?25h[?0c10new|:vsp|:vert resize 20
[?25l[?1c       ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name]            ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name]                                                  let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =linenorm! zt
:redraw!let line=ScreenChar(winwidth(0))
:call DoRecordScreen()%w! test.outqaENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0cput =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [+][?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25l[?1cabcdef          
+hijklmn            
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [?25h[?0c[?25l[?1c:[?25h[?0cfu! ScreenChar(width)
[?25l[?1c
:  [?25h[?0c:^Ilet c=''

[?25l[?1c:  [?25h[?0c:^Ifor j in range(1,4)

[?25l[?1c:    [?25h[?0c:^I    for i in range(1,a:width)

[?25l[?1c:      [?25h[?0c:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l[?1c:      [?25h[?0c:^I    endfor

[?25l[?1c:    [?25h[?0c:           let c.="\n"

[?25l[?1c:    [?25h[?0c:^Iendfor

[?25l[?1c:  [?25h[?0c:^Ireturn c

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0cfu! DoRecordScreen()
[?25l[?1c
:  [?25h[?0c:^Iwincmd l

[?25l[?1c:  [?25h[?0c:^I$put =printf(\"\n%s\", g:test)

[?25l[?1c:  [?25h[?0c:^I$put =g:line

[?25l[?1c:  [?25h[?0c:^Iwincmd p

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 1: set linebreak"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 1: set         
+linebreak          
    abcdef          
+hijklmn            
+pqrstuvwxyz_1060ABCTest 1: set linebreak    abcdef          +hijklmn            +pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP      [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 2: set linebreak + set list"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak list listchars=
[?25l[?1c^Iabcdef hijklmn^I  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP      
              
Test 1: set
+linebreak 
    abcdef
+hijklmn  
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c^Iabcdef hijklmn^I  |
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
Test 1: set|
+linebreak|
    abcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      |
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOPTest 1: set linebreakabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP~                                                          ~                                                          [No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines    abcdef                                                 +hijklmn                                                   +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                             ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 3: set linebreak nolist"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak
[?25l[?1c    abcdef          hijklmn            pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
           
Test 1: set
+linebreak
    abcdef
+hijklmn            
+pqrstuvwxyz_1060ABC[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
Test 1: set|
+linebreak|
    abcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
[No Name] [+]        abcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOPTest 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines^Iabcdef hijklmn^I                                         +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Test 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 4: set linebreak with tab and 1 line as long as screen: shou

ld break!"
[?25l[?1cabcdef|^Iabcdef hijklmn^I[?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak ts=8
[?25l[?1c    abcdef[?25h[?0c[?25l[?1c:[?25h[?0clet line="1\t".repeat('a', winwidth(0)-2)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1c      
        
Test 3: set         linebreak nolist
    abcdef
+hijklmn   
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
1       
+aaaaaaaaaaaaaaaaaa [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c1|
+aaaaaaaaaaaaaaaaaa |||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOPTest 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     1aaaaaaaaaaaaaaaaaaTest 4: set linebreak with tab and 1 line as long as screen+: should break!1+aaaaaaaaaaaaaaaaaa~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet line="_S_\t bla"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cTest 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    ~
~
_S_      bla[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c_S_      bla        
                    
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 5: set linebreak with conceal and set list and tab displayed

by different char (line may not be truncated)"
[?25l[?1c_S_      bla|+pqrstuvwxyz_1060ABC[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab
[?25l[?1cabbbb[?25h[?0c[?25l[?1c:[?25h[?0csyn match ConcealVar contained /_/ conceal
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match All /.*/ contains=ConcealVar
[?25l[?1cSabb[?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 5: set         
+linebreak with     
+conceal and set    
+list and tab       
+displayed by       
+different char     
+(line may not be   
+truncated)         ~                                                          ~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _S_      blaTest 5: set linebreak with conceal and set list and tab dis+played by different char (line may not be truncated)Sabbbbbb bla~~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 6: set linebreak with visual block mode"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet line="REMOVE: this not"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cabbbbbb
~
~          
~              
Test 6: set     nebreak withvisual block mode
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cREMOVE: this not    [?25h[?0c[?25l[?1c:[?25h[?0clet line="REMOVE: aaaaaaaaaaaaa"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cREMOVE:             
+aaaaaaaaaaaaa      [?25h[?0c[?25l[?1c:[?25h[?0c1/^REMOVE:
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cR[?25h[?0c[?25l[?1cEMOVE: 
REMOVE:[?25h[?0c[?25l[?1cthis not        
aaaaaaaaaaaaa
~                   [?25h[?0c[?25l[?1c:[?25h[?0c$put
[?25l[?1c~                   
~                   
~                   
Test 6: set         
+linebreak with     
+visual block mode  
this not            
aaaaaaaaaaaaa       
~                   
                    REMOVE:             
REMOVE:[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 7: set linebreak with visual block mode and v_b_A"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cthis not            
aaaaaaaaaaaaa       
REMOVE:             
REMOVE:             
                    
                    
                    
                    
                    
                    Test 7: set
+linebreak with
+visual block mode
+and vbA
~                   
~                   [?25h[?0c[?25l[?1clong line:          [?25h[?0c[?25l[?1c foobar
+foobar foobar      @                   
@                           
             
       
       
           
               
                  
        
                    
                    +foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar[?25h[?0c+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar             
                    [?25l[?1cTARGET at
+end[?25h[?0c[?25l[?1c:[?25h[?0cexe "norm! $3B\<C-v>eAx\<Esc>"
[?25l[?1cx at[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak sbr=
[?25l[?1cfoobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar TARGETx at 
end played by different char (line may not be truncated)[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 8: set linebreak with visual char mode and changing block"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 8: set  
linebreak with
visual char mode
and changing block
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c1111-1111-1111-11-  
1111-1111-1111      [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c111[?25h[?0c[?25l[?1c2222[?25h[?0c[?25l[?1c2222[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 9: using redo after block visual mode"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 9: using redo  
after block visual  
mode                [?25h[?0c[?25l[?1c1111-2222-1111-11-  
1111-2222-1111      
Test 9: using redo  
after block visual  
mode                
~                   
                    
                    
                    
                                        
aaa
aaa
a
~                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
a[?25h[?0c[?25l[?1c3 lines changedA
A
A[?25h[?0c[?25l[?1cA
AaA[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 10: using normal commands after block-visual"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 9: using redo  
after block visual  
mode                
                    
AaA                 
AaA                 
A                   
~                   
                    
                    Test 10: using      
normal commands
after block-visual[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak
[?25l[?1c[?25h[?0c[?25l[?1cAaA                 
AaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
                    
                    
                    abcd{ef
ghijklm
no}pqrs[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cpqrs
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 11: using block replace mode after wrapping"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cAaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
~                   
~                   
                    Test 11: using      
block replace mode  
after wrapping[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak wrap
[?25l[?1c[?25h[?0c[?25l[?1cA                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
Test 11: using      
block replace mode  
after wrapping      
                    [?25h[?0c[?25l[?1caaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa        
~                   
~                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1caaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa
~                   
~                   [?25h[?0c[?25l[?1c0
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?25h[?0c[?25l[?1c@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaa0aaa
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$

"[?25l[?1caaaaaaaaaaaaaaaaaaaa|~[?25h[?0c[?25l[?1c:[?25h[?0cset list listchars=space:_,trail:-,tab:>-,eol:$
[?25l[?1c$[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0clet line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1ca_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1ca_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         
~                   
~                   
~                   
                    
                    
                    
                    ~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1ca_|
aaaaaaaaaaaaaaaaaaaa|
aa>-----a-$||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ~~_S_      blaTest 5: set linebreak with conceal and set list and tab displayed by different char (line may not be truncated)Sabbbbbb bla~~~[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines$                   
Test_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
a------------------ 
$                   Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$a aaaaaaaaaaaaaaaaaaaaaaa12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$a_          aaaaaaaaaaaaaaaaaaaaaa>-----a-$[?25h[?0c[?25l[?1c:[?25h[?0c%w! test.out
[?25l[?1c"test.out" [New File] 62 lines, 2030 characters writtentest.out     test.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listlbr = test61; then \
#	  if diff test.out test_listlbr.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listlbr.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_search_mbyte.failed test.ok test.out X* viminfo
cp test_search_mbyte.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_search_mbyte.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_search_mbyte.in" 15 lines, 226 charactersTest for search('multi-byte char', 'bce')

STARTTEST
:source small.vim
:source mbyte.vim
:set encoding=utf-8
:/^Test bce:/+1
:$put =search('A', 'bce', line('.'))
:1;/^Results:/,$wq! test.out
ENDTEST

Results:

Test bce:
A
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for search('multi-byte char', 'bce')[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 140 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0csource small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csource mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest for search('multi-byte char', 'bce')

STARTTEST
:source small.vim
:source mbyte.vim
:set encoding=utf-8
:/^Test bce:/+1
:$put =search('A', 'bce', line('.'))
:1;/^Results:/,$wq! test.out
ENDTEST

Results:

Test bce:
A
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c/^Test bce:/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =search('A', 'bce', line('.'))
[?25l[?1c15[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results:/,$wq! test.out
[?25l[?1c"test.out" [New File] 5 lines, 27 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_search_mbyte = test61; then \
#	  if diff test.out test_search_mbyte.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_search_mbyte.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_search_mbyte.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_utf8.failed test.ok test.out X* viminfo
cp test_utf8.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_utf8.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_utf8.in" 46 lines, 1245 charactersTests for Unicode manipulationsvim: set ft=vim :

STARTTEST
:so small.vim
:set encoding=utf-8
:"
:" Visual block Insert adjusts for multi-byte char
:new
:exe ":norm! gg0l\<C-V>jjIx\<Esc>"
:let r = getline(1, '$')
:"
:bwipeout!
:$put=r
:"
:" Test for built-in function strchars()
:$put=strchars(str)
:$put=strchars(str, 0)
:$put=strchars(str, 1)
:endfor
:"
:" Test for customlist completion[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for Unicode manipulationsvim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 1151 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete2(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete3(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1c:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:return ['あ', 'い']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete2(lead, line, pos)
:return ['あたし', 'あたま', 'あたりめ']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete3(lead, line, pos)
:return ['Nこ', 'Nん', 'Nぶ']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual block Insert adjusts for multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       function! CustomComplete3(lead, line, pos)
:       return ['Nこ', 'Nん', 'Nぶ']endfunctioncommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')"call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST test_utf8.in                                                                    [?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, ["aaa", "あああ", "bbb"])
[?25l[?1caaa
あああbbb[+][?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! gg0l\<C-V>jjIx\<Esc>"
[?25l[?1cxaa
xあああ
bxbb[?25h[?0c[?25l[?1c:[?25h[?0clet r = getline(1, '$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipeout!
[?25l[?1c:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:       return ['あ', 'い']
:endfunction:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it'):":function! CustomComplete2(lead, line, pos):       return ['あたし', 'あたま', 'あたりめ']:endfunction:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')"function! CustomComplete3(lead, line, pos)
:       return ['Nこ', 'Nん', 'Nぶ']
:endfunctionommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"call garbagecollect(1):/^start:/,$wq! test.out
ENDTEST
 [?25h[?0c[?25l[?1c:[?25h[?0c$put=r
[?25l[?1c3 more linesstart:
axaa
xあああ
bxbb3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for built-in function strchars()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor str in ["a", "あいa", "A\u20dd", "A\u20dd\u20dd", "\u20dd"]
[?25l[?1c
:  [?25h[?0c:^I$put=strchars(str)

[?25l[?1c:  [?25h[?0c:^I$put=strchars(str, 0)

[?25l[?1c:  [?25h[?0c:^I$put=strchars(str, 1)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST

start:axaaxあああbxbb11133322133
1111[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for customlist completion
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete1(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['あ', 'い']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:call garbagecollect(1)
:/^start:/,$wq! test.out[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test1 ...'
:$Test1 '
:$pTest1 '
:$puTest1 '
:$putTest1 '
:$put=Test1 ''Test1 '

Test1[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete2(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['あたし', 'あたま', 'あたりめ']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test2 ...あた'
:$Test2 あた'
:$pTest2 あた'
:$puTest2 あた'
:$putTest2 あた'
:$put=Test2 あた''Test2 あた'

Test2 あた[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete3(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['Nこ', 'Nん', 'Nぶ']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test3 ...N'
:$Test3 N'
:$pTest3 N'
:$puTest3 N'
:$putTest3 N'
:$put=Test3 N''Test3 N'

Test3 N[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 22 lines, 86 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_utf8 = test61; then \
#	  if diff test.out test_utf8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_utf8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_utf8.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_wordcount.failed test.ok test.out X* viminfo
cp test_wordcount.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
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/userfunc.o userfunc.c
# a second, fall back to a second if it fails.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_wordcount.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_wordcount.in" 126 lines, 2815 charactersTest for wordcount() function

STARTTEST
:so small.vim
:so mbyte.vim
:set enc=utf8
:set selection=inclusive fileformat=unix fileformats=unix
:new
:fu DoRecordWin(...)
:wincmd k
:if exists("a:1")
:call cursor(a:1)
:endif
:let result=[]
:call add(result, g:test)
:call add(result, getline(1, '$'))
:call add(result, wordcount())
:wincmd j
:return result
:endfu
:fu PutInWindow(args)
:wincmd k
:%d _[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for wordcount() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 121 lines, 2753 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:0
v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:let g:test="Test 11: visual mode, single line"
:wincmd k
:set ls=2 stl=%{STL()}
:" start visual mode quickly and select complete buffer
:2
0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:/^RESULT test/,$w! test.out
:qa!
ENDTEST
RESULT test:[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf8
[?25l[?1c:0
v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:let g:test="Test 11: visual mode, single line"
:call PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
:wincmd k
:set ls=2 stl=%{STL()}
:" start visual mode quickly and select complete buffer
:2
0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:/^RESULT test/,$w! test.out
:qa!
ENDTEST
RESULT test:
[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=inclusive fileformat=unix fileformats=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])[2]=g:visual_statcall Log()"/^RESULT test/,$w! test.out
:qa!ENDTEST
RESULT test:
test_wordcount.in                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu DoRecordWin(...)
[?25l[?1c
:  [?25h[?0c:^Iwincmd k

[?25l[?1c:  [?25h[?0c:       if exists("a:1")

[?25l[?1c:    [?25h[?0c:           call cursor(a:1)

[?25l[?1c:    [?25h[?0c:       endif

[?25l[?1c:  [?25h[?0c:       let result=[]

[?25l[?1c:  [?25h[?0c:       call add(result, g:test)

[?25l[?1c:  [?25h[?0c:       call add(result, getline(1, '$'))

[?25l[?1c:  [?25h[?0c:       call add(result, wordcount())

[?25l[?1c:  [?25h[?0c:^Iwincmd j

[?25l[?1c:  [?25h[?0c:       return result

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu PutInWindow(args)
[?25l[?1c
:  [?25h[?0c:       wincmd k

[?25l[?1c:  [?25h[?0c:       %d _

[?25l[?1c:  [?25h[?0c:       call append(1, a:args)

[?25l[?1c:  [?25h[?0c:^Iwincmd j

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu Log()
[?25l[?1c
:  [?25h[?0c:   $put ='----'

[?25l[?1c:  [?25h[?0c:   $put =remove(g:log,0)

[?25l[?1c:  [?25h[?0c:   $put =string(g:log)

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu! STL()
[?25l[?1c
:  [?25h[?0c:    if mode() =~? 'V'

[?25l[?1c:    [?25h[?0c:       let g:visual_stat=wordcount()

[?25l[?1c:    [?25h[?0c:    endif

[?25l[?1c:  [?25h[?0c:    return string(wordcount())

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 1: empty window"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin()
[?25l[?1c[No Name]                                                                       test_wordcount.in                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 1: empty window
[[''], {'chars': 0, 'cursor_chars': 0, 'words': 0, 'cursor_words': 0, 'bytes': 0, 'cursor_bytes': 0}][+][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 2: some words, cursor at start"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1cone two three[+][?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([1,1,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 2: some words, cursor at start
[['', 'one two three'], {'chars': 15, 'cursor_chars': 1, 'words': 3, 'cursor_words': 0, 'bytes': 15, 'cursor_bytes': 1}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 3: some words, cursor at end"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 3: some words, cursor at end
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3, 'bytes': 15, 'cursor_bytes': 14}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 4: some words, cursor at end, ve=all"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 4: some words, cursor at end, ve=all
[['', 'one two three'], {'chars': 15, 'cursor_chars': 15, 'words': 3, 'cursor_words': 3, 'bytes': 15, 'cursor_bytes': 15}][?25h[?0c[?25l[?1c


:[?25h[?0cset ve=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 5: several lines with words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['one two three', 'one two three', 'one two three'])
[?25l[?1cone two threeone two three--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([4,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 5: several lines with words
[['', 'one two three', 'one two three', 'one two three'], {'chars': 43, 'cursor_chars': 42, 'words': 9, 'cursor_words': 9, 'bytes': 43, 'cursor_bytes': 42}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 6: one line with BOM set"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1c[No Name] [+]                                                                   test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset bomb
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 2 lines, 18 characters writtenXtest        [?25h[?0c[?25l[?1c:[?25h[?0cwincmd j
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 6: one line with BOM set
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3, 'bytes': 18, 'cursor_bytes': 14}][?25h[?0c[?25l[?1c


:[?25h[?0cwincmd k
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset nobomb
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtest" 2 lines, 15 characters written   [?25h[?0c[?25l[?1c:[?25h[?0cwincmd j
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 7: one line with multibyte words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh'])
[?25l[?1cÄne M¤ne Müh[+]--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 7: one line with multibyte words
[['', 'Äne M¤ne Müh'], {'chars': 14, 'cursor_chars': 13, 'words': 3, 'cursor_words': 3, 'bytes': 17, 'cursor_bytes': 16}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 8: several lines with multibyte words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1cund raus bist dü!--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 8: several lines with multibyte words
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'cursor_chars': 31, 'words': 7, 'cursor_words': 7, 'bytes': 36, 'cursor_bytes': 35}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 9: visual mode, complete buffer"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 3985, 'words': 579, 'cursor_words': 560, 'bytes': 4153, 'cursor_bytes': 4007}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c0
[?25l[?1c[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual[?25h[?0c[?25l[?1c 
Äne M¤ne Müh 
und raus bist dü! ds': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36[?25h[?0c[?25l[?1cÄne M¤ne Mühnd raus bist dü!3 lines yankedursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1[?25h[?0c213[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 9: visual mode, complete buffer
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 10: visual mode (empty)"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4170, 'words': 606, 'cursor_words': 587, 'bytes': 4342, 'cursor_bytes': 4196}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c0
[?25l[?1c[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor[?25h[?0c213[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 10: visual mode (empty)
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_bytes': 1}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 11: visual mode, single line"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4347, 'words': 632, 'cursor_words': 613, 'bytes': 4521, 'cursor_bytes': 4377}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2
[?25l[?1c213[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 1, 'visual2[?25h[?0c[?25l[?1cÄne M¤ne Mühds': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16[?25h[?0c[?25l[?1c
Äne M¤ne Mühursor_chars': 2, 'words': 7, 'cursor_words': 1, 'bytes': 36, 'cursor_bytes': 3[?25h[?0csor_chars': 15, 'words': 7, 'cursor_words': 4, 'bytes': 36, 'cursor_bytes': 18[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 11: visual mode, single line
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^RESULT test/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 34 lines, 1905 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_wordcount = test61; then \
#	  if diff test.out test_wordcount.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_wordcount.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_wordcount.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test11.in
[?25h[?8c[?25h[?0c[?25l[?1c"test11.in" 84 lines, 3366 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for autocommands:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 48 lines, 2298 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:au! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>"))
:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
: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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" drop out when there is no gzip program
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !executable("gzip")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:au! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>"))
:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
:au! FileReadPost   *.gz   '[,']s/l/L/[?25h[?0c[?25l[?1c:[?25h[?0clet $GZIP = ""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileChangedShell * echo "caught FileChangedShell"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWritePre    *.gz   '[,']!gzip
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWritePost   *.gz   undo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of testfile/,/^end of testfile/w! Xtestfile.gz
[?25l[?1c[?25h[?0c[?25l[?1c11 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[?25h[?0c[?25l[?1c:[?25h[?0cau FileReadPost    *.gz   '[,']!gzip -d
[?25l[?1c:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
: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[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtestfile.gz                " Read and decompress the testfile
[?25l[?1c"Xtestfile.gz" [Incomplete last line] 1 line, 111 characters
[?25h[?0c[?25l[?1cstart of test.c
/*
 * Here is a new .c file
 */
end of test.c
start of testfile[?25h[?0c[?25l[?1c
:[?25h[?0c?startstart?,$w! test.out      " Write contents of this file
[?25l[?1c"test.out" [New File] 29 lines, 788 characters written[?25h[?0c[?25l[?1c:[?25h[?0cau BufNewFile      *.c    read Xtest.c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
[?25l[?1csearch hit BOTTOM, continuing at TOP"Xtest.c" [New File] 3 lines, 32 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! foo.c                       " Will load Xtest.c
[?25l[?1c"foo.c" [New File]
"Xtest.c" 3 lines, 32 characters

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau FileAppendPre   *.out  '[,']s/new/NEW/
[?25l[?1c/*
 * Here is a new .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau FileAppendPost  *.out  !cat Xtest.c >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw>>test.out                    " Append it to the output file
[?25l[?1c"test.out" 4 lines, 33 characters appended

:!cat Xtest.c >>test.out

[?25h[?0c
Press ENTER or type command to continue[?25l[?1c:[?25h[?0cau! FileAppendPre
[?25l[?1c/*
 * Here is a NEW .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" setup autocommands to decompress before reading and re-compress afterwards
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPre      *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPre      *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost     *.gz   call rename(expand("<afile>"), expand("<afile>:r"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost     *.gz   exe '!gzip ' . shellescape(expand("<afile>:r"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile.gz                " Edit compressed file
[?25l[?1c:!gzip -d 'Xtestfile.gz'

[?25h[?0c[?25l[?1c"Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters:!gzip 'Xtestfile'

[?25h[?0c[?25l[?1ccaught FileChangedShell

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw>>test.out                    " Append it to the output file
[?25l[?1c"test.out" 11 lines, 357 characters appended

:!cat Xtest.c >>test.out

[?25h[?0c
Press ENTER or type command to continue[?25l[?1c:[?25h[?0cset shelltemp                  " need temp files here
[?25l[?1cstart 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  call rename(expand("<afile>"), expand("<afile>") . "

.t")
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  exe 'silent !sed s/e/E/ ' . shellescape(expand("<afi

le>")) . ".t >" . shellescape(expand("<afile>"))
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  exe 'silent !rm ' . shellescape(expand("<afile>")) .

'.t'
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPost  *.out  '[,']s/x/X/g
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out                    " Edit the output file
[?25l[?1c"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.cstart of testfileline 2  Abcdefghijklmnopqrstuvwxyzline 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 4  Abcdefghijklmnopqrstuvwxyzline 5  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[?25h[?0c[?25l[?1c:[?25h[?0c23,$!cat
[?25l[?1c[?25h[?0c[?25l[?1c218 substitutions on 15 lines

28 lines filtered

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c23,$s/\r$//                 " remove CR for when sed adds them
[?25l[?1cE486: Pattern not found: \r$
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>

"))
[?25l[?1cstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE 5  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX[?25h[?0c[?25l[?1c
:[?25h[?0cau  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau! FileReadPost   *.gz   '[,']s/l/L/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$r Xtestfile.gz             " Read compressed file
[?25l[?1c[?25h[?0c[?25l[?1c"Xtestfile.gz" 11 lines, 357 characters

11 substitutions on 11 lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw                           " write it, after filtering
[?25l[?1c"test.out"61 lines, 1599 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau!             " remove all autocommands
[?25l[?1cE216: No such group or event: " remove all autocommands

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce               " Edit test.out again
[?25l[?1c"test.out"61 lines, 1599 charactersstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"test.out" 61 lines, 1599 characters[?25h[?0c[?25l[?1c:[?25h[?0cset nobin ff&   " use the default fileformat for writing
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 61 lines, 1599 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test11 = test61; then \
#	  if diff test.out test11.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test11.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test11.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test52.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for reading and writing files with conversion for Win32.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 57 lines, 1333 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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

[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make this a dummy test for non-Win32 systems
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("win32") | e! test.ok | wq! test.out | endif
[?25l[?1c"test.ok" 18 lines, 1374 characters

"test.out" [New File] 18 lines, 1374 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test52 = test61; then \
#	  if diff test.out test52.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test52.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test52.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test85.failed test.ok test.out X* viminfo
cp test85.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test85.in
[?25h[?8c[?25h[?0c[?25l[?1c"test85.in" 85 lines, 1868 charactersTest for Lua interface and luaeval() function

STARTTEST
:so small.vim
:so lua.vim
:set nocompatible viminfo+=nviminfo
:lua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
:lua h = vim.dict(); h.list = l
:call garbagecollect()
/^1
:" change buffer contents
:lua curbuf = vim.buffer()
:lua curline = vim.eval"line('.')"
:lua curbuf[curline] = "1 changed line 1"
:" scalar test
:let tmp_string = luaeval('"string"')
:let tmp_1000 = luaeval('1000')
:if printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
:let scalar_res = "OK"
:else
:let scalar_res = "FAILED"
:endif
:call append(search("^1"), "scalar test " . scalar_res)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Lua interface and luaeval() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 77 lines, 1775 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")
:lua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
:lua d[4] = d[0]
:lua d[5] = d[1]
:lua d[6] = d[2]
:lua d[7] = d[3]
:lua d[3] = nil
:lua d[2] = nil
:lua d[1] = nil
:lua d[0] = nil
:lua d = nil
:$put =string(d)

:?^1?,$w! test.out
:qa!
ENDTEST

1 line 1
2 line 2
3 line 3[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso lua.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua h = vim.dict(); h.list = l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect()
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" change buffer contents
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua curbuf = vim.buffer()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua curline = vim.eval"line('.')"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua curbuf[curline] = "1 changed line 1"
[?25l[?1cchanged line 1
[?25h[?0c[?25l[?1c:[?25h[?0c" scalar test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tmp_string = luaeval('"string"')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tmp_1000 = luaeval('1000')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
[?25l[?1c
:  [?25h[?0c:let scalar_res = "OK"

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:let scalar_res = "FAILED"

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")[?25h[?0c[?25l[?1c


:[?25h[?0ccall append(search("^1"), "scalar test " . scalar_res)
[?25l[?1cscalar test OK
2 line 2[?25h[?0c[?25l[?1c:[?25h[?0c" dictionary containing a list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tmp = luaeval("h").list[1]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^2/put =tmp
[?25l[?1c
dictionary with list OK[?25h[?0c[?25l[?1c
:[?25h[?0c" circular list (at the same time test lists containing lists)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet l2 = luaeval("h").list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif l2[2] == l2
[?25l[?1c
:  [?25h[?0c:let res = "OK"

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:let res = "FAILED"

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")
:lua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")[?25h[?0c[?25l[?1c
:[?25h[?0ccall setline(search("^3"), "circular test " . res)
[?25l[?1c
circular test OK[?25h[?0c[?25l[?1c
:[?25h[?0clet l = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l = vim.eval("l")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add(123)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add("abc")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add(vim.eval("[1, 2, 3]"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert(123)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert("abc")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert(vim.eval("[1, 2, 3]"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[0] = l[0]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[1] = l[1]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = l[2]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[3] = l[3]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[0] = 123
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[1] = "abc"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = vim.eval("[1, 2, 3]")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[3] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[1] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[0] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(l)
[?25l[?1c
[123.0, 'abc', [1, 2, 3], {'a': 1, 'b': 2, 'c': 3}][?25h[?0c[?25l[?1c
:[?25h[?0clet d = {}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d = vim.eval("d")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[0] = 123
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[1] = "abc"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[2] = vim.eval("[1, 2, 3]")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[4] = d[0]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[5] = d[1]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[6] = d[2]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[7] = d[3]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[3] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[2] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[1] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[0] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(d)
[?25l[?1c
{'4': 123.0, '5': 'abc', '6': [1, 2, 3], '7': {'a': 1, 'b': 2, 'c': 3}}[?25h[?0c[?25l[?1c
:[?25h[?0c?^1?,$w! test.out
[?25l[?1c"test.out" [New] 7L, 206C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test85 = test61; then \
#	  if diff test.out test85.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test85.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test85.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test86.failed test.ok test.out X* viminfo
cp test86.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test86.in
[?25h[?8c[?25h[?0c[?25l[?1c"test86.in" 1711 lines, 48481 charactersTests for various python features.     vim: set ft=vim :

NOTE: This will cause errors when run under valgrind.
This would require recompiling Python with:
  ./configure --without-pymalloc
See http://svn.python.org/view/python/trunk/Misc/README.valgrind?view=markup

STARTTEST
:so small.vim
:set encoding=latin1
:set noswapfile
:if !has('python') | e! test.ok | wq! test.out | endif
:lang C
:fun Test()
:py import vim
:py cb = vim.current.buffer
:let l = []
:py l=vim.bindeval('l')
:py f=vim.bindeval('function("strlen")')
:" Extending List directly with different types
:py l.extend([1, "as'd", [1, 2, f, {'a': 1}]])
:$put =string(l)
:$put =string(l[-1])[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for various python features.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1700 lines, 48188 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:   endif
:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=latin1
[?25l[?1c:   endif
:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c[?25l[?1c

:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('python') | e! test.ok | wq! test.out | endif
[?25l[?1c"test.ok" 1445 lines, 67439 characters

"test.out" [New File] 1445 lines, 67439 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test86 = test61; then \
#	  if diff test.out test86.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test86.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test86.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test87.failed test.ok test.out X* viminfo
cp test87.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test87.in
[?25h[?8c[?25h[?0c[?25l[?1c"test87.in" 1707 lines, 49069 charactersTests for various python features.     vim: set ft=vim :

STARTTEST
:so small.vim
:set noswapfile
:if !has('python3') | e! test.ok | wq! test.out | endif
:lang C
:fun Test()
:py3 import vim
:py3 cb = vim.current.buffer
:let l = []
:py3 l=vim.bindeval('l')
:py3 f=vim.bindeval('function("strlen")')
:" Extending List directly with different types
:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]
:$put =string(l)
:$put =string(l[-1])
:try
:  $put =string(l[-4])
:catch
:  $put =v:exception[:13]
:endtry
:" List assignment[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for various python features.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1701 lines, 48985 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:/^start:/,$w! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('python3') | e! test.ok | wq! test.out | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun Test()
[?25l[?1c
:  [?25h[?0c:py3 import vim

[?25l[?1c:  [?25h[?0c:py3 cb = vim.current.buffer

[?25l[?1c:  [?25h[?0c:let l = []

[?25l[?1c:  [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:  [?25h[?0c:py3 f=vim.bindeval('function("strlen")')

[?25l[?1c:  [?25h[?0c:" Extending List directly with different types

[?25l[?1c:  [?25h[?0c:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:$put =string(l[-1])

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =string(l[-4])

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:13]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:" List assignment

[?25l[?1c:  [?25h[?0c:py3 l[0]=0

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:py3 l[-2]=f

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Extending Dictionary directly with different types

[?25l[?1c:  [?25h[?0c:let d = {}

[?25l[?1c:  [?25h[?0c:fun d.f()

[?25l[?1c:    [?25h[?0c:  return 1

[?25l[?1c:    [?25h[?0c:endfun

[?25l[?1c:    [?25h[?0cpy3 << EOF

[?25l[?1c:    [?25h[?0cd=vim.bindeval('d')

[?25l[?1c:    [?25h[?0cd['1']='asd'

[?25l[?1c:    [?25h[?0cd.update()  # Must not do anything, including throwing errors

[?25l[?1c:    [?25h[?0cd.update(b=[1, 2, f])

[?25l[?1c:    [?25h[?0cd.update((('-1', {'a': 1}),))

[?25l[?1c:    [?25h[?0cd.update({'0': -1})

[?25l[?1c:    [?25h[?0cdk = d.keys()

[?25l[?1c:    [?25h[?0cdv = d.values()

[?25l[?1c:    [?25h[?0cdi = d.items()

[?25l[?1c:    [?25h[?0cdk.sort(key=repr)

[?25l[?1c:    [?25h[?0cdv.sort(key=repr)

[?25l[?1c:    [?25h[?0cdi.sort(key=repr)

[?25l[?1c:    [?25h[?0cEOF

[?25l[?1c:    [?25h[?0c:$put =py3eval('d[''f''](self={})')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(dk)')

[?25l[?1c:    [?25h[?0c:$put =substitute(py3eval('repr(dv)'),'0x\x\+','','g')

[?25l[?1c:    [?25h[?0c:$put =substitute(py3eval('repr(di)'),'0x\x\+','','g')

[?25l[?1c:    [?25h[?0c:for [key, Val] in sort(items(d))

[?25l[?1c:      [?25h[?0c:  $put =string(key) . ' : ' . string(Val)

[?25l[?1c:      [?25h[?0c:  unlet key Val

[?25l[?1c:      [?25h[?0c:endfor

[?25l[?1c:    [?25h[?0c:py3 del dk

[?25l[?1c:    [?25h[?0c:py3 del di

[?25l[?1c:    [?25h[?0c:py3 del dv

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" removing items with del

[?25l[?1c:    [?25h[?0c:py3 del l[2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:try

[?25l[?1c:      [?25h[?0c:   py3 del l[:3]

[?25l[?1c:      [?25h[?0c:   py3 del l[1:]

[?25l[?1c:      [?25h[?0c:catch

[?25l[?1c:      [?25h[?0c:   $put =v:exception

[?25l[?1c:      [?25h[?0c:endtry

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:py3 del d['-1']

[?25l[?1c:    [?25h[?0c:py3 del d['f']

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.get(''b'', 1)'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.pop(''b'')'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.get(''b'', 1)'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.has_key(''0''))')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.has_key(''1''))')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(''0'' in d)')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(''1'' in d)')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(list(iter(d)))')

[?25l[?1c:    [?25h[?0c:$put =string(d)

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.popitem())')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.get(''0''))')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(list(iter(d)))')

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" removing items out of range: silently skip items that don't exist

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:" The following two ranges delete nothing as they match empty list:

[?25l[?1c:    [?25h[?0c:py3 del l[2:1]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[2:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[2:3]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:4]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:5]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:6]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:" The following two ranges delete nothing as they match empty list:

[?25l[?1c:    [?25h[?0c:py3 del l[-1:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[-2:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[-3:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[-4:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[-5:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[-6:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[::2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[3:0:-2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:4:-2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" Slice assignment to a list

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[0:0]=['a']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[1:2]=['b']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:4]=['c']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[4:4]=['d']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[-1:2]=['e']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[-10:2]=['f']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:-10]=['g']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = []

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[0:0]=['h']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:6:2] = [10, 20]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[6:2:-2] = [10, 20]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[6:2] = ()

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[6:2:1] = ()

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:2:1] = ()

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" Locked variables

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:lockvar! l

[?25l[?1c:    [?25h[?0cpy3 << EOF

[?25l[?1c:    [?25h[?0cdef emsg(ei):

[?25l[?1c:    [?25h[?0c    return ei[0].__name__ + ':' + repr(ei[1].args)

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0ctry:

[?25l[?1c:    [?25h[?0c    l[2]='i'

[?25l[?1c:    [?25h[?0cexcept vim.error:

[?25l[?1c:    [?25h[?0c    cb.append('l[2] threw vim.error: ' + emsg(sys.exc_info()))

[?25l[?1c:    [?25h[?0cEOF

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:unlockvar! l

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" Function calls

[?25l[?1c:    [?25h[?0cpy3 << EOF

[?25l[?1c:    [?25h[?0cimport sys

[?25l[?1c:    [?25h[?0cimport re

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0cpy33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional

argument but (\d+) were given$')

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0cdef ee(expr, g=globals(), l=locals()):

[?25l[?1c:    [?25h[?0c    cb = vim.current.buffer

[?25l[?1c:    [?25h[?0c    try:

[?25l[?1c:    [?25h[?0c        try:

[?25l[?1c:    [?25h[?0c            exec(expr, g, l)

[?25l[?1c:    [?25h[?0c        except Exception as e:

[?25l[?1c:    [?25h[?0c            if sys.version_info >= (3, 3) and e.__class__ is AttributeErro

r and str(e).find('has no attribute')>=0 and not str(e).startswith("'vim."):

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + repr((e.__class__, AttributeError(s

tr(e)[str(e).rfind(" '") + 2:-1]))))

[?25l[?1c:    [?25h[?0c            elif sys.version_info >= (3, 3) and e.__class__ is ImportError

and str(e).find('No module named \'') >= 0:

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + repr((e.__class__, ImportError(str(

e).replace("'", '')))))

[?25l[?1c:    [?25h[?0c            elif sys.version_info >= (3, 3) and e.__class__ is TypeError:

[?25l[?1c:    [?25h[?0c                m = py33_type_error_pattern.search(str(e))

[?25l[?1c:    [?25h[?0c                if m:

[?25l[?1c:    [?25h[?0c                    msg = '__call__() takes exactly {0} positional argumen

t ({1} given)'.format(m.group(1), m.group(2))

[?25l[?1c:    [?25h[?0c                    cb.append(expr + ':' + repr((e.__class__, TypeError(ms

g))))

[?25l[?1c:    [?25h[?0c                else:

[?25l[?1c:    [?25h[?0c                    cb.append(expr + ':' + repr((e.__class__, e)))

[?25l[?1c:    [?25h[?0c            elif sys.version_info >= (3, 5) and e.__class__ is ValueError 

and str(e) == 'embedded null byte':

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + repr((TypeError, TypeError('expecte

d bytes with no null'))))

[?25l[?1c:    [?25h[?0c            else:

[?25l[?1c:    [?25h[?0c                msg = repr((e.__class__, e))

[?25l[?1c:    [?25h[?0c                # Some Python versions say can't, others cannot.

[?25l[?1c:    [?25h[?0c                if msg.find('can\'t') > -1:

[?25l[?1c:    [?25h[?0c                    msg = msg.replace('can\'t', 'cannot')

[?25l[?1c:    [?25h[?0c                # Some Python versions use single quote, some double quote

[?25l[?1c:    [?25h[?0c                if msg.find('"cannot ') > -1:

[?25l[?1c:    [?25h[?0c                    msg = msg.replace('"cannot ', '\'cannot ')

[?25l[?1c:    [?25h[?0c                if msg.find(' attributes"') > -1:

[?25l[?1c:    [?25h[?0c                    msg = msg.replace(' attributes"', ' attributes\'')

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + msg)

[?25l[?1c:    [?25h[?0c        else:

[?25l[?1c:    [?25h[?0c            cb.append(expr + ':NOT FAILED')

[?25l[?1c:    [?25h[?0c    except Exception as e:

[?25l[?1c:    [?25h[?0c        cb.append(expr + '::' + repr((e.__class__, e)))

[?25l[?1c:    [?25h[?0cEOF

[?25l[?1c:    [?25h[?0c:fun New(...)

[?25l[?1c:      [?25h[?0c:   return ['NewStart']+a:000+['NewEnd']

[?25l[?1c:      [?25h[?0c:endfun

[?25l[?1c:      [?25h[?0c:fun DictNew(...) dict

[?25l[?1c:[?25h[?0c:   return ['DictNewStart']+a:000+['DictNewEnd', self]

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:let l=[function('New'), function('DictNew')]

[?25l[?1c:[?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0c:py3 l.extend(list(l[0](1, 2, 3)))

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:py3 l.extend(list(l[1](1, 2, 3, self={'a': 'b'})))

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:py3 l+=[l[0].name]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:py3 ee('l[1](1, 2, 3)')

[?25l[?1c:[?25h[?0c:py3 f=l[0]

[?25l[?1c:[?25h[?0c:delfunction New

[?25l[?1c:[?25h[?0c:py3 ee('f(1, 2, 3)')

[?25l[?1c:[?25h[?0c:if has('float')

[?25l[?1c:[?25h[?0c:   let l=[0.0]

[?25l[?1c:[?25h[?0c:   py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0c:   py3 l.extend([0.0])

[?25l[?1c:[?25h[?0c:   $put =string(l)

[?25l[?1c:[?25h[?0c:else

[?25l[?1c:[?25h[?0c:   $put ='[0.0, 0.0]'

[?25l[?1c:[?25h[?0c:endif

[?25l[?1c:[?25h[?0c:let messages=[]

[?25l[?1c:[?25h[?0c:delfunction DictNew

[?25l[?1c:[?25h[?0cpy3 <<EOF

[?25l[?1c:[?25h[?0cimport sys

[?25l[?1c:[?25h[?0cd=vim.bindeval('{}')

[?25l[?1c:[?25h[?0cm=vim.bindeval('messages')

[?25l[?1c:[?25h[?0cdef em(expr, g=globals(), l=locals()):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        exec(expr, g, l)

[?25l[?1c:[?25h[?0c    except Exception as e:

[?25l[?1c:[?25h[?0c        if sys.version_info >= (3, 5) and e.__class__ is ValueError an

d str(e) == 'embedded null byte':

[?25l[?1c:[?25h[?0c            m.extend([TypeError.__name__])

[?25l[?1c:[?25h[?0c        else:

[?25l[?1c:[?25h[?0c            m.extend([e.__class__.__name__])

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cem('d["abc1"]')

[?25l[?1c:[?25h[?0cem('d["abc1"]="\\0"')

[?25l[?1c:[?25h[?0cem('d["abc1"]=vim')

[?25l[?1c:[?25h[?0cem('d[""]=1')

[?25l[?1c:[?25h[?0cem('d["a\\0b"]=1')

[?25l[?1c:[?25h[?0cem('d[b"a\\0b"]=1')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cem('d.pop("abc1")')

[?25l[?1c:[?25h[?0cem('d.popitem()')

[?25l[?1c:[?25h[?0cdel em

[?25l[?1c:[?25h[?0cdel m

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:$put =messages

[?25l[?1c:[?25h[?0c:unlet messages

[?25l[?1c:[?25h[?0c:" locked and scope attributes

[?25l[?1c:[?25h[?0c:let d={} | let dl={} | lockvar dl

[?25l[?1c:[?25h[?0c:for s in split("d dl v: g:")

[?25l[?1c:[?25h[?0c:    let name=tr(s, ':', 's')

[?25l[?1c:[?25h[?0c:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l[?1c:[?25h[?0c:    let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".py3e

val(name.".".v:val)'), ';')

[?25l[?1c:[?25h[?0c:    $put =toput

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:silent! let d.abc2=1

[?25l[?1c:[?25h[?0c:silent! let dl.abc3=1

[?25l[?1c:[?25h[?0c:py3 d.locked=True

[?25l[?1c:[?25h[?0c:py3 dl.locked=False

[?25l[?1c:[?25h[?0c:silent! let d.def=1

[?25l[?1c:[?25h[?0c:silent! let dl.def=1

[?25l[?1c:[?25h[?0c:put ='d:'.string(d)

[?25l[?1c:[?25h[?0c:put ='dl:'.string(dl)

[?25l[?1c:[?25h[?0c:unlet d dl

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:let l=[] | let ll=[] | lockvar ll

[?25l[?1c:[?25h[?0c:for s in split("l ll")

[?25l[?1c:[?25h[?0c:    let name=tr(s, ':', 's')

[?25l[?1c:[?25h[?0c:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l[?1c:[?25h[?0c:    let toput=s.' : locked:'.py3eval(name.'.locked')

[?25l[?1c:[?25h[?0c:    $put =toput

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:silent! call extend(l, [0])

[?25l[?1c:[?25h[?0c:silent! call extend(ll, [0])

[?25l[?1c:[?25h[?0c:py3 l.locked=True

[?25l[?1c:[?25h[?0c:py3 ll.locked=False

[?25l[?1c:[?25h[?0c:silent! call extend(l, [1])

[?25l[?1c:[?25h[?0c:silent! call extend(ll, [1])

[?25l[?1c:[?25h[?0c:put ='l:'.string(l)

[?25l[?1c:[?25h[?0c:put ='ll:'.string(ll)

[?25l[?1c:[?25h[?0c:unlet l ll

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" py3eval()

[?25l[?1c:[?25h[?0c:let l=py3eval('[0, 1, 2]')

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:let d=py3eval('{"a": "b", "c": 1, "d": ["e"]}')

[?25l[?1c:[?25h[?0c:$put =sort(items(d))

[?25l[?1c:[?25h[?0c:let v:errmsg = ''

[?25l[?1c:[?25h[?0c:$put ='py3eval(\"None\") = ' . py3eval('None') . v:errmsg

[?25l[?1c:[?25h[?0c:if has('float')

[?25l[?1c:[?25h[?0c:   let f=py3eval('0.0')

[?25l[?1c:[?25h[?0c:   $put =string(f)

[?25l[?1c:[?25h[?0c:else

[?25l[?1c:[?25h[?0c:   $put ='0.0'

[?25l[?1c:[?25h[?0c:endif

[?25l[?1c:[?25h[?0c:" Invalid values:

[?25l[?1c:[?25h[?0c:for e in ['"\0"', '{"\0": 1}', 'undefined_name', 'vim']

[?25l[?1c:[?25h[?0c:   try

[?25l[?1c:[?25h[?0c:      let v=py3eval(e)

[?25l[?1c:[?25h[?0c:   catch

[?25l[?1c:[?25h[?0c:      let toput=e.":\t".v:exception[:13]

[?25l[?1c:[?25h[?0c:      $put =toput

[?25l[?1c:[?25h[?0c:   endtry

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" threading

[?25l[?1c:[?25h[?0c:let l = [0]

[?25l[?1c:[?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0cpy3 <<EOF

[?25l[?1c:[?25h[?0cimport threading

[?25l[?1c:[?25h[?0cimport time

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass T(threading.Thread):

[?25l[?1c:[?25h[?0c    def __init__(self):

[?25l[?1c:[?25h[?0c        threading.Thread.__init__(self)

[?25l[?1c:[?25h[?0c        self.t = 0

[?25l[?1c:[?25h[?0c        self.running = True

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def run(self):

[?25l[?1c:[?25h[?0c        while self.running:

[?25l[?1c:[?25h[?0c            self.t += 1

[?25l[?1c:[?25h[?0c            time.sleep(0.1)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ct = T()

[?25l[?1c:[?25h[?0cdel T

[?25l[?1c:[?25h[?0ct.start()

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:sleep 1

[?25l[?1c:[?25h[?0c:py3 t.running = False

[?25l[?1c:[?25h[?0c:py3 t.join()

[?25l[?1c:[?25h[?0c:" Check if the background thread is working.  Count should be 10, but

on a

[?25l[?1c:[?25h[?0c:" busy system (AppVeyor) it can be much lower.

[?25l[?1c:[?25h[?0c:py3 l[0] = t.t > 4

[?25l[?1c:[?25h[?0c:py3 del time

[?25l[?1c:[?25h[?0c:py3 del threading

[?25l[?1c:[?25h[?0c:py3 del t

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" settrace

[?25l[?1c:[?25h[?0c:let l = []

[?25l[?1c:[?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0cpy3 <<EOF

[?25l[?1c:[?25h[?0cimport sys

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef traceit(frame, event, arg):

[?25l[?1c:[?25h[?0c    global l

[?25l[?1c:[?25h[?0c    if event == "line":

[?25l[?1c:[?25h[?0c        l += [frame.f_lineno]

[?25l[?1c:[?25h[?0c    return traceit

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef trace_main():

[?25l[?1c:[?25h[?0c    for i in range(5):

[?25l[?1c:[?25h[?0c        pass

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:py3 sys.settrace(traceit)

[?25l[?1c:[?25h[?0c:py3 trace_main()

[?25l[?1c:[?25h[?0c:py3 sys.settrace(None)

[?25l[?1c:[?25h[?0c:py3 del traceit

[?25l[?1c:[?25h[?0c:py3 del trace_main

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Slice

[?25l[?1c:[?25h[?0c:py3 ll = vim.bindeval('[0, 1, 2, 3, 4, 5]')

[?25l[?1c:[?25h[?0c:py3 l = ll[:4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[2:]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[:-4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-2:]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[2:4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[4:2]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-4:-2]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-2:-4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[:]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[0:6]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-10:10]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[4:2:-1]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[::2]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[4:2:1]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 del l

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Vars

[?25l[?1c:[?25h[?0c:let g:foo = 'bac'

[?25l[?1c:[?25h[?0c:let w:abc3 = 'def'

[?25l[?1c:[?25h[?0c:let b:baz = 'bar'

[?25l[?1c:[?25h[?0c:let t:bar = 'jkl'

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  throw "Abc"

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  put =py3eval('vim.vvars[''exception'']')

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:put =py3eval('vim.vars[''foo'']')

[?25l[?1c:[?25h[?0c:put =py3eval('vim.current.window.vars[''abc3'']')

[?25l[?1c:[?25h[?0c:put =py3eval('vim.current.buffer.vars[''baz'']')

[?25l[?1c:[?25h[?0c:put =py3eval('vim.current.tabpage.vars[''bar'']')

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Options

[?25l[?1c:[?25h[?0c:" paste:          boolean, global

[?25l[?1c:[?25h[?0c:" previewheight   number,  global

[?25l[?1c:[?25h[?0c:" operatorfunc:   string,  global

[?25l[?1c:[?25h[?0c:" number:         boolean, window-local

[?25l[?1c:[?25h[?0c:" numberwidth:    number,  window-local

[?25l[?1c:[?25h[?0c:" colorcolumn:    string,  window-local

[?25l[?1c:[?25h[?0c:" statusline:     string,  window-local/global

[?25l[?1c:[?25h[?0c:" autoindent:     boolean, buffer-local

[?25l[?1c:[?25h[?0c:" shiftwidth:     number,  buffer-local

[?25l[?1c:[?25h[?0c:" omnifunc:       string,  buffer-local

[?25l[?1c:[?25h[?0c:" preserveindent: boolean, buffer-local/global

[?25l[?1c:[?25h[?0c:" path:           string,  buffer-local/global

[?25l[?1c:[?25h[?0c:let g:bufs=[bufnr('%')]

[?25l[?1c:[?25h[?0c:new

[?25l[?1c:[?25h[?0c:let g:bufs+=[bufnr('%')]

[?25l[?1c:[?25h[?0c:vnew

[?25l[?1c:[?25h[?0c:let g:bufs+=[bufnr('%')]

[?25l[?1c:[?25h[?0c:wincmd j

[?25l[?1c:[?25h[?0c:vnew

[?25l[?1c:[?25h[?0c:let g:bufs+=[bufnr('%')]

[?25l[?1c:[?25h[?0c:wincmd l

[?25l[?1c:[?25h[?0c:fun RecVars(opt)

[?25l[?1c:[?25h[?0c:  let gval =string(eval('&g:'.a:opt))

[?25l[?1c:[?25h[?0c:  let wvals=join(map(range(1, 4),  'v:val.":".string(getwinvar(v:va

l, "&".a:opt))'))

[?25l[?1c:[?25h[?0c:  let bvals=join(map(copy(g:bufs), 'v:val.":".string(getbufvar(v:va

l, "&".a:opt))'))

[?25l[?1c:[?25h[?0c:  put ='  G: '.gval

[?25l[?1c:[?25h[?0c:  put ='  W: '.wvals

[?25l[?1c:[?25h[?0c:  put ='  B: '.wvals

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef e(s, g=globals(), l=locals()):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        exec(s, g, l)

[?25l[?1c:[?25h[?0c    except Exception as e:

[?25l[?1c:[?25h[?0c        vim.command('return ' + repr(e.__class__.__name__))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef ev(s, g=globals(), l=locals()):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        return eval(s, g, l)

[?25l[?1c:[?25h[?0c    except Exception as e:

[?25l[?1c:[?25h[?0c        vim.command('let exc=' + repr(e.__class__.__name__))

[?25l[?1c:[?25h[?0c        return 0

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:fun E(s)

[?25l[?1c:[?25h[?0c:   python3 e(vim.eval('a:s'))

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:fun Ev(s)

[?25l[?1c:[?25h[?0c:   let r=py3eval('ev(vim.eval("a:s"))')

[?25l[?1c:[?25h[?0c:   if exists('exc')

[?25l[?1c:[?25h[?0c:       throw exc

[?25l[?1c:[?25h[?0c:   endif

[?25l[?1c:[?25h[?0c:   return r

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:py3 gopts1=vim.options

[?25l[?1c:[?25h[?0c:py3 wopts1=vim.windows[2].options

[?25l[?1c:[?25h[?0c:py3 wopts2=vim.windows[0].options

[?25l[?1c:[?25h[?0c:py3 wopts3=vim.windows[1].options

[?25l[?1c:[?25h[?0c:py3 bopts1=vim.buffers[vim.bindeval("g:bufs")[2]].options

[?25l[?1c:[?25h[?0c:py3 bopts2=vim.buffers[vim.bindeval("g:bufs")[1]].options

[?25l[?1c:[?25h[?0c:py3 bopts3=vim.buffers[vim.bindeval("g:bufs")[0]].options

[?25l[?1c:[?25h[?0c:$put ='wopts iters equal: '.py3eval('list(wopts1) == list(wopts

2)')

[?25l[?1c:[?25h[?0c:$put ='bopts iters equal: '.py3eval('list(bopts1) == list(bopts

2)')

[?25l[?1c:[?25h[?0c:py3 gset=set(iter(gopts1))

[?25l[?1c:[?25h[?0c:py3 wset=set(iter(wopts1))

[?25l[?1c:[?25h[?0c:py3 bset=set(iter(bopts1))

[?25l[?1c:[?25h[?0c:set path=.,..,,

[?25l[?1c:[?25h[?0c:let lst=[]

[?25l[?1c:[?25h[?0c:let lst+=[['paste',          1,     0,     1,     2,      1,   

1,      0    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['previewheight',  5,     1,     6,     'a',    0,   

1,      0    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['operatorfunc',   'A',   'B',   'C',   2,      0,   

1,      0    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['number',         0,     1,     1,     0,      1,   

0,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['numberwidth',    2,     3,     5,     -100,   0,   

0,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['colorcolumn',    '+1',  '+2',  '+3',  'abc4',  0,  

 0,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['statusline',     '1',   '2',   '4',   0,      0,   

1,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['autoindent',     0,     1,     1,     2,      1,   

0,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['shiftwidth',     0,     2,     1,     3,      0,   

0,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['omnifunc',       'A',   'B',   'C',   1,      0,   

0,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['preserveindent', 0,     1,     1,     2,      1,   

1,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['path',           '.,,', ',,',  '.',   0,      0,   

1,      2    ]]

[?25l[?1c:[?25h[?0c:for       [oname,            oval1, oval2, oval3, invval, bool,

global, local] in lst

[?25l[?1c:[?25h[?0c:   py3 oname=vim.eval('oname')

[?25l[?1c:[?25h[?0c:   py3 oval1=vim.bindeval('oval1')

[?25l[?1c:[?25h[?0c:   py3 oval2=vim.bindeval('oval2')

[?25l[?1c:[?25h[?0c:   py3 oval3=vim.bindeval('oval3')

[?25l[?1c:[?25h[?0c:   if invval is 0 || invval is 1

[?25l[?1c:[?25h[?0c:       py3 invval=bool(vim.bindeval('invval'))

[?25l[?1c:[?25h[?0c:   else

[?25l[?1c:[?25h[?0c:       py3 invval=vim.bindeval('invval')

[?25l[?1c:[?25h[?0c:   endif

[?25l[?1c:[?25h[?0c:   if bool

[?25l[?1c:[?25h[?0c:       py3 oval1=bool(oval1)

[?25l[?1c:[?25h[?0c:       py3 oval2=bool(oval2)

[?25l[?1c:[?25h[?0c:       py3 oval3=bool(oval3)

[?25l[?1c:[?25h[?0c:   endif

[?25l[?1c:[?25h[?0c:   put ='>>> '.oname

[?25l[?1c:[?25h[?0c:   $put ='  g/w/b:'.py3eval('oname in gset').'/'.py3eval('ona

me in wset').'/'.py3eval('oname in bset')

[?25l[?1c:[?25h[?0c:   $put ='  g/w/b (in):'.py3eval('oname in gopts1').'/'.py3ev

al('oname in wopts1').'/'.py3eval('oname in bopts1')

[?25l[?1c:[?25h[?0c:   for v in ['gopts1', 'wopts1', 'bopts1']

[?25l[?1c:[?25h[?0c:       try

[?25l[?1c:[?25h[?0c:           put ='  p/'.v.': '.Ev('repr('.v.'['''.oname.''

'])')

[?25l[?1c:[?25h[?0c:       catch

[?25l[?1c:[?25h[?0c:           put ='  p/'.v.'! '.v:exception

[?25l[?1c:[?25h[?0c:       endtry

[?25l[?1c:[?25h[?0c:       let r=E(v.'['''.oname.''']=invval')

[?25l[?1c:[?25h[?0c:       if r isnot 0

[?25l[?1c:[?25h[?0c:           put ='  inv: '.string(invval).'! '.r

[?25l[?1c:[?25h[?0c:       endif

[?25l[?1c:[?25h[?0c:       for vv in (v is# 'gopts1' ? [v] : [v, v[:-2].'2', v[

:-2].'3'])

[?25l[?1c:[?25h[?0c:           let val=substitute(vv, '^.opts', 'oval', '')

[?25l[?1c:[?25h[?0c:           let r=E(vv.'['''.oname.''']='.val)

[?25l[?1c:[?25h[?0c:           if r isnot 0

[?25l[?1c:[?25h[?0c:               put ='  '.vv.'! '.r

[?25l[?1c:[?25h[?0c:           endif

[?25l[?1c:[?25h[?0c:       endfor

[?25l[?1c:[?25h[?0c:   endfor

[?25l[?1c:[?25h[?0c:   call RecVars(oname)

[?25l[?1c:[?25h[?0c:   for v in ['wopts3', 'bopts3']

[?25l[?1c:[?25h[?0c:       let r=E('del '.v.'["'.oname.'"]')

[?25l[?1c:[?25h[?0c:       if r isnot 0

[?25l[?1c:[?25h[?0c:           put ='  del '.v.'! '.r

[?25l[?1c:[?25h[?0c:       endif

[?25l[?1c:[?25h[?0c:   endfor

[?25l[?1c:[?25h[?0c:   call RecVars(oname)

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:delfunction RecVars

[?25l[?1c:[?25h[?0c:delfunction E

[?25l[?1c:[?25h[?0c:delfunction Ev

[?25l[?1c:[?25h[?0c:py3 del ev

[?25l[?1c:[?25h[?0c:py3 del e

[?25l[?1c:[?25h[?0c:only

[?25l[?1c:[?25h[?0c:for buf in g:bufs[1:]

[?25l[?1c:[?25h[?0c:   execute 'bwipeout!' buf

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:py3 del gopts1

[?25l[?1c:[?25h[?0c:py3 del wopts1

[?25l[?1c:[?25h[?0c:py3 del wopts2

[?25l[?1c:[?25h[?0c:py3 del wopts3

[?25l[?1c:[?25h[?0c:py3 del bopts1

[?25l[?1c:[?25h[?0c:py3 del bopts2

[?25l[?1c:[?25h[?0c:py3 del bopts3

[?25l[?1c:[?25h[?0c:py3 del oval1

[?25l[?1c:[?25h[?0c:py3 del oval2

[?25l[?1c:[?25h[?0c:py3 del oval3

[?25l[?1c:[?25h[?0c:py3 del oname

[?25l[?1c:[?25h[?0c:py3 del invval

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test buffer object

[?25l[?1c:[?25h[?0c:vnew

[?25l[?1c:[?25h[?0c:put ='First line'

[?25l[?1c:[?25h[?0c:put ='Second line'

[?25l[?1c:[?25h[?0c:put ='Third line'

[?25l[?1c:[?25h[?0c:1 delete _

[?25l[?1c:[?25h[?0c:py3 b=vim.current.buffer

[?25l[?1c:[?25h[?0c:wincmd w

[?25l[?1c:[?25h[?0c:mark a

[?25l[?1c:[?25h[?0c:augroup BUFS

[?25l[?1c:[?25h[?0c:   autocmd BufFilePost * python3 cb.append(vim.eval('expand("<a

buf>")') + ':BufFilePost:' + vim.eval('bufnr("%")'))

[?25l[?1c:[?25h[?0c:   autocmd BufFilePre * python3 cb.append(vim.eval('expand("<ab

uf>")') + ':BufFilePre:' + vim.eval('bufnr("%")'))

[?25l[?1c:[?25h[?0c:augroup END

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0c# Tests BufferAppend and BufferItem

[?25l[?1c:[?25h[?0ccb.append(b[0])

[?25l[?1c:[?25h[?0c# Tests BufferSlice and BufferAssSlice

[?25l[?1c:[?25h[?0ccb.append('abc5') # Will be overwritten

[?25l[?1c:[?25h[?0ccb[-1:] = b[:-2]

[?25l[?1c:[?25h[?0c# Test BufferLength and BufferAssSlice

[?25l[?1c:[?25h[?0ccb.append('def') # Will not be overwritten

[?25l[?1c:[?25h[?0ccb[len(cb):] = b[:]

[?25l[?1c:[?25h[?0c# Test BufferAssItem and BufferMark

[?25l[?1c:[?25h[?0ccb.append('ghi') # Will be overwritten

[?25l[?1c:[?25h[?0ccb[-1] = repr((len(cb) - cb.mark('a')[0], cb.mark('a')[1]))

[?25l[?1c:[?25h[?0c# Test BufferRepr

[?25l[?1c:[?25h[?0ccb.append(repr(cb) + repr(b))

[?25l[?1c:[?25h[?0c# Modify foreign buffer

[?25l[?1c:[?25h[?0cb.append('foo')

[?25l[?1c:[?25h[?0cb[0]='bar'

[?25l[?1c:[?25h[?0cb[0:0]=['baz']

[?25l[?1c:[?25h[?0cvim.command('call append("$", getbufline(%i, 1, "$"))' % b.numbe

r)
[?25l[?1c:[?25h[?0c# Test assigning to name property

[?25l[?1c:[?25h[?0cimport os

[?25l[?1c:[?25h[?0cold_name = cb.name

[?25l[?1c:[?25h[?0ccb.name = 'foo'

[?25l[?1c:[?25h[?0ccb.append(cb.name[-11:].replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0cb.name = 'bar'

[?25l[?1c:[?25h[?0ccb.append(b.name[-11:].replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0ccb.name = old_name

[?25l[?1c:[?25h[?0ccb.append(cb.name[-17:].replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0cdel old_name

[?25l[?1c:[?25h[?0c# Test CheckBuffer

[?25l[?1c:[?25h[?0cfor _b in vim.buffers:

[?25l[?1c:[?25h[?0c    if _b is not cb:

[?25l[?1c:[?25h[?0c        vim.command('bwipeout! ' + str(_b.number))

[?25l[?1c:[?25h[?0cdel _b

[?25l[?1c:[?25h[?0ccb.append('valid: b:%s, cb:%s' % (repr(b.valid), repr(cb.valid))

)
[?25l[?1c:[?25h[?0cfor expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc6")

'):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        exec(expr)

[?25l[?1c:[?25h[?0c    except vim.error:

[?25l[?1c:[?25h[?0c        pass

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        # Usually a SEGV here

[?25l[?1c:[?25h[?0c        # Should not happen in any case

[?25l[?1c:[?25h[?0c        cb.append('No exception for ' + expr)

[?25l[?1c:[?25h[?0cvim.command('cd .')

[?25l[?1c:[?25h[?0cdel b

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.buffers object

[?25l[?1c:[?25h[?0c:set hidden

[?25l[?1c:[?25h[?0c:edit a

[?25l[?1c:[?25h[?0c:buffer #

[?25l[?1c:[?25h[?0c:edit b

[?25l[?1c:[?25h[?0c:buffer #

[?25l[?1c:[?25h[?0c:edit c

[?25l[?1c:[?25h[?0c:buffer #

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0c# Check GCing iterator that was not fully exhausted

[?25l[?1c:[?25h[?0ci = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i:' + str(next(i)))

[?25l[?1c:[?25h[?0c# and also check creating more than one iterator at a time

[?25l[?1c:[?25h[?0ci2 = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i2:' + str(next(i2)))

[?25l[?1c:[?25h[?0ccb.append('i:' + str(next(i)))

[?25l[?1c:[?25h[?0c# The following should trigger GC and not cause any problems

[?25l[?1c:[?25h[?0cdel i

[?25l[?1c:[?25h[?0cdel i2

[?25l[?1c:[?25h[?0ci3 = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i3:' + str(next(i3)))

[?25l[?1c:[?25h[?0cdel i3

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cprevnum = 0

[?25l[?1c:[?25h[?0cfor b in vim.buffers:

[?25l[?1c:[?25h[?0c    # Check buffer order

[?25l[?1c:[?25h[?0c    if prevnum >= b.number:

[?25l[?1c:[?25h[?0c        cb.append('!!! Buffer numbers not in strictly ascending 

order')

[?25l[?1c:[?25h[?0c    # Check indexing: vim.buffers[number].number == number

[?25l[?1c:[?25h[?0c    cb.append(str(b.number) + ':' + repr(vim.buffers[b.number]) 

+ '=' + repr(b))

[?25l[?1c:[?25h[?0c    prevnum = b.number

[?25l[?1c:[?25h[?0cdel prevnum

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append(str(len(vim.buffers)))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cbnums = list(map(lambda b: b.number, vim.buffers))[1:]

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c# Test wiping out buffer with existing iterator

[?25l[?1c:[?25h[?0ci4 = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i4:' + str(next(i4)))

[?25l[?1c:[?25h[?0cvim.command('bwipeout! ' + str(bnums.pop(0)))

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    next(i4)

[?25l[?1c:[?25h[?0cexcept vim.error:

[?25l[?1c:[?25h[?0c    pass

[?25l[?1c:[?25h[?0celse:

[?25l[?1c:[?25h[?0c    cb.append('!!!! No vim.error')

[?25l[?1c:[?25h[?0ci4 = iter(vim.buffers)

[?25l[?1c:[?25h[?0cvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l[?1c:[?25h[?0cvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l[?1c:[?25h[?0ccb.append('i4:' + str(next(i4)))

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    next(i4)

[?25l[?1c:[?25h[?0cexcept StopIteration:

[?25l[?1c:[?25h[?0c    cb.append('StopIteration')

[?25l[?1c:[?25h[?0cdel i4

[?25l[?1c:[?25h[?0cdel bnums

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.{tabpage,window}list and vim.{tabpage,window} object

s
[?25l[?1c:[?25h[?0c:tabnew 0

[?25l[?1c:[?25h[?0c:tabnew 1

[?25l[?1c:[?25h[?0c:vnew a.1

[?25l[?1c:[?25h[?0c:tabnew 2

[?25l[?1c:[?25h[?0c:vnew a.2

[?25l[?1c:[?25h[?0c:vnew b.2

[?25l[?1c:[?25h[?0c:vnew c.2

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0ccb.append('Number of tabs: ' + str(len(vim.tabpages)))

[?25l[?1c:[?25h[?0ccb.append('Current tab pages:')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef W(w):

[?25l[?1c:[?25h[?0c    if '(unknown)' in repr(w):

[?25l[?1c:[?25h[?0c        return '<window object (unknown)>'

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        return repr(w)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef Cursor(w, start=len(cb)):

[?25l[?1c:[?25h[?0c    if w.buffer is cb:

[?25l[?1c:[?25h[?0c        return repr((start - w.cursor[0], w.cursor[1]))

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        return repr(w.cursor)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cfor t in vim.tabpages:

[?25l[?1c:[?25h[?0c    cb.append('  ' + repr(t) + '(' + str(t.number) + ')' + ': ' 

+ str(len(t.windows)) + ' windows, current is ' + W(t.window))

[?25l[?1c:[?25h[?0c    cb.append('  Windows:')

[?25l[?1c:[?25h[?0c    for w in t.windows:

[?25l[?1c:[?25h[?0c        cb.append('    ' + W(w) + '(' + str(w.number) + ')' + ':

displays buffer ' + repr(w.buffer) + '; cursor is at ' + Cursor(w))

[?25l[?1c:[?25h[?0c        # Other values depend on the size of the terminal, so th

ey are checked partly:

[?25l[?1c:[?25h[?0c        for attr in ('height', 'row', 'width', 'col'):

[?25l[?1c:[?25h[?0c            try:

[?25l[?1c:[?25h[?0c                aval = getattr(w, attr)

[?25l[?1c:[?25h[?0c                if type(aval) is not int:

[?25l[?1c:[?25h[?0c                    raise TypeError

[?25l[?1c:[?25h[?0c                if aval < 0:

[?25l[?1c:[?25h[?0c                    raise ValueError

[?25l[?1c:[?25h[?0c            except Exception as e:

[?25l[?1c:[?25h[?0c                cb.append('!!!!!! Error while getting attribute 

' + attr + ': ' + e.__class__.__name__)

[?25l[?1c:[?25h[?0c        del aval

[?25l[?1c:[?25h[?0c        del attr

[?25l[?1c:[?25h[?0c        w.cursor = (len(w.buffer), 0)

[?25l[?1c:[?25h[?0cdel W

[?25l[?1c:[?25h[?0cdel Cursor

[?25l[?1c:[?25h[?0ccb.append('Number of windows in current tab page: ' + str(len(vi

m.windows)))

[?25l[?1c:[?25h[?0cif list(vim.windows) != list(vim.current.tabpage.windows):

[?25l[?1c:[?25h[?0c    cb.append('!!!!!! Windows differ')

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.current

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef H(o):

[?25l[?1c:[?25h[?0c    return repr(o)

[?25l[?1c:[?25h[?0ccb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l[?1c:[?25h[?0ccb.append('Current window: ' + repr(vim.current.window) + ': ' +

H(vim.current.window) + ' is ' + H(vim.current.tabpage.window))

[?25l[?1c:[?25h[?0ccb.append('Current buffer: ' + repr(vim.current.buffer) + ': ' +

H(vim.current.buffer) + ' is ' + H(vim.current.window.buffer)+ ' is ' + H(vim.c

urrent.tabpage.window.buffer))

[?25l[?1c:[?25h[?0cdel H

[?25l[?1c:[?25h[?0c# Assigning: fails

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    vim.current.window = vim.tabpages[0].window

[?25l[?1c:[?25h[?0cexcept ValueError:

[?25l[?1c:[?25h[?0c    cb.append('ValueError at assigning foreign tab window')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cfor attr in ('window', 'tabpage', 'buffer'):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        setattr(vim.current, attr, None)

[?25l[?1c:[?25h[?0c    except TypeError:

[?25l[?1c:[?25h[?0c        cb.append('Type error at assigning None to vim.current.'

+ attr)

[?25l[?1c:[?25h[?0cdel attr

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c# Assigning: success

[?25l[?1c:[?25h[?0cvim.current.tabpage = vim.tabpages[-2]

[?25l[?1c:[?25h[?0cvim.current.buffer = cb

[?25l[?1c:[?25h[?0cvim.current.window = vim.windows[0]

[?25l[?1c:[?25h[?0cvim.current.window.cursor = (len(vim.current.buffer), 0)

[?25l[?1c:[?25h[?0ccb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l[?1c:[?25h[?0ccb.append('Current window: ' + repr(vim.current.window))

[?25l[?1c:[?25h[?0ccb.append('Current buffer: ' + repr(vim.current.buffer))

[?25l[?1c:[?25h[?0ccb.append('Current line: ' + repr(vim.current.line))

[?25l[?1c:[?25h[?0cws = list(vim.windows)

[?25l[?1c:[?25h[?0cts = list(vim.tabpages)

[?25l[?1c:[?25h[?0cfor b in vim.buffers:

[?25l[?1c:[?25h[?0c    if b is not cb:

[?25l[?1c:[?25h[?0c        vim.command('bwipeout! ' + str(b.number))

[?25l[?1c:[?25h[?0cdel b

[?25l[?1c:[?25h[?0ccb.append('w.valid: ' + repr([w.valid for w in ws]))

[?25l[?1c:[?25h[?0ccb.append('t.valid: ' + repr([t.valid for t in ts]))

[?25l[?1c:[?25h[?0cdel w

[?25l[?1c:[?25h[?0cdel t

[?25l[?1c:[?25h[?0cdel ts

[?25l[?1c:[?25h[?0cdel ws

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:tabonly!

[?25l[?1c:[?25h[?0c:only!

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test types

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cfor expr, attr in (

[?25l[?1c:[?25h[?0c    ('vim.vars',                         'Dictionary'),

[?25l[?1c:[?25h[?0c    ('vim.options',                      'Options'),

[?25l[?1c:[?25h[?0c    ('vim.bindeval("{}")',               'Dictionary'),

[?25l[?1c:[?25h[?0c    ('vim.bindeval("[]")',               'List'),

[?25l[?1c:[?25h[?0c    ('vim.bindeval("function(\'tr\')")', 'Function'),

[?25l[?1c:[?25h[?0c    ('vim.current.buffer',               'Buffer'),

[?25l[?1c:[?25h[?0c    ('vim.current.range',                'Range'),

[?25l[?1c:[?25h[?0c    ('vim.current.window',               'Window'),

[?25l[?1c:[?25h[?0c    ('vim.current.tabpage',              'TabPage'),

[?25l[?1c:[?25h[?0c):

[?25l[?1c:[?25h[?0c    cb.append(expr + ':' + attr + ':' + repr(type(eval(expr)) is

getattr(vim, attr)))

[?25l[?1c:[?25h[?0cdel expr

[?25l[?1c:[?25h[?0cdel attr

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test __dir__() method

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cfor name, o in (

[?25l[?1c:[?25h[?0c        ('current',    vim.current),

[?25l[?1c:[?25h[?0c        ('buffer',     vim.current.buffer),

[?25l[?1c:[?25h[?0c        ('window',     vim.current.window),

[?25l[?1c:[?25h[?0c        ('tabpage',    vim.current.tabpage),

[?25l[?1c:[?25h[?0c        ('range',      vim.current.range),

[?25l[?1c:[?25h[?0c        ('dictionary', vim.bindeval('{}')),

[?25l[?1c:[?25h[?0c        ('list',       vim.bindeval('[]')),

[?25l[?1c:[?25h[?0c        ('function',   vim.bindeval('function("tr")')),

[?25l[?1c:[?25h[?0c        ('output',     sys.stdout),

[?25l[?1c:[?25h[?0c    ):

[?25l[?1c:[?25h[?0c    cb.append(name + ':' + ','.join(dir(o)))

[?25l[?1c:[?25h[?0cdel name

[?25l[?1c:[?25h[?0cdel o

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.*.__new__

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Dictionary({})'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Dictionary(a=1)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Dictionary(((''a'', 1),))'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.List()'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.List(iter(''abc7''))'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'')'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4])'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[])'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', self={})'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={})'))

[?25l[?1c:[?25h[?0c:$put ='auto_rebind'

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', auto_rebind=False)')

)
[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], au

to_rebind=False)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[], auto_rebind

=False)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', self={}, auto_rebind

=False)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={}, auto_rebind=False)'))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.Function

[?25l[?1c:[?25h[?0c:function Args(...)

[?25l[?1c:[?25h[?0c:   return a:000

[?25l[?1c:[?25h[?0c:endfunction

[?25l[?1c:[?25h[?0c:function SelfArgs(...) dict

[?25l[?1c:[?25h[?0c:   return [a:000, self]

[?25l[?1c:[?25h[?0c:endfunction

[?25l[?1c:[?25h[?0c:" The following four lines should not crash

[?25l[?1c:[?25h[?0c:let Pt = function('tr', [[]], {'l': []})

[?25l[?1c:[?25h[?0c:py3 Pt = vim.bindeval('Pt')

[?25l[?1c:[?25h[?0c:unlet Pt

[?25l[?1c:[?25h[?0c:py3 del Pt

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef ecall(out_prefix, func, *args, **kwargs):

[?25l[?1c:[?25h[?0c    line = out_prefix + ': '

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        ret = func(*args, **kwargs)

[?25l[?1c:[?25h[?0c    except Exception:

[?25l[?1c:[?25h[?0c        line += '!exception: ' + emsg(sys.exc_info())

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        line += '!result: ' + str(vim.Function('string')(ret

), 'utf-8')

[?25l[?1c:[?25h[?0c    cb.append(line)

[?25l[?1c:[?25h[?0ca = vim.Function('Args')

[?25l[?1c:[?25h[?0cpa1 = vim.Function('Args', args=['abcArgsPA1'])

[?25l[?1c:[?25h[?0cpa2 = vim.Function('Args', args=[])

[?25l[?1c:[?25h[?0cpa3 = vim.Function('Args', args=['abcArgsPA3'], self={'abcSe

lfPA3': 'abcSelfPA3Val'})

[?25l[?1c:[?25h[?0cpa4 = vim.Function('Args', self={'abcSelfPA4': 'abcSelfPA4Va

l'})

[?25l[?1c:[?25h[?0ccb.append('a: ' + repr(a))

[?25l[?1c:[?25h[?0ccb.append('pa1: ' + repr(pa1))

[?25l[?1c:[?25h[?0ccb.append('pa2: ' + repr(pa2))

[?25l[?1c:[?25h[?0ccb.append('pa3: ' + repr(pa3))

[?25l[?1c:[?25h[?0ccb.append('pa4: ' + repr(pa4))

[?25l[?1c:[?25h[?0csa = vim.Function('SelfArgs')

[?25l[?1c:[?25h[?0cpsa1 = vim.Function('SelfArgs', args=['abcArgsPSA1'])

[?25l[?1c:[?25h[?0cpsa2 = vim.Function('SelfArgs', args=[])

[?25l[?1c:[?25h[?0cpsa3 = vim.Function('SelfArgs', args=['abcArgsPSA3'], self={

'abcSelfPSA3': 'abcSelfPSA3Val'})

[?25l[?1c:[?25h[?0cpsa4 = vim.Function('SelfArgs', self={'abcSelfPSA4': 'abcSel

fPSA4Val'})

[?25l[?1c:[?25h[?0cpsa5 = vim.Function('SelfArgs', self={'abcSelfPSA5': 'abcSel

fPSA5Val'}, auto_rebind=0)

[?25l[?1c:[?25h[?0cpsa6 = vim.Function('SelfArgs', args=['abcArgsPSA6'], self={

'abcSelfPSA6': 'abcSelfPSA6Val'}, auto_rebind=())

[?25l[?1c:[?25h[?0cpsa7 = vim.Function('SelfArgs', args=['abcArgsPSA7'], auto_r

ebind=[])

[?25l[?1c:[?25h[?0cpsa8 = vim.Function('SelfArgs', auto_rebind=False)

[?25l[?1c:[?25h[?0cpsa9 = vim.Function('SelfArgs', self={'abcSelfPSA9': 'abcSel

fPSA9Val'}, auto_rebind=True)

[?25l[?1c:[?25h[?0cpsaA = vim.Function('SelfArgs', args=['abcArgsPSAA'], self={

'abcSelfPSAA': 'abcSelfPSAAVal'}, auto_rebind=1)

[?25l[?1c:[?25h[?0cpsaB = vim.Function('SelfArgs', args=['abcArgsPSAB'], auto_r

ebind={'abcARPSAB': 'abcARPSABVal'})

[?25l[?1c:[?25h[?0cpsaC = vim.Function('SelfArgs', auto_rebind=['abcARPSAC'])

[?25l[?1c:[?25h[?0ccb.append('sa: ' + repr(sa))

[?25l[?1c:[?25h[?0ccb.append('psa1: ' + repr(psa1))

[?25l[?1c:[?25h[?0ccb.append('psa2: ' + repr(psa2))

[?25l[?1c:[?25h[?0ccb.append('psa3: ' + repr(psa3))

[?25l[?1c:[?25h[?0ccb.append('psa4: ' + repr(psa4))

[?25l[?1c:[?25h[?0ccb.append('psa5: ' + repr(psa5))

[?25l[?1c:[?25h[?0ccb.append('psa6: ' + repr(psa6))

[?25l[?1c:[?25h[?0ccb.append('psa7: ' + repr(psa7))

[?25l[?1c:[?25h[?0ccb.append('psa8: ' + repr(psa8))

[?25l[?1c:[?25h[?0ccb.append('psa9: ' + repr(psa9))

[?25l[?1c:[?25h[?0ccb.append('psaA: ' + repr(psaA))

[?25l[?1c:[?25h[?0ccb.append('psaB: ' + repr(psaB))

[?25l[?1c:[?25h[?0ccb.append('psaC: ' + repr(psaC))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cpsar = vim.Function('SelfArgs', args=[{'abcArgsPSAr': 'abcAr

gsPSArVal'}], self={'abcSelfPSAr': 'abcSelfPSArVal'})

[?25l[?1c:[?25h[?0cpsar.args[0]['abcArgsPSAr2'] = [psar.self, psar.args[0]]

[?25l[?1c:[?25h[?0cpsar.self['rec'] = psar

[?25l[?1c:[?25h[?0cpsar.self['self'] = psar.self

[?25l[?1c:[?25h[?0cpsar.self['args'] = psar.args

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    cb.append('psar: ' + repr(psar))

[?25l[?1c:[?25h[?0cexcept Exception:

[?25l[?1c:[?25h[?0c    cb.append('!!!!!!!! Caught exception: ' + emsg(sys.exc_i

nfo()))

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:$put ='s(a): '.string(py3eval('a'))

[?25l[?1c:[?25h[?0c:$put ='s(pa1): '.string(py3eval('pa1'))

[?25l[?1c:[?25h[?0c:$put ='s(pa2): '.string(py3eval('pa2'))

[?25l[?1c:[?25h[?0c:$put ='s(pa3): '.string(py3eval('pa3'))

[?25l[?1c:[?25h[?0c:$put ='s(pa4): '.string(py3eval('pa4'))

[?25l[?1c:[?25h[?0c:$put ='s(sa): '.string(py3eval('sa'))

[?25l[?1c:[?25h[?0c:$put ='s(psa1): '.string(py3eval('psa1'))

[?25l[?1c:[?25h[?0c:$put ='s(psa2): '.string(py3eval('psa2'))

[?25l[?1c:[?25h[?0c:$put ='s(psa3): '.string(py3eval('psa3'))

[?25l[?1c:[?25h[?0c:$put ='s(psa4): '.string(py3eval('psa4'))

[?25l[?1c:[?25h[?0c:$put ='s(psa5): '.string(py3eval('psa5'))

[?25l[?1c:[?25h[?0c:$put ='s(psa6): '.string(py3eval('psa6'))

[?25l[?1c:[?25h[?0c:$put ='s(psa7): '.string(py3eval('psa7'))

[?25l[?1c:[?25h[?0c:$put ='s(psa8): '.string(py3eval('psa8'))

[?25l[?1c:[?25h[?0c:$put ='s(psa9): '.string(py3eval('psa9'))

[?25l[?1c:[?25h[?0c:$put ='s(psaA): '.string(py3eval('psaA'))

[?25l[?1c:[?25h[?0c:$put ='s(psaB): '.string(py3eval('psaB'))

[?25l[?1c:[?25h[?0c:$put ='s(psaC): '.string(py3eval('psaC'))

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:for v in ['sa', 'psa1', 'psa2', 'psa3', 'psa4', 'psa5', 'ps

a6', 'psa7', 'psa8', 'psa9', 'psaA', 'psaB', 'psaC']

[?25l[?1c:[?25h[?0c:   let d = {'f': py3eval(v)}

[?25l[?1c:[?25h[?0c:   $put ='d.'.v.'(): '.string(d.f())

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a()', a, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa1()', pa1, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa2()', pa2, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa3()', pa3, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa4()', pa4, )

[?25l[?1c:[?25h[?0c:py3 ecall('sa()', sa, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa1()', psa1, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa2()', psa2, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa3()', psa3, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa4()', psa4, )

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a(42, 43)', a, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa1(42, 43)', pa1, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa2(42, 43)', pa2, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa3(42, 43)', pa3, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa4(42, 43)', pa4, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('sa(42, 43)', sa, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa1(42, 43)', psa1, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa2(42, 43)', psa2, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa3(42, 43)', psa3, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa4(42, 43)', psa4, 42, 43)

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a(42, self={"20": 1})', a, 42, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa1(42, self={"20": 1})', pa1, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('pa2(42, self={"20": 1})', pa2, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('pa3(42, self={"20": 1})', pa3, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('pa4(42, self={"20": 1})', pa4, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('sa(42, self={"20": 1})', sa, 42, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa1(42, self={"20": 1})', psa1, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa2(42, self={"20": 1})', psa2, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa3(42, self={"20": 1})', psa3, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa4(42, self={"20": 1})', psa4, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a(self={"20": 1})', a, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa1(self={"20": 1})', pa1, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa2(self={"20": 1})', pa2, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa3(self={"20": 1})', pa3, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa4(self={"20": 1})', pa4, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('sa(self={"20": 1})', sa, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa1(self={"20": 1})', psa1, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa2(self={"20": 1})', psa2, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa3(self={"20": 1})', psa3, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa4(self={"20": 1})', psa4, self={'20': 1})

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef s(v):

[?25l[?1c:[?25h[?0c    if v is None:

[?25l[?1c:[?25h[?0c        return repr(v)

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        return str(vim.Function('string')(v), 'utf-8')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.args: ' + s(a.args))

[?25l[?1c:[?25h[?0ccb.append('pa1.args: ' + s(pa1.args))

[?25l[?1c:[?25h[?0ccb.append('pa2.args: ' + s(pa2.args))

[?25l[?1c:[?25h[?0ccb.append('pa3.args: ' + s(pa3.args))

[?25l[?1c:[?25h[?0ccb.append('pa4.args: ' + s(pa4.args))

[?25l[?1c:[?25h[?0ccb.append('sa.args: ' + s(sa.args))

[?25l[?1c:[?25h[?0ccb.append('psa1.args: ' + s(psa1.args))

[?25l[?1c:[?25h[?0ccb.append('psa2.args: ' + s(psa2.args))

[?25l[?1c:[?25h[?0ccb.append('psa3.args: ' + s(psa3.args))

[?25l[?1c:[?25h[?0ccb.append('psa4.args: ' + s(psa4.args))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.self: ' + s(a.self))

[?25l[?1c:[?25h[?0ccb.append('pa1.self: ' + s(pa1.self))

[?25l[?1c:[?25h[?0ccb.append('pa2.self: ' + s(pa2.self))

[?25l[?1c:[?25h[?0ccb.append('pa3.self: ' + s(pa3.self))

[?25l[?1c:[?25h[?0ccb.append('pa4.self: ' + s(pa4.self))

[?25l[?1c:[?25h[?0ccb.append('sa.self: ' + s(sa.self))

[?25l[?1c:[?25h[?0ccb.append('psa1.self: ' + s(psa1.self))

[?25l[?1c:[?25h[?0ccb.append('psa2.self: ' + s(psa2.self))

[?25l[?1c:[?25h[?0ccb.append('psa3.self: ' + s(psa3.self))

[?25l[?1c:[?25h[?0ccb.append('psa4.self: ' + s(psa4.self))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.name: ' + s(a.name))

[?25l[?1c:[?25h[?0ccb.append('pa1.name: ' + s(pa1.name))

[?25l[?1c:[?25h[?0ccb.append('pa2.name: ' + s(pa2.name))

[?25l[?1c:[?25h[?0ccb.append('pa3.name: ' + s(pa3.name))

[?25l[?1c:[?25h[?0ccb.append('pa4.name: ' + s(pa4.name))

[?25l[?1c:[?25h[?0ccb.append('sa.name: ' + s(sa.name))

[?25l[?1c:[?25h[?0ccb.append('psa1.name: ' + s(psa1.name))

[?25l[?1c:[?25h[?0ccb.append('psa2.name: ' + s(psa2.name))

[?25l[?1c:[?25h[?0ccb.append('psa3.name: ' + s(psa3.name))

[?25l[?1c:[?25h[?0ccb.append('psa4.name: ' + s(psa4.name))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.auto_rebind: ' + s(a.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa1.auto_rebind: ' + s(pa1.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa2.auto_rebind: ' + s(pa2.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa3.auto_rebind: ' + s(pa3.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa4.auto_rebind: ' + s(pa4.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('sa.auto_rebind: ' + s(sa.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa1.auto_rebind: ' + s(psa1.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa2.auto_rebind: ' + s(psa2.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa3.auto_rebind: ' + s(psa3.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa4.auto_rebind: ' + s(psa4.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa5.auto_rebind: ' + s(psa5.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa6.auto_rebind: ' + s(psa6.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa7.auto_rebind: ' + s(psa7.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa8.auto_rebind: ' + s(psa8.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa9.auto_rebind: ' + s(psa9.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psaA.auto_rebind: ' + s(psaA.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psaB.auto_rebind: ' + s(psaB.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psaC.auto_rebind: ' + s(psaC.auto_rebind))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdel s

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdel a

[?25l[?1c:[?25h[?0cdel pa1

[?25l[?1c:[?25h[?0cdel pa2

[?25l[?1c:[?25h[?0cdel pa3

[?25l[?1c:[?25h[?0cdel pa4

[?25l[?1c:[?25h[?0cdel sa

[?25l[?1c:[?25h[?0cdel psa1

[?25l[?1c:[?25h[?0cdel psa2

[?25l[?1c:[?25h[?0cdel psa3

[?25l[?1c:[?25h[?0cdel psa4

[?25l[?1c:[?25h[?0cdel psa5

[?25l[?1c:[?25h[?0cdel psa6

[?25l[?1c:[?25h[?0cdel psa7

[?25l[?1c:[?25h[?0cdel psa8

[?25l[?1c:[?25h[?0cdel psa9

[?25l[?1c:[?25h[?0cdel psaA

[?25l[?1c:[?25h[?0cdel psaB

[?25l[?1c:[?25h[?0cdel psaC

[?25l[?1c:[?25h[?0cdel psar

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdel ecall

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test stdout/stderr

[?25l[?1c:[?25h[?0c:redir => messages

[?25l[?1c:[?25h[?0c:py3 sys.stdout.write('abc8') ; sys.stdout.write('def')

[?25l[?1c:[?25h[?0c:py3 sys.stderr.write('abc9') ; sys.stderr.write('def')

[?25l[?1c:[?25h[?0c:py3 sys.stdout.writelines(iter('abcA'))

[?25l[?1c:[?25h[?0c:py3 sys.stderr.writelines(iter('abcB'))

[?25l[?1c:[?25h[?0c:redir END

[?25l[?1c:[?25h[?0c:$put =string(substitute(messages, '\d\+', '', 'g'))

[?25l[?1c:[?25h[?0c:" Test subclassing

[?25l[?1c:[?25h[?0c:fun Put(...)

[?25l[?1c:[?25h[?0c:   $put =string(a:000)

[?25l[?1c:[?25h[?0c:   return a:000

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cclass DupDict(vim.Dictionary):

[?25l[?1c:[?25h[?0c    def __setitem__(self, key, value):

[?25l[?1c:[?25h[?0c        super(DupDict, self).__setitem__(key, value)

[?25l[?1c:[?25h[?0c        super(DupDict, self).__setitem__('dup_' + key, val

ue)

[?25l[?1c:[?25h[?0cdd = DupDict()

[?25l[?1c:[?25h[?0cdd['a'] = 'b'

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass DupList(vim.List):

[?25l[?1c:[?25h[?0c    def __getitem__(self, idx):

[?25l[?1c:[?25h[?0c        return [super(DupList, self).__getitem__(idx)] * 2

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdl = DupList()

[?25l[?1c:[?25h[?0cdl2 = DupList(iter('abcC'))

[?25l[?1c:[?25h[?0cdl.extend(dl2[0])

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass DupFun(vim.Function):

[?25l[?1c:[?25h[?0c    def __call__(self, arg):

[?25l[?1c:[?25h[?0c        return super(DupFun, self).__call__(arg, arg)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdf = DupFun('Put')

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:$put =string(sort(keys(py3eval('dd'))))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dl'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dl2'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('df(2)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dl') is# py3eval('dl'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dd') is# py3eval('dd'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('df'))

[?25l[?1c:[?25h[?0c:delfunction Put

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdel DupDict

[?25l[?1c:[?25h[?0cdel DupList

[?25l[?1c:[?25h[?0cdel DupFun

[?25l[?1c:[?25h[?0cdel dd

[?25l[?1c:[?25h[?0cdel dl

[?25l[?1c:[?25h[?0cdel dl2

[?25l[?1c:[?25h[?0cdel df

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test chdir

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cimport os

[?25l[?1c:[?25h[?0cfnamemodify = vim.Function('fnamemodify')

[?25l[?1c:[?25h[?0ccb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0ccb.append(vim.eval('@%'))

[?25l[?1c:[?25h[?0cos.chdir('..')

[?25l[?1c:[?25h[?0cpath = fnamemodify('.', ':p:h:t')

[?25l[?1c:[?25h[?0cif path != b'src':

[?25l[?1c:[?25h[?0c  # Running tests from a shadow directory, so move up anot

her level

[?25l[?1c:[?25h[?0c  # This will result in @% looking like shadow/testdir/tes

t87.in, hence the

[?25l[?1c:[?25h[?0c  # slicing to remove the leading path and path separator

[?25l[?1c:[?25h[?0c  os.chdir('..')

[?25l[?1c:[?25h[?0c  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0c  cb.append(vim.eval('@%')[len(path)+1:].replace(os.path.s

ep, '/'))

[?25l[?1c:[?25h[?0c  os.chdir(path)

[?25l[?1c:[?25h[?0celse:

[?25l[?1c:[?25h[?0c  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0c  cb.append(vim.eval('@%').replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0cdel path

[?25l[?1c:[?25h[?0cos.chdir('testdir')

[?25l[?1c:[?25h[?0ccb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0ccb.append(vim.eval('@%'))

[?25l[?1c:[?25h[?0cdel fnamemodify

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test errors

[?25l[?1c:[?25h[?0c:fun F() dict

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:fun D()

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cd = vim.Dictionary()

[?25l[?1c:[?25h[?0cned = vim.Dictionary(foo='bar', baz='abcD')

[?25l[?1c:[?25h[?0cdl = vim.Dictionary(a=1)

[?25l[?1c:[?25h[?0cdl.locked = True

[?25l[?1c:[?25h[?0cl = vim.List()

[?25l[?1c:[?25h[?0cll = vim.List('abcE')

[?25l[?1c:[?25h[?0cll.locked = True

[?25l[?1c:[?25h[?0cnel = vim.List('abcO')

[?25l[?1c:[?25h[?0cf = vim.Function('string')

[?25l[?1c:[?25h[?0cfd = vim.Function('F')

[?25l[?1c:[?25h[?0cfdel = vim.Function('D')

[?25l[?1c:[?25h[?0cvim.command('delfunction D')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef subexpr_test(expr, name, subexprs):

[?25l[?1c:[?25h[?0c    cb.append('>>> Testing %s using %s' % (name, expr)

)
[?25l[?1c:[?25h[?0c    for subexpr in subexprs:

[?25l[?1c:[?25h[?0c        ee(expr % subexpr)

[?25l[?1c:[?25h[?0c    cb.append('<<< Finished')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef stringtochars_test(expr):

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'StringToChars', (

[?25l[?1c:[?25h[?0c        '1',       # Fail type checks

[?25l[?1c:[?25h[?0c        'b"\\0"',  # Fail PyString_AsStringAndSize(obj

ect, , NULL) check

[?25l[?1c:[?25h[?0c        '"\\0"',   # Fail PyString_AsStringAndSize(byt

es, , NULL) check

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass Mapping(object):

[?25l[?1c:[?25h[?0c    def __init__(self, d):

[?25l[?1c:[?25h[?0c        self.d = d

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __getitem__(self, key):

[?25l[?1c:[?25h[?0c        return self.d[key]

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def keys(self):

[?25l[?1c:[?25h[?0c        return self.d.keys()

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def items(self):

[?25l[?1c:[?25h[?0c        return self.d.items()

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef convertfrompyobject_test(expr, recurse=True):

[?25l[?1c:[?25h[?0c    # pydict_to_tv

[?25l[?1c:[?25h[?0c    stringtochars_test(expr % '{%s : 1}')

[?25l[?1c:[?25h[?0c    if recurse:

[?25l[?1c:[?25h[?0c        convertfrompyobject_test(expr % '{"abcF" : %s}

', False)

[?25l[?1c:[?25h[?0c    # pymap_to_tv

[?25l[?1c:[?25h[?0c    stringtochars_test(expr % 'Mapping({%s : 1})')

[?25l[?1c:[?25h[?0c    if recurse:

[?25l[?1c:[?25h[?0c        convertfrompyobject_test(expr % 'Mapping({"abc

G" : %s})', False)

[?25l[?1c:[?25h[?0c    # pyseq_to_tv

[?25l[?1c:[?25h[?0c    iter_test(expr)

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'ConvertFromPyObject', (

[?25l[?1c:[?25h[?0c        'None',                 # Not conversible

[?25l[?1c:[?25h[?0c        '{b"": 1}',             # Empty key not allowe

d
[?25l[?1c:[?25h[?0c        '{"": 1}',              # Same, but with unico

de object

[?25l[?1c:[?25h[?0c        'FailingMapping()',     #

[?25l[?1c:[?25h[?0c        'FailingMappingKey()',  #

[?25l[?1c:[?25h[?0c        'FailingNumber()',      #

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef convertfrompymapping_test(expr):

[?25l[?1c:[?25h[?0c    convertfrompyobject_test(expr)

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'ConvertFromPyMapping', 

(
[?25l[?1c:[?25h[?0c        '[]',

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef iter_test(expr):

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, '*Iter*', (

[?25l[?1c:[?25h[?0c        'FailingIter()',

[?25l[?1c:[?25h[?0c        'FailingIterNext()',

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef number_test(expr, natural=False, unsigned=False):

[?25l[?1c:[?25h[?0c    if natural:

[?25l[?1c:[?25h[?0c        unsigned = True

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'NumberToLong', (

[?25l[?1c:[?25h[?0c        '[]',

[?25l[?1c:[?25h[?0c        'None',

[?25l[?1c:[?25h[?0c    ) + (('-1',) if unsigned else ())

[?25l[?1c:[?25h[?0c    + (('0',) if natural else ()))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingTrue(object):

[?25l[?1c:[?25h[?0c    def __bool__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('bool')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingIter(object):

[?25l[?1c:[?25h[?0c    def __iter__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('iter')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingIterNext(object):

[?25l[?1c:[?25h[?0c    def __iter__(self):

[?25l[?1c:[?25h[?0c        return self

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __next__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('next')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingIterNextN(object):

[?25l[?1c:[?25h[?0c    def __init__(self, n):

[?25l[?1c:[?25h[?0c        self.n = n

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __iter__(self):

[?25l[?1c:[?25h[?0c        return self

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __next__(self):

[?25l[?1c:[?25h[?0c        if self.n:

[?25l[?1c:[?25h[?0c            self.n -= 1

[?25l[?1c:[?25h[?0c            return 1

[?25l[?1c:[?25h[?0c        else:

[?25l[?1c:[?25h[?0c            raise NotImplementedError('next N')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingMappingKey(object):

[?25l[?1c:[?25h[?0c    def __getitem__(self, item):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('getitem:mappingkey'

)
[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def keys(self):

[?25l[?1c:[?25h[?0c        return list("abcH")

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingMapping(object):

[?25l[?1c:[?25h[?0c    def __getitem__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('getitem:mapping')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def keys(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('keys')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingList(list):

[?25l[?1c:[?25h[?0c    def __getitem__(self, idx):

[?25l[?1c:[?25h[?0c        if i == 2:

[?25l[?1c:[?25h[?0c            raise NotImplementedError('getitem:list')

[?25l[?1c:[?25h[?0c        else:

[?25l[?1c:[?25h[?0c            return super(FailingList, self).__getitem_

_(idx)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass NoArgsCall(object):

[?25l[?1c:[?25h[?0c    def __call__(self):

[?25l[?1c:[?25h[?0c        pass

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingCall(object):

[?25l[?1c:[?25h[?0c    def __call__(self, path):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('call')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingNumber(object):

[?25l[?1c:[?25h[?0c    def __int__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('int')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append("> Output")

[?25l[?1c:[?25h[?0ccb.append(">> OutputSetattr")

[?25l[?1c:[?25h[?0cee('del sys.stdout.softspace')

[?25l[?1c:[?25h[?0cnumber_test('sys.stdout.softspace = %s', unsigned=True

)
[?25l[?1c:[?25h[?0cnumber_test('sys.stderr.softspace = %s', unsigned=True

)
[?25l[?1c:[?25h[?0cee('assert sys.stdout.isatty()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.seekable()==False')

[?25l[?1c:[?25h[?0cee('sys.stdout.close()')

[?25l[?1c:[?25h[?0cee('sys.stdout.flush()')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.isatty()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.seekable()==False')

[?25l[?1c:[?25h[?0cee('sys.stderr.close()')

[?25l[?1c:[?25h[?0cee('sys.stderr.flush()')

[?25l[?1c:[?25h[?0cee('sys.stdout.attr = None')

[?25l[?1c:[?25h[?0ccb.append(">> OutputWrite")

[?25l[?1c:[?25h[?0cee('assert sys.stdout.writable()==True')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.readable()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.writable()==True')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.readable()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.closed()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.closed()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.errors=="strict"')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.errors=="strict"')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.encoding==sys.stderr.encoding')

[?25l[?1c:[?25h[?0cee('sys.stdout.write(None)')

[?25l[?1c:[?25h[?0ccb.append(">> OutputWriteLines")

[?25l[?1c:[?25h[?0cee('sys.stdout.writelines(None)')

[?25l[?1c:[?25h[?0cee('sys.stdout.writelines([1])')

[?25l[?1c:[?25h[?0citer_test('sys.stdout.writelines(%s)')

[?25l[?1c:[?25h[?0ccb.append("> VimCommand")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.command(%s)')

[?25l[?1c:[?25h[?0cee('vim.command("", 2)')

[?25l[?1c:[?25h[?0c#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l[?1c:[?25h[?0ccb.append("> VimToPython")

[?25l[?1c:[?25h[?0c#! Not checked: everything: needs errors in internal p

ython functions

[?25l[?1c:[?25h[?0ccb.append("> VimEval")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.eval(%s)')

[?25l[?1c:[?25h[?0cee('vim.eval("", FailingTrue())')

[?25l[?1c:[?25h[?0c#! Not checked: everything: needs errors in internal p

ython functions

[?25l[?1c:[?25h[?0ccb.append("> VimEvalPy")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.bindeval(%s)')

[?25l[?1c:[?25h[?0cee('vim.eval("", 2)')

[?25l[?1c:[?25h[?0c#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l[?1c:[?25h[?0ccb.append("> VimStrwidth")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.strwidth(%s)')

[?25l[?1c:[?25h[?0ccb.append("> VimForeachRTP")

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(None)')

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(NoArgsCall())')

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(FailingCall())')

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(int, 2)')

[?25l[?1c:[?25h[?0ccb.append('> import')

[?25l[?1c:[?25h[?0cold_rtp = vim.options['rtp']

[?25l[?1c:[?25h[?0cvim.options['rtp'] = os.getcwd().replace('\\', '\\\\')

.replace(',', '\\,')

[?25l[?1c:[?25h[?0cee('import xxx_no_such_module_xxx')

[?25l[?1c:[?25h[?0cee('import failing_import')

[?25l[?1c:[?25h[?0cee('import failing')

[?25l[?1c:[?25h[?0cvim.options['rtp'] = old_rtp

[?25l[?1c:[?25h[?0cdel old_rtp

[?25l[?1c:[?25h[?0ccb.append("> Options")

[?25l[?1c:[?25h[?0ccb.append(">> OptionsItem")

[?25l[?1c:[?25h[?0cee('vim.options["abcQ"]')

[?25l[?1c:[?25h[?0cee('vim.options[""]')

[?25l[?1c:[?25h[?0cstringtochars_test('vim.options[%s]')

[?25l[?1c:[?25h[?0ccb.append(">> OptionsContains")

[?25l[?1c:[?25h[?0cstringtochars_test('%s in vim.options')

[?25l[?1c:[?25h[?0ccb.append("> Dictionary")

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryConstructor")

[?25l[?1c:[?25h[?0cee('vim.Dictionary("abcI")')

[?25l[?1c:[?25h[?0c##! Not checked: py_dict_alloc failure

[?25l[?1c:[?25h[?0ccb.append(">> DictionarySetattr")

[?25l[?1c:[?25h[?0cee('del d.locked')

[?25l[?1c:[?25h[?0cee('d.locked = FailingTrue()')

[?25l[?1c:[?25h[?0cee('vim.vvars.locked = False')

[?25l[?1c:[?25h[?0cee('d.scope = True')

[?25l[?1c:[?25h[?0cee('d.xxx = True')

[?25l[?1c:[?25h[?0ccb.append(">> _DictionaryItem")

[?25l[?1c:[?25h[?0cee('d.get("a", 2, 3)')

[?25l[?1c:[?25h[?0cstringtochars_test('d.get(%s)')

[?25l[?1c:[?25h[?0cee('d.pop("a")')

[?25l[?1c:[?25h[?0cee('dl.pop("a")')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryContains")

[?25l[?1c:[?25h[?0cee('"" in d')

[?25l[?1c:[?25h[?0cee('0 in d')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryIterNext")

[?25l[?1c:[?25h[?0cee('for i in ned: ned["a"] = 1')

[?25l[?1c:[?25h[?0cdel i

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryAssItem")

[?25l[?1c:[?25h[?0cee('dl["b"] = 1')

[?25l[?1c:[?25h[?0cstringtochars_test('d[%s] = 1')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('d["a"] = %s')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryUpdate")

[?25l[?1c:[?25h[?0ccb.append(">>> kwargs")

[?25l[?1c:[?25h[?0ccb.append(">>> iter")

[?25l[?1c:[?25h[?0cee('d.update(FailingMapping())')

[?25l[?1c:[?25h[?0cee('d.update([FailingIterNext()])')

[?25l[?1c:[?25h[?0cee('d.update([FailingIterNextN(1)])')

[?25l[?1c:[?25h[?0citer_test('d.update(%s)')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('d.update(%s)')

[?25l[?1c:[?25h[?0cstringtochars_test('d.update(((%s, 0),))')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('d.update((("a", %s),))')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryPopItem")

[?25l[?1c:[?25h[?0cee('d.popitem(1, 2)')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryHasKey")

[?25l[?1c:[?25h[?0cee('d.has_key()')

[?25l[?1c:[?25h[?0ccb.append("> List")

[?25l[?1c:[?25h[?0ccb.append(">> ListConstructor")

[?25l[?1c:[?25h[?0cee('vim.List(1, 2)')

[?25l[?1c:[?25h[?0cee('vim.List(a=1)')

[?25l[?1c:[?25h[?0citer_test('vim.List(%s)')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('vim.List([%s])')

[?25l[?1c:[?25h[?0ccb.append(">> ListItem")

[?25l[?1c:[?25h[?0cee('l[1000]')

[?25l[?1c:[?25h[?0ccb.append(">> ListAssItem")

[?25l[?1c:[?25h[?0cee('ll[1] = 2')

[?25l[?1c:[?25h[?0cee('l[1000] = 3')

[?25l[?1c:[?25h[?0ccb.append(">> ListAssSlice")

[?25l[?1c:[?25h[?0cee('ll[1:100] = "abcJ"')

[?25l[?1c:[?25h[?0citer_test('l[:] = %s')

[?25l[?1c:[?25h[?0cee('nel[1:10:2]  = "abcK"')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cee('nel[1:10:2]  = "a"')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cee('nel[1:1:-1]  = "a"')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cee('nel[:] = FailingIterNextN(2)')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('l[:] = [%s]')

[?25l[?1c:[?25h[?0ccb.append(">> ListConcatInPlace")

[?25l[?1c:[?25h[?0citer_test('l.extend(%s)')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('l.extend([%s])')

[?25l[?1c:[?25h[?0ccb.append(">> ListSetattr")

[?25l[?1c:[?25h[?0cee('del l.locked')

[?25l[?1c:[?25h[?0cee('l.locked = FailingTrue()')

[?25l[?1c:[?25h[?0cee('l.xxx = True')

[?25l[?1c:[?25h[?0ccb.append("> Function")

[?25l[?1c:[?25h[?0ccb.append(">> FunctionConstructor")

[?25l[?1c:[?25h[?0ccb.append(">>> FunctionConstructor")

[?25l[?1c:[?25h[?0cee('vim.Function("123")')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx")')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx#non#existent#function#xxx")')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx2", arg

s=[])')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx3", sel

f={})')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx4", arg

s=[], self={})')

[?25l[?1c:[?25h[?0ccb.append(">>> FunctionNew")

[?25l[?1c:[?25h[?0cee('vim.Function("tr", self="abcFuncSelf")')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", args=427423)')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", self="abcFuncSelf2", args="abcF

uncArgs2")')

[?25l[?1c:[?25h[?0cee('vim.Function(self="abcFuncSelf2", args="abcFuncArg

s2")')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", "", self="abcFuncSelf2", args="

abcFuncArgs2")')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", "")')

[?25l[?1c:[?25h[?0ccb.append(">> FunctionCall")

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('f(%s)')

[?25l[?1c:[?25h[?0cconvertfrompymapping_test('fd(self=%s)')

[?25l[?1c:[?25h[?0ccb.append("> TabPage")

[?25l[?1c:[?25h[?0ccb.append(">> TabPageAttr")

[?25l[?1c:[?25h[?0cee('vim.current.tabpage.xxx')

[?25l[?1c:[?25h[?0ccb.append("> TabList")

[?25l[?1c:[?25h[?0ccb.append(">> TabListItem")

[?25l[?1c:[?25h[?0cee('vim.tabpages[1000]')

[?25l[?1c:[?25h[?0ccb.append("> Window")

[?25l[?1c:[?25h[?0ccb.append(">> WindowAttr")

[?25l[?1c:[?25h[?0cee('vim.current.window.xxx')

[?25l[?1c:[?25h[?0ccb.append(">> WindowSetattr")

[?25l[?1c:[?25h[?0cee('vim.current.window.buffer = 0')

[?25l[?1c:[?25h[?0cee('vim.current.window.cursor = (100000000, 100000000)

')
[?25l[?1c:[?25h[?0cee('vim.current.window.cursor = True')

[?25l[?1c:[?25h[?0cnumber_test('vim.current.window.height = %s', unsigned

=True)

[?25l[?1c:[?25h[?0cnumber_test('vim.current.window.width = %s', unsigned=

True)

[?25l[?1c:[?25h[?0cee('vim.current.window.xxxxxx = True')

[?25l[?1c:[?25h[?0ccb.append("> WinList")

[?25l[?1c:[?25h[?0ccb.append(">> WinListItem")

[?25l[?1c:[?25h[?0cee('vim.windows[1000]')

[?25l[?1c:[?25h[?0ccb.append("> Buffer")

[?25l[?1c:[?25h[?0ccb.append(">> StringToLine (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[0] = "\\na"')

[?25l[?1c:[?25h[?0cee('vim.current.buffer[0] = b"\\na"')

[?25l[?1c:[?25h[?0ccb.append(">> SetBufferLine (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[0] = True')

[?25l[?1c:[?25h[?0ccb.append(">> SetBufferLineList (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[:] = True')

[?25l[?1c:[?25h[?0cee('vim.current.buffer[:] = ["\\na", "bc"]')

[?25l[?1c:[?25h[?0ccb.append(">> InsertBufferLines (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.append(None)')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.append(["\\na", "bc"])')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.append("\\nbc")')

[?25l[?1c:[?25h[?0ccb.append(">> RBItem")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[100000000]')

[?25l[?1c:[?25h[?0ccb.append(">> RBAsItem")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[100000000] = ""')

[?25l[?1c:[?25h[?0ccb.append(">> BufferAttr")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.xxx')

[?25l[?1c:[?25h[?0ccb.append(">> BufferSetattr")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.name = True')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.xxx = True')

[?25l[?1c:[?25h[?0ccb.append(">> BufferMark")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.mark(0)')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.mark("abcM")')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.mark("!")')

[?25l[?1c:[?25h[?0ccb.append(">> BufferRange")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.range(1, 2, 3)')

[?25l[?1c:[?25h[?0ccb.append("> BufMap")

[?25l[?1c:[?25h[?0ccb.append(">> BufMapItem")

[?25l[?1c:[?25h[?0cee('vim.buffers[100000000]')

[?25l[?1c:[?25h[?0cnumber_test('vim.buffers[%s]', natural=True)

[?25l[?1c:[?25h[?0ccb.append("> Current")

[?25l[?1c:[?25h[?0ccb.append(">> CurrentGetattr")

[?25l[?1c:[?25h[?0cee('vim.current.xxx')

[?25l[?1c:[?25h[?0ccb.append(">> CurrentSetattr")

[?25l[?1c:[?25h[?0cee('vim.current.line = True')

[?25l[?1c:[?25h[?0cee('vim.current.buffer = True')

[?25l[?1c:[?25h[?0cee('vim.current.window = True')

[?25l[?1c:[?25h[?0cee('vim.current.tabpage = True')

[?25l[?1c:[?25h[?0cee('vim.current.xxx = True')

[?25l[?1c:[?25h[?0cdel d

[?25l[?1c:[?25h[?0cdel ned

[?25l[?1c:[?25h[?0cdel dl

[?25l[?1c:[?25h[?0cdel l

[?25l[?1c:[?25h[?0cdel ll

[?25l[?1c:[?25h[?0cdel nel

[?25l[?1c:[?25h[?0cdel f

[?25l[?1c:[?25h[?0cdel fd

[?25l[?1c:[?25h[?0cdel fdel

[?25l[?1c:[?25h[?0cdel subexpr_test

[?25l[?1c:[?25h[?0cdel stringtochars_test

[?25l[?1c:[?25h[?0cdel Mapping

[?25l[?1c:[?25h[?0cdel convertfrompyobject_test

[?25l[?1c:[?25h[?0cdel convertfrompymapping_test

[?25l[?1c:[?25h[?0cdel iter_test

[?25l[?1c:[?25h[?0cdel number_test

[?25l[?1c:[?25h[?0cdel FailingTrue

[?25l[?1c:[?25h[?0cdel FailingIter

[?25l[?1c:[?25h[?0cdel FailingIterNext

[?25l[?1c:[?25h[?0cdel FailingIterNextN

[?25l[?1c:[?25h[?0cdel FailingMapping

[?25l[?1c:[?25h[?0cdel FailingMappingKey

[?25l[?1c:[?25h[?0cdel FailingList

[?25l[?1c:[?25h[?0cdel NoArgsCall

[?25l[?1c:[?25h[?0cdel FailingCall

[?25l[?1c:[?25h[?0cdel FailingNumber

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:delfunction F

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test import

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0csys.path.insert(0, os.path.join(os.getcwd(), 'python_b

efore'))

[?25l[?1c:[?25h[?0csys.path.append(os.path.join(os.getcwd(), 'python_afte

r'))

[?25l[?1c:[?25h[?0cvim.options['rtp'] = os.getcwd().replace(',', '\\,').r

eplace('\\', '\\\\')

[?25l[?1c:[?25h[?0cl = []

[?25l[?1c:[?25h[?0cdef callback(path):

[?25l[?1c:[?25h[?0c    l.append(os.path.relpath(path))

[?25l[?1c:[?25h[?0cvim.foreach_rtp(callback)

[?25l[?1c:[?25h[?0ccb.append(repr(l))

[?25l[?1c:[?25h[?0cdel l

[?25l[?1c:[?25h[?0cdef callback(path):

[?25l[?1c:[?25h[?0c    return os.path.relpath(path)

[?25l[?1c:[?25h[?0ccb.append(repr(vim.foreach_rtp(callback)))

[?25l[?1c:[?25h[?0cdel callback

[?25l[?1c:[?25h[?0cfrom module import dir as d

[?25l[?1c:[?25h[?0cfrom modulex import ddir

[?25l[?1c:[?25h[?0ccb.append(d + ',' + ddir)

[?25l[?1c:[?25h[?0cimport before

[?25l[?1c:[?25h[?0ccb.append(before.dir)

[?25l[?1c:[?25h[?0cimport after

[?25l[?1c:[?25h[?0ccb.append(after.dir)

[?25l[?1c:[?25h[?0cimport topmodule as tm

[?25l[?1c:[?25h[?0cimport topmodule.submodule as tms

[?25l[?1c:[?25h[?0cimport topmodule.submodule.subsubmodule.subsubsubmodul

e as tmsss

[?25l[?1c:[?25h[?0ccb.append(tm.__file__.replace(os.path.sep, '/')[-len('

modulex/topmodule/__init__.py'):])

[?25l[?1c:[?25h[?0ccb.append(tms.__file__.replace(os.path.sep, '/')[-len(

'modulex/topmodule/submodule/__init__.py'):])

[?25l[?1c:[?25h[?0ccb.append(tmsss.__file__.replace(os.path.sep, '/')[-le

n('modulex/topmodule/submodule/subsubmodule/subsubsubmodule.py'):])

[?25l[?1c:[?25h[?0cdel before

[?25l[?1c:[?25h[?0cdel after

[?25l[?1c:[?25h[?0cdel d

[?25l[?1c:[?25h[?0cdel ddir

[?25l[?1c:[?25h[?0cdel tm

[?25l[?1c:[?25h[?0cdel tms

[?25l[?1c:[?25h[?0cdel tmsss

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test exceptions

[?25l[?1c:[?25h[?0c:fun Exe(e)

[?25l[?1c:[?25h[?0c:   execute a:e

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cExe = vim.bindeval('function("Exe")')

[?25l[?1c:[?25h[?0cee('vim.command("throw \'abcN\'")')

[?25l[?1c:[?25h[?0cee('Exe("throw \'def\'")')

[?25l[?1c:[?25h[?0cee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')

[?25l[?1c:[?25h[?0cee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')

[?25l[?1c:[?25h[?0cee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')"

)')

[?25l[?1c:[?25h[?0cee('vim.eval("xxx_unknown_function_xxx()")')

[?25l[?1c:[?25h[?0cee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx

\')")')

[?25l[?1c:[?25h[?0cdel Exe

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:delfunction Exe

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Regression: interrupting vim.command propagates t

o next vim.command

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef test_keyboard_interrupt():

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        vim.command('while 1 | endwhile')

[?25l[?1c:[?25h[?0c    except KeyboardInterrupt:

[?25l[?1c:[?25h[?0c        cb.append('Caught KeyboardInterrupt')

[?25l[?1c:[?25h[?0c    except Exception:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! No exception')

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        vim.command('$ put =\'Running :put\'')

[?25l[?1c:[?25h[?0c    except KeyboardInterrupt:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! Caught KeyboardInterrupt

')
[?25l[?1c:[?25h[?0c    except Exception:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        cb.append('No exception')

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:debuggreedy

[?25l[?1c:[?25h[?0c:call inputsave()

[?25l[?1c:[?25h[?0c:call feedkeys("s\ns\ns\ns\nq\n")

[?25l[?1c:[?25h[?0c:redir => output

[?25l[?1c:[?25h[?0c:debug silent! py3 test_keyboard_interrupt()

[?25l[?1c:[?25h[?0c:redir END

[?25l[?1c:[?25h[?0c:0 debuggreedy

[?25l[?1c:[?25h[?0c:call inputrestore()

[?25l[?1c:[?25h[?0c:silent $put =output

[?25l[?1c:[?25h[?0c:unlet output

[?25l[?1c:[?25h[?0c:py3 del test_keyboard_interrupt

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Cleanup

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdel cb

[?25l[?1c:[?25h[?0cdel ee

[?25l[?1c:[?25h[?0cdel emsg

[?25l[?1c:[?25h[?0cdel sys

[?25l[?1c:[?25h[?0cdel os

[?25l[?1c:[?25h[?0cdel vim

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:endfun
[?25l[?1c:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:/^start:/,$w! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun RunTest()
[?25l[?1c
:  [?25h[?0c:let checkrefs = !empty($PYTHONDUMPREFS)

[?25l[?1c:  [?25h[?0c:let start = getline(1, '$')

[?25l[?1c:  [?25h[?0c:for i in range(checkrefs ? 10 : 1)

[?25l[?1c:    [?25h[?0c:   if i != 0

[?25l[?1c:      [?25h[?0c:       %d _

[?25l[?1c:      [?25h[?0c:       call setline(1, start)

[?25l[?1c:      [?25h[?0c:   endif

[?25l[?1c:    [?25h[?0c:   call Test()

[?25l[?1c:    [?25h[?0c:   if i == 0

[?25l[?1c:      [?25h[?0c:       let result = getline(1, '$')

[?25l[?1c:      [?25h[?0c:   endif

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c:if checkrefs

[?25l[?1c:    [?25h[?0c:   %d _

[?25l[?1c:    [?25h[?0c:   call setline(1, result)

[?25l[?1c:    [?25h[?0c:endif

[?25l[?1c:  [?25h[?0c:endfun
[?25l[?1c:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall RunTest()
[?25l[?1c8 more lin
3 more lines[?25h[?0cgcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/window.o window.c


[?25l[?1c"a" [New File]

"b" [New File]

"c" [New File]

"0" [New File]

"1" [New File]

"a.1" [New File]

"2" [New File]

"a.2" [New File]

"b.2" [New File]

"c.2" [New File]

Already only one window

abc8def

Error detected while processing function RunTest[8]..Test:

line 1106:

abc9def

abcA

line 1108:

abcB

8 more lines

Entering Debug mode.  Type "cont" to continue.

function RunTest[8]..Test

line 1650: py3 test_keyboard_interrupt()

>s

function RunTest[8]..Test

line 1650: while 1 | endwhile

>s

function RunTest[8]..Test

line 1650: endwhile

>s

function RunTest[8]..Test

line 1650: while 1 | endwhile

>s

function RunTest[8]..Test

line 1650: endwhile

>q
['.']
'.'
3,xx
before
after
pythonx/topmodule/__init__.py
pythonx/topmodule/submodule/__init__.py
pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py
vim.command("throw 'abcN'"):(<class 'vim.error'>, error('abcN',))
Exe("throw 'def'"):(<class 'vim.error'>, error('def',))
vim.eval("Exe('throw ''ghi''')"):(<class 'vim.error'>, error('ghi',))
vim.eval("Exe('echoerr ''jkl''')"):(<class 'vim.error'>, error('Vim(echoerr):jkl',))
vim.eval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',))
vim.eval("xxx_unknown_function_xxx()"):(<class 'vim.error'>, error('Vim:E117: Unknown function: xxx_unknown_function_xxx',))
vim.bindeval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',))
Caught KeyboardInterrupt
Running :put
No exception

"test87.in" [Modified][Not edited] line 3151 of 3151 --100%-- col 1[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction RunTest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction Test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1445 lines, 77744 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test87 = test61; then \
#	  if diff test.out test87.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test87.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test87.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test12.in
[?25h[?8c[?25h[?0c[?25l[?1c"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/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'directory' option.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 965 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset dir=.,~
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/start of testfile/,/end of testfile/w! Xtest1
[?25l[?1c"Xtest1" [New] 4L, 70C written[?25h[?0c[?25l[?1c:[?25h[?0c" do an ls of the current dir to find the swap file (should not be there)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:  !ls .X*.swp >test.out

[?25l[?1c:!ls .X*.swp >test.out[?25h[?0c
ls: cannot access '.X*.swp': No such file or directory

shell returned 2

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:  r !ls X*.swp >test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:!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[?25h[?0c[?25l[?1c:[?25h[?0c!echo first line >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1c"Xtest1" 4L, 70Cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest1" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:" Do an ls of the current dir to find the swap file, remove the leading dot

[?25l[?1c:  [?25h[?0c:" to make the result the same for all systems.

[?25l[?1c:  [?25h[?0c:  r!ls .X*.swp

[?25l[?1c:  [?25h[?0c:  s/\.*X/X/

[?25l[?1c:  [?25h[?0c:  .w >>test.out
[?25l[?1c"test.out" 1L, 11C appended

:  [?25h[?0c:  undo

[?25l[?1c1 line less; before #1  0 seconds ago

:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:  !ls X*.swp >>test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c!echo under Xtest1.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir Xtest2
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0cset dir=./Xtest2,.,~
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1c"Xtest1" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0c!ls X*.swp >>test.out
[?25l[?1c[?25h[?0c
ls: cannot access 'X*.swp': No such file or directory

shell returned 2


Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under under >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ls Xtest2 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest1.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir Xtest.je
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c/start of testfile/,/end of testfile/w! Xtest2/Xtest3
[?25l[?1csearch hit BOTTOM, continuing at TOP"Xtest2/Xtest3" [New] 4L, 70C written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset dir=Xtest.je,~
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce Xtest2/Xtest3
[?25l[?1c"Xtest2/Xtest3" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0cswap
[?25l[?1cXtest.je/Xtest3.swp[?25h[?0c[?25l[?1c:[?25h[?0c!ls Xtest2 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest3 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ls Xtest.je >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest3.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test12 = test61; then \
#	  if diff test.out test12.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test12.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test12.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test25.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 540 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Create a link from test25.dir to the current directory.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!rm -f test25.dir
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ln -s . test25.dir
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c" Create tags.text, with the current directory name inserted.
[?25l[?1cTest 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
[?25h[?0c[?25l[?1c
/[?25h[?0ctags line
[?25l[?1chis 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:
[?25h[?0c[?25l[?1c:[?25h[?0cr !pwd
[?25l[?1c[?25h[?0c[?25l[?1cSTARTTEST
: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:
/<<PKGBUILDDIR>>/src/vim-gtk3/testdir
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0ctest
[?25l[?1c
SECTION_OFF     /test25.dir/test25.in   /^#define  SECTION_OFF  3$/[?25h[?0c[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test25.dir/t@                                                                               
SECTION_OFF     /<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test25.dir/test25.in/^#define  SECTION_OFF  3$/[?25h[?0c[?25l[?1c

:[?25h[?0c.w! tags.test
[?25l[?1c"tags.test" [New File] 1 line, 113 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Try jumping to a tag in the current file, but with a path that contains a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" symbolic link.  When wrong, this will give the ATTENTION message.  The next
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tags=tags.test
[?25l[?1c[?25h[?0c[?25l[?1c/*tx.c*/
#define  SECTION_OFF  3
#define  NUM_SECTIONS 3

SECTION_OFF[?25h[?0c#[?25l[?1cefine  SECTION_OFF  3[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 23 characters written[?25h[?0c[?25l[?1c:[?25h[?0c!rm -f test25.dir tags.test
[?25l[?1c[?25h[?0c
[No write since last change]


Press ENTER or type command to continue[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test25 = test61; then \
#	  if diff test.out test25.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test25.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test25.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test49.in
[?25h[?8c[?25h[?0c[?25l[?1c"test49.in" 32 lines, 705 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
:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cThis is a test of the script language.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 23 lines, 475 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:endfor
:for v in keys(g:)
:  silent! exe "unlet " . v
:endfor
:unlet v
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cse nocp nomore viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang mess C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso test49.vim
[?25l[?1cError detected while processing function F:

line    5:

E583: multiple :else:     else^I^I

Error detected while processing function G:

line    5:

E584: :elseif after :else:     elseif 1^I^I" aborts function

Error detected while processing function H:

line    7:

E583: multiple :else:     else^I^I

Error detected while processing function I:

line    7:

E584: :elseif after :else:     elseif 1^I^I" aborts function

*** Test  16: OK (8722)

Error detected while processing function F:

line   18:

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

line   34:

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

line   47:

E580: :endif without :if: ^Iendif^I

E580: :endif without :if: ^Iendif^I

E580: :endif without :if: ^Iendif^I

Error detected while processing /<<PKGBUILDDIR>>/src/vim-gtk3/tes

tdir/test49.vim:

line  784:

E171: Missing :endif: endwhile 

*** Test  17: OK (285127993)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"/tmp/vEhTen3/0" [New] 53L, 1582C written14L, 358C appended26L, 824C appended34L, 986C appended

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/1[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/1" 16L, 304C appended17L, 326C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/2[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/2"' -c 'breakad

dfile 8 /tmp/vEhTen3/1' -S /tmp/vEhTen3/1[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/2" 3L, 6C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/3[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/3" 6L, 127C appended7L, 149C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/4[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/4"' -c 'breakad

dfile 4 /tmp/vEhTen3/3' -S /tmp/vEhTen3/3[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/4" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/5[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/5" 21L, 486C appended22L, 508C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/6[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/6"' -c 'breakad

dfunc 7 F' -S /tmp/vEhTen3/5[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/6" 3L, 18C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/7[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/7" 13L, 364C appended14L, 386C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/8[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/8"' -c 'breakad

dfunc 3 G' -S /tmp/vEhTen3/7[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/8" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  18: OK (67224583)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/9[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/9" 12L, 201C appended13L, 223C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/10[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/10"' -S /tmp/vEhTe

n3/9[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/10" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/11[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/11" 12L, 205C appended13L, 227C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/12[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/12"' -S /tmp/vEhTe

n3/11[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/12" 2L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/13[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/13" 6L, 122C appended7L, 144C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/14[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/14"' -S /tmp/vEhTe

n3/13[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/14" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/15[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/15" 8L, 176C appended9L, 198C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/16[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/16"' -S /tmp/vEhTe

n3/15[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/16" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/17[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/17" 10L, 215C appended11L, 237C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/18[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/18"' -S /tmp/vEhTe

n3/17[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/18" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/19[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/19" 7L, 149C appended8L, 171C8L, 170C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/20[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/20"' -S /tmp/vEhTe

n3/19[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/20" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  19: OK (69275973)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/21[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/21" 9L, 135C appended10L, 157C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/22[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/22"' -S /tmp/vEhTe

n3/21[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/22" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/23[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/23" 10L, 155C appended11L, 177C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/24[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/24"' -S /tmp/vEhTe

n3/23[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/24" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/25[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/25" 12L, 204C appended13L, 226C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/26[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/26"' -S /tmp/vEhTe

n3/25[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/26" 4L, 18C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/27[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/27" 12L, 214C appended13L, 236C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/28[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/28"' -S /tmp/vEhTe

n3/27[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/28" 4L, 22C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/29[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/29" 12L, 211C appended13L, 233C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/30[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/30"' -S /tmp/vEhTe

n3/29[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/30" 3L, 22C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/31[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/31" 14L, 263C appended15L, 285C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/32[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/32"' -S /tmp/vEhTe

n3/31[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/32" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/33[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/33" 14L, 277C appended15L, 299C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/34[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/34"' -S /tmp/vEhTe

n3/33[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/34" 4L, 40C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  20: OK (1874575085)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/35[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/35" 58L, 1022C appended59L, 1044C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/36[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/36"' -S /tmp/vEhTe

n3/35[?25h[?0c
[?25l[?1c"/tmp/vEhTen3/36" 9L, 56C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  21: OK (147932225)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/37[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/37" 23L, 418C appended24L, 440C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/38[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/38"' -S /tmp/vEhTe

n3/37[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/38" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/39[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/39" 23L, 437C appended24L, 459C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/40[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/40"' -c 'breaka

dd func 2 Interrupt' -S /tmp/vEhTen3/39[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/40" 1L, 3C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/41[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/41" 21L, 386C appended22L, 408C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/42[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/42"' -S /tmp/vEhTe

n3/41[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/42" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  22: OK (4161)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/43[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/43" 25L, 432C appended26L, 454C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/44[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/44"' -S /tmp/vEhTe

n3/43[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/44" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  23: OK (49)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/45[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/45" 16L, 392C appended17L, 414C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/46[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/46"' -S /tmp/vEhTe

n3/45[?25h[?0c
[?25l[?1c"/tmp/vEhTen3/46" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  24: OK (41)

*** Test  25: OK (260177811)

*** Test  26: OK (1681500476)

*** Test  27: OK (1996459)

   function F()

1      try

2Xpath 1" X: 1

3try

4Xpath 2" X: 2

5return

6Xpath 4" X: 0

7finally

8Xpath 8" X: 8

9endtry

10Xpath 16" X: 0

11     finally

12Xpath 32" X: 32

13     endtry

14     Xpath 64" X: 0

   endfunction"/tmp/vEhTen3/47"[noeol] 17L, 552C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vEhTen3/47" 14L, 502C written
"test49.in" 32L, 705C
   function G()
1      try
2Xpath 128" X: 128
3return
4Xpath 256" X: 0
5      finally
6Xpath 512" X: 512
7call F()
8Xpath 1024" X: 1024
9      endtry
10     Xpath 2048" X: 0
   endfunction"/tmp/vEhTen3/48"[noeol] 13L, 406C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vEhTen3/48" 10L, 378C written
"test49.in" 32L, 705C
   function H()
1      try
2Xpath 4096" X: 4096
3call G()
4Xpath 8192" X: 8192
5      finally
6Xpath 16384" X: 16384
7return
8Xpath 32768" X: 0
9      endtry

10     Xpath 65536" X: 0

   endfunction"/tmp/vEhTen3/49"[noeol] 13L, 409C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vEhTen3/49" 10L, 381C written
"test49.in" 32L, 705C
*** Test  28: OK (1996459)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/50[?25h[?0c[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/50" 39L, 721C appended40L, 743C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/51[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/51"' -S /tmp/vEhTe

n3/50[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/51" 6L, 21C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/52[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/52" 23L, 509C appended24L, 531C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/53[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/53"' -S /tmp/vEhTe

n3/52[?25h[?0c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/lua5.2 -o objects/if_lua.o if_lua.c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/53" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  29: OK (170428555)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/54[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/54" 60L, 1101C appended61L, 1123C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/55[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nv

iminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/55"' -

c'breakadd func 3 F' -c 'breakadd file 19 /tmp/vEhTen3/54' -c 'breakadd file 31

/tmp/vEhTen3/54' -S /tmp/vEhTen3/54[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/55" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  30: OK (190905173)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/56[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/56" 60L, 1122C appended61L, 1144C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/57[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/57"' -S /tmp/vEhTe

n3/56[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/57" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  31: OK (190905173)

*** Test  32: OK (354833067)

*** Test  33: OK (1216907538)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/58[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/58" 63L, 1288C appended64L, 1310C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/59[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTe

n3/59"' -c 'breakadd func 16 C' -S /tmp/vEhTen3/58[?25h[?0c
[?25l[?1c"/tmp/vEhTen3/59" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  34: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/60[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/60" 63L, 1285C appended64L, 1307C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/61[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTe

n3/61"' -c 'breakadd func 16 B' -S /tmp/vEhTen3/60[?25h[?0c
[?25l[?1c"/tmp/vEhTen3/61" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  35: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/62[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/62" 66L, 1430C appended67L, 1452C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/63[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vimin

fo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/

63"' -c 'breakadd func 16 R' -S /tmp/vEhTen3/62[?25h[?0c
[?25l[?1c"/tmp/vEhTen3/63" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  36: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/64[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/64" 73L, 1488C appended74L, 1510C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/65[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/65"' -c 'breakadd

func 16 F' -S /tmp/vEhTen3/64[?25h[?0c
[?25l[?1c"/tmp/vEhTen3/65" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"/usr/bin/perl -e 'unless ( $] >= 5.005 ) { for (qw(na defgv errgv)) { print "#define PL_$_ $_\n" }}' > auto/if_perl.c

<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  37: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"/usr/bin/perl /usr/share/perl/5.24/ExtUtils/xsubpp -prototypes -typemap \
    /usr/share/perl/5.24/ExtUtils/typemap if_perl.xs >> auto/if_perl.c

<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/66[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/66" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/67[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTe

n3/67"' -c 'breakadd func 16 E' -S /tmp/vEhTen3/66[?25h[?0c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE  -o objects/if_perlsfio.o if_perlsfio.c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/67" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  38: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/68[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/68" 83L, 1538C appended84L, 1560C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/69[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -

c'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVi

mResult = "/tmp/vEhTen3/69"' -c 'breakadd func 16 I' -c 'breakadd func 22 I' -S

/tmp/vEhTen3/68[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/69" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  39: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/70[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/70" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/71[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTe

n3/71"' -c 'breakadd func 16 T' -S /tmp/vEhTen3/70[?25h[?0c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/python3.5m -DPYTHON3_HOME='L"/usr"' -pthread -fPIE  -o objects/if_python3.o if_python3.c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/71" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  40: OK (357908480)

*** Test  41: OK (3076095)

*** Test  42: OK (1505155949)

*** Test  43: OK (1157763329)

*** Test  44: OK (1031761407)

*** Test  45: OK (1157763329)

*** Test  46: OK (739407)

*** Test  47: OK (371213935)

*** Test  48: OK (756255461)

*** Test  49: OK (179000669)

   function C()

1      try

2Xpath 1" X: 1

3throw "arrgh"

4Xpath 2" X: 0

5      catch /arrgh/

6Xpath 4" X: 4

7      endtry

8      Xpath 8" X: 8

   endfunction"/tmp/vEhTen3/72"[noeol] 11L, 334C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vEhTen3/72" 8L, 295C written
"test49.in" 32L, 705C
   function T1()
1      XloopNEXT
2      try
3Xloop 1" X: 16 + 16*16
4throw "arrgh"
5Xloop 2" X: 0
6      finally

7Xloop 4" X: 64 + 64*16

8      endtry

9      Xloop 8" X: 0

   endfunction"/tmp/vEhTen3/73"[noeol] 12L, 364C
9 substitutions on 9 lines
Pattern not found: ^\s*$
"/tmp/vEhTen3/73" 9L, 323C written
"test49.in" 32L, 705C
   function T2()
1      try
2Xpath 4096" X: 4096
3call T1()
4Xpath 8192" X: 0
5      finally
6Xpath 16384" X: 16384
7      endtry

8      Xpath 32768" X: 0

   endfunction"/tmp/vEhTen3/74"[noeol] 11L, 332C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vEhTen3/74" 8L, 305C written
"test49.in" 32L, 705C
*** Test  50: OK (363550045)
*** Test  51: OK (40744667)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/76[?25h[?0c[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/76" 2L, 41C appended3L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/77[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/77"' -S /tmp/vEhTen3/76[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/77" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/75" 8L, 182C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/78[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/78" 7L, 115C appended8L, 137C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/79[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/79"' -S /tmp/vEhTen3/78[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/79" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/75" 8L, 181C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/80[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/80" 12L, 180C appended13L, 202C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/81[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/81"' -S /tmp/vEhTen3/80[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/81" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/75" 10L, 209C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/82[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/82" 8L, 139C appended9L, 161C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/83[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/83"' -S /tmp/vEhTen3/82[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/83" 2L, 11C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/75" 10L, 217C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/84[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/84" 5L, 87C appended6L, 109C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/85[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir!

>/tmp/vEhTen3/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin =

1' -c 'let ExtraVimResult = "/tmp/vEhTen3/85"' -c 'breakadd file 4 /tmp/vEhTen3

/84' -S /tmp/vEhTen3/84[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/85" 1L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/75" [noeol] 9L, 202C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/86[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/86" 7L, 189C appended8L, 211C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/87[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/87"' -S /tmp/vEhTen3/86[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/87" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/75" 9L, 252C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/88[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/88" 7L, 199C appended8L, 221C8L, 220C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/89[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/89"' -S /tmp/vEhTen3/88[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/89" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/75" 9L, 214C
"test49.in" 32L, 705C

*** Test  52: OK (1247112011)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/91[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/91" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/92[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/92"' -S /tmp/vEhTen3/91[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/92" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/93[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/93" 3L, 39C appended4L, 61C

3 substitutions on 3 lines
"/tmp/vEhTen3/93" 4L, 58C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/94[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/94"' -S /tmp/vEhTen3/93[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/94" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/95[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/95" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vEhTen3/95" 5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/96[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/96"' -S /tmp/vEhTen3/95[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/96" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/97[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/97" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vEhTen3/97" 4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/98[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/98"' -S /tmp/vEhTen3/97[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/98" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/99[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/99" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vEhTen3/99" 6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/100[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/100"' -S /tmp/vEhTen3/99[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/100" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/101[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/101" 1L, 9C appended2L, 31C2L, 30C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/102[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/102"' -S /tmp/vEhTen3/101[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/102" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 153C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/103[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/103" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vEhTen3/103"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/104[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/104"' -S /tmp/vEhTen3/103[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/104" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/105[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/105" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vEhTen3/105"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/106[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/106"' -S /tmp/vEhTen3/105[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/106" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/107[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/107" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vEhTen3/107"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/108[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/108"' -S /tmp/vEhTen3/107[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/108" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/109[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/109" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vEhTen3/109"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/110[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/110"' -S /tmp/vEhTen3/109[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/110" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/111[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/111" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/112[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/112"' -S /tmp/vEhTen3/111[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/112" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/113[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/113" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vEhTen3/113"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/114[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/114"' -S /tmp/vEhTen3/113[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/114" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/115[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/115" 4L, 46C appended5L, 68C

4 substitutions on 4 lines
"/tmp/vEhTen3/115"5L, 64C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/116[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/116"' -S /tmp/vEhTen3/115[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/116" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/117[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/117" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vEhTen3/117"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/118[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/118"' -S /tmp/vEhTen3/117[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/118" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/119[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/119" 5L, 66C appended6L, 88C

5 substitutions on 5 lines
"/tmp/vEhTen3/119"6L, 83C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/120[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/120"' -S /tmp/vEhTen3/119[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/120" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/121[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/121" 4L, 37C appended5L, 59C

4 substitutions on 4 lines
"/tmp/vEhTen3/121"5L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/122[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/122"' -S /tmp/vEhTen3/121[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/122" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 150C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/123[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/123" 4L, 41C appended5L, 63C

4 substitutions on 4 lines
"/tmp/vEhTen3/123"5L, 59C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/124[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vEhTen3/124"' -S /tmp/vEhTen3/123[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/124" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/90" 6L, 159C
"test49.in" 32L, 705C

*** Test  53: OK (131071)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/126[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/126" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/127[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/127"' -S /tmp/vEhTen3/126[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/127" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/125" 6L, 164C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/128[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/128" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vEhTen3/128"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/129[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/129"' -S /tmp/vEhTen3/128[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/129" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/130[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/130" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vEhTen3/130"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/131[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/131"' -S /tmp/vEhTen3/130[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/131" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/132[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/132" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vEhTen3/132"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/133[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/133"' -S /tmp/vEhTen3/132[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/133" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/134[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/134" 4L, 53C appended5L, 75C

4 substitutions on 4 lines
"/tmp/vEhTen3/134"5L, 71C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/135[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/135"' -S /tmp/vEhTen3/134[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/135" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/136[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/136" 5L, 62C appended6L, 84C

5 substitutions on 5 lines
"/tmp/vEhTen3/136"6L, 79C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/137[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/137"' -S /tmp/vEhTen3/136[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/137" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/138[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/138" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vEhTen3/138"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/139[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/139"' -S /tmp/vEhTen3/138[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/139" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/140[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/140" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vEhTen3/140"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/141[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/141"' -S /tmp/vEhTen3/140[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/141" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/142[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/142" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vEhTen3/142"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/143[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/143"' -S /tmp/vEhTen3/142[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/143" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/125" 6L, 167C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/144[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/144" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vEhTen3/144"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/145[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/145"' -S /tmp/vEhTen3/144[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/145" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/146[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/146" 7L, 95C appended8L, 117C

7 substitutions on 7 lines
"/tmp/vEhTen3/146"8L, 110C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/147[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/147"' -S /tmp/vEhTen3/146[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/147" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/125" 6L, 167C
"test49.in" 32L, 705C

*** Test  54: OK (2047)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/149[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/149" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/150[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/150"' -S /tmp/vEhTen3/149[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/150" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/148" 6L, 172C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/151[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/151" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vEhTen3/151"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/152[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/152"' -S /tmp/vEhTen3/151[?25h[?0c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/tcl8.6  -D_REENTRANT=1  -D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1  -o objects/if_tcl.o if_tcl.c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/152" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/153[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/153" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vEhTen3/153"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/154[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/154"' -S /tmp/vEhTen3/153[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/154" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/155[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/155" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vEhTen3/155"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/156[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/156"' -S /tmp/vEhTen3/155[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/156" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/157[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/157" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vEhTen3/157"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/158[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/158"' -S /tmp/vEhTen3/157[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/158" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/159[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/159" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/160[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/160"' -S /tmp/vEhTen3/159[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/160" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/148" 6L, 166C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/161[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/161" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vEhTen3/161"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/162[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/162"' -S /tmp/vEhTen3/161[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/162" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/163[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/163" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vEhTen3/163"5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/164[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/164"' -S /tmp/vEhTen3/163[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/164" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/165[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/165" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vEhTen3/165"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/166[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/166"' -S /tmp/vEhTen3/165[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/166" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/167[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/167" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vEhTen3/167"6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/168[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/168"' -S /tmp/vEhTen3/167[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/168" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/148" 6L, 170C
"test49.in" 32L, 705C

*** Test  55: OK (1023)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/170[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/170" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/171[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/171"' -S /tmp/vEhTen3/170[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/171" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/169" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/172[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/172" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vEhTen3/172"gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/ruby-2.3.0 -I/usr/include/arm-linux-gnueabihf/ruby-2.3.0 -DRUBY_VERSION=23 -o objects/if_ruby.o if_ruby.c
4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/173[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/173"' -S /tmp/vEhTen3/172[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/173" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/174[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/174" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vEhTen3/174"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/175[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/175"' -S /tmp/vEhTen3/174[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/175" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/176[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/176" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vEhTen3/176"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/177[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/177"' -S /tmp/vEhTen3/176[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/177" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/178[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/178" 3L, 35C appended4L, 57C

3 substitutions on 3 lines
"/tmp/vEhTen3/178"4L, 54C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/179[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/179"' -S /tmp/vEhTen3/178[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/179" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/180[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/180" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vEhTen3/180"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/181[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/181"' -S /tmp/vEhTen3/180[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/181" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/182[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/182" 4L, 47C appended5L, 69C

4 substitutions on 4 lines
"/tmp/vEhTen3/182"5L, 65C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/183[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/183"' -S /tmp/vEhTen3/182[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/183" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/184[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/184" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vEhTen3/184"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/185[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/185"' -S /tmp/vEhTen3/184[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/185" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/186[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/186" gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/netbeans.o netbeans.c
5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vEhTen3/186"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/187[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vEhTen3/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vEhTen3/187"' -S /tmp/vEhTen3/186[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/187" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vEhTen3/169" 6L, 155C
"test49.in" 32L, 705C

*** Test  56: OK (511)

   function FuncException()

1      let g:exception = v:exception

   endfunction"/tmp/vEhTen3/188" [noeol] 4L, 80C
Pattern not found: ^\s*$
"/tmp/vEhTen3/188"1L, 36C written
"test49.in" 32L, 705C
   function FuncThrowpoint()

1      let g:throwpoint = v:throwpoint

   endfunction"/tmp/vEhTen3/189" [noeol] 4L, 83C
Pattern not found: ^\s*$
"/tmp/vEhTen3/189"1L, 38C written
"test49.in" 32L, 705C
   function T(arg, line)

1      if a:line == 2

2throw a:arg" in line 2

3      elseif a:line == 4

4throw a:arg" in line 4

5      elseif a:line == 6

6throw a:arg" in line 6

7      elseif a:line == 8

8throw a:arg" in line 8

9      endif

   endfunction"/tmp/vEhTen3/190"[noeol] 12L, 341C
9 substitutions on 9 lines
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vEhTen3/190"9L, 292C written
"test49.in" 32L, 705C
   function G(arg, line)
1      call T(a:arg, a:line)
   endfunction"/tmp/vEhTen3/191"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vEhTen3/191"1L, 30C written
"test49.in" 32L, 705C
   function F(arg, line)
1      call G(a:arg, a:line)
   endfunction"/tmp/vEhTen3/192"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vEhTen3/192"1L, 30C written
"test49.in" 32L, 705C
*** Test  57: OK (2147450880)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/193[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/193" 87L, 1700C appended88L, 1722C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/194[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/194"' -c 'break

add func 4 T' -S /tmp/vEhTen3/193[?25h[?0c
[?25l[?1c"/tmp/vEhTen3/194" 8L, 36C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  58: OK (624945)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/195[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/195" 293L, 5789C appended294L, 5811C

3 substitutions on 3 lines
"/tmp/vEhTen3/195"294L, 5808C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/196[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/196"' -c 'br

eakadd file 115 /tmp/vEhTen3/195' -c 'breakadd file 225 /tmp/vEhTen3/195' -S /tm

p/vEhTen3/195[?25h[?0c
[?25l[?1c"/tmp/vEhTen3/196" 28L, 162C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  59: OK (2038431743)
"/n/o/n/w/r/i/t/a/b/l/e/_/f/i/l/e"
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/197[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/197" 33L, 765C appended34L, 787C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/198[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/198"' -c 'break

add file 7 /tmp/vEhTen3/197' -S /tmp/vEhTen3/197[?25h[?0c
[?25l[?1c"/tmp/vEhTen3/198" 3L, 27C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  60: OK (311511339)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/199[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/199" 115L, 2272C appended116L, 2294C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/200[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vimin

fo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/

200"' -c 'breakadd file 8 /tmp/vEhTen3/199' -c 'breakadd file 36 /tmp/vEhTen3/19

9' -c 'breakadd file 40 /tmp/vEhTen3/199' -c 'breakadd file 69 /tmp/vEhTen3/199'

-c 'breakadd file 95 /tmp/vEhTen3/199' -c 'breakadd file 97 /tmp/vEhTen3/199' -

S/tmp/vEhTen3/199[?25h[?0c
[?25l[?1c"/tmp/vEhTen3/200" 14L, 81C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  61: OK (374889517)

   function F()

1      while 1

2      " Missing :endwhile

   endfunction"/tmp/vEhTen3/201"[noeol] 5L, 73C
Pattern not found: ^\s*$
"/tmp/vEhTen3/201"2L, 40C written
"test49.in" 32L, 705C
*** Test  62: OK (286331153)
"/i/m/p/o/s/s/i/b/l/e" line 5500:

"/i/m/p/o/s/s/i/b/l/e" E212: Can't open file for writing

*** Test  63: OK (236978127)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/202[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/202" 149L, 2828C appended150L, 2850C

6 substitutions on 6 lines
"/tmp/vEhTen3/202"150L, 2844C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/203[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/203"' -c 'break

add file 63 /tmp/vEhTen3/202' -S /tmp/vEhTen3/202[?25h[?0c
[?25l[?1c"/tmp/vEhTen3/203" 16L, 97C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  64: OK (1499645335)

*** Test  65: OK (70187)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/204[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/204" 78L, 1520C appended79L, 1542C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/205[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/205"' -c 'break

add func 8 F' -S /tmp/vEhTen3/204[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/205" 6L, 22C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  66: OK (5464)

*** Test  67: OK (212514423)

*** Test  68: OK (212514423)

*** Test  69: OK (8995471)

*** Test  70: OK (69544277)

*** Test  71: OK (34886997)

*** Test  72: OK (1789569365)

   function F0()

   endfunction

   function F1()

   endfunction

*** Test  73: OK (9032615)
"/tmp/vEhTen3/206" [New File]
"test49.in" 32L, 705C
"/tmp/vEhTen3/207" [New File]
"test49.in" 32L, 705C

*** Test  74: OK (224907669)

*** Test  75: OK (2000403408)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/208[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/208" 253L, 6369C appended254L, 6391C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/209[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|

set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp

/vEhTen3/209"' -c 'breakadd func 2 INT' -S /tmp/vEhTen3/208[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/209" 28L, 167C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  76: OK (1610087935)

Error detected while processing function ERR:

line    2:

E492: Not an editor command:     asdf

E492: Not an editor command:     asdf

E492: Not an editor command:     asdf

*** Test  77: OK (1388671)gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/channel.o channel.c

"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/210[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/210" 161L, 4543C appended162L, 4565C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/211[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/211"' -S /tmp/vEhT

en3/210[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/211" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  78: OK (134217728)

Error detected while processing function NEXT:

line    1:

E121: Undefined variable: novar

E15: Invalid expression: novar | Xloop 1

E121: Undefined variable: novar

E488: Trailing characters

E108: No such variable: "novar"

E488: Trailing characters

E121: Undefined variable: novar

E15: Invalid expression: novar

E475: Invalid argument: {novar} | Xloop 1

E121: Undefined variable: novar

E15: Invalid expression:  novar

E475: Invalid argument: { novar} | Xloop 1

*** Test  79: OK (70288929)

Error detected while processing /<<PKGBUILDDIR>>/src/vim-gtk3/tes

tdir/test49.vim:

line 7985:

E584: :elseif after :else: elseif 1 ||| 2

line 7995:

E584: :elseif after :else: elseif 1 ||| 2

line 8003:

E582: :elseif without :if: elseif 1 ||| 2

line 8011:

E582: :elseif without :if:     elseif 1 ||| 2

*** Test  80: OK (17895765)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/212[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/212" 15L, 272C appended16L, 294C16L, 293C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/213[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/213"' -S /tmp/vEhT

en3/212[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/213" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/214[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/214" 12L, 227C appended13L, 249C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/215[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/215"' -c 'break

add file 8 /tmp/vEhTen3/214' -S /tmp/vEhTen3/214[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/215" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  81: OK (387)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/216[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/216" 20L, 417C appended21L, 439C21L, 438C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/217[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/217"' -S /tmp/vEhT

en3/216[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/217" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/218[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/218" 24L, 480C appended25L, 502C25L, 501C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/219[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/219"' -S /tmp/vEhT

en3/218[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/219" 1L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/220[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/220" 17L, 390C appended18L, 412C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/221[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/221"' -c 'break

add file 7 /tmp/vEhTen3/220' -S /tmp/vEhTen3/220[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/221" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/222[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/222" 21L, 444C appended22L, 466C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/223[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/223"' -c 'break

add func 6 I' -S /tmp/vEhTen3/222[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/223" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  82: OK (8454401)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/224[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/224" 17L, 307C appended18L, 329C18L, 328C written
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/225[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/225"' -S /tmp/vEhT

en3/224[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/225" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/226[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/226" 14L, 266C appended15L, 288C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/227[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/227"' -c 'break

add file 8 /tmp/vEhTen3/226' -S /tmp/vEhTen3/226[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vEhTen3/227" 3L, 13C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  83: OK (2835)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/228[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/228" 154L, 3580C appended155L, 3602C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/229[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/229"' -c 'br

eakadd func 1 INT' -S /tmp/vEhTen3/228[?25h[?0c
[?25l[?1c"/tmp/vEhTen3/229" 18L, 118C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  84: OK (934782101)

TMP
"/tmp/vEhTen3/230" [noeol] 2L, 6C/  
"test49.in" 32L, 705C
"/n/o/n/e/x/i/s/t/e/n/t"

"/tmp/vEhTen3/232" 1L, 1C
"test49.in" 32L, 705C

:!echo XYZ >/tmp/vEhTen3/233[?25h[?0c
[?25l[?1c"/tmp/vEhTen3/234" [New File]
"test49.in" 32L, 705C

*** Test  85: OK (198689)

line 8769:

E123: Undefined function: F

Make_all.mak
"Make_all.mak" line 1 of 207 --0%-- col 1

line 8772:

E926: Current location list was changed

line 8773:

E193: :endfunction not inside a function

Error detected while processing function ExecAsScript[2]..MakeScript:

line    3:

E123: Undefined function: F
"/tmp/vEhTen3/235" [noeol] 4L, 109C

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/vEhTen3/235"3L, 109C written
"Make_all.mak" 207L, 3846C

Error detected while processing /tmp/vEhTen3/235:

line    1:

E492: Not an editor command: Error detected while processing function ExecAsScr

ipt[2]..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 /<<PKGBUILDDIR>>/src/vim-gtk3/tes

tdir/test49.vim:

line 8779:

E130: Unknown function: F

*** Test  86: OK (0)

5
*** Test  87: OK (0)
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vEhTen3/0' >/tmp/vEhTen3/236[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vEhTen3/236" 151L, 3929C appended152L, 3951C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vEhTen3/237[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nvimi

nfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vEhTen3/237"' -c

'breakadd func 5 ThrowOnInterrupt' -S /tmp/vEhTen3/236[?25h[?0c
[?25l[?1c"/tmp/vEhTen3/237" 16L, 281C
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/test49.vim"
<XZm5mB/vim-8.0.0197/src/vim-gtk3/testdir/test49.vim" [readonly] 9009L, 206880C
"Make_all.mak" 207L, 3846C

*** Test  88: OK (50443995)

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c" Go back to this file and append the results from register r.
[?25l[?1c#
# Common Makefile, defines the list of tests to run.
#

NO_PLUGIN = -U NONE --noplugin --not-a-term

# The first script creates small.vim.
SCRIPTS_FIRST = \test1.out

# Tests that run on all systems.
SCRIPTS_ALL = \test3.out \test4.out \test5.out \test7.out \test8.out \test9.out \test14.out \test15.out \test19.out \test20.out \test22.out \[?25h[?0c[?25l[?1c:[?25h[?0cbuf test49.in
[?25l[?1c"test49.in" 32L, 705C:so test49.vim
:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:":" make valgrind happy
:redir => funclis: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!ENDTESTResults of test49.vim:[?25h[?0c
[?25l[?1c
83 more lines
*** Test  16: OK (8722)83 more lines[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 84L, 2484C written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make valgrind happy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => funclist
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csilent func
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor line in split(funclist, "\n")
[?25l[?1c
:  [?25h[?0c:  let name = matchstr(line, 'function \zs[A-Z]\w*\ze(')

[?25l[?1c:  [?25h[?0c:  if name != ''

[?25l[?1c:    [?25h[?0c:    exe "delfunc " . name

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:"
:" make valgrind happy[?25h[?0c[?25l[?1c
:[?25h[?0cfor v in keys(g:)
[?25l[?1c
:  [?25h[?0c:  silent! exe "unlet " . v

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:" Go back to this file and append the results from register r.
:buf test49.in[?25h[?0c[?25l[?1c
:[?25h[?0cunlet v
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test49 = test61; then \
#	  if diff test.out test49.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test49.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test49.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test97.failed test.ok test.out X* viminfo
cp test97.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test97.in
[?25h[?8c[?25h[?0c[?25l[?1c"test97.in" 23 lines, 484 charactersTest whether glob()/globpath() return correct results with certain escaped
characters.

STARTTEST
:so small.vim
:" make sure glob() doesn't use the shell
:set shell=doesnotexist
:" consistent sorting of file names
:set nofileignorecase
:e! test.out
:$put =glob('Xxx\{')
:$put =glob('Xxx\$')
:w! Xxx{
:w! Xxx\$
:$put =glob('Xxx\{')
:$put =glob('Xxx\$')
:"
:$put =string(globpath('sautest/autoload', '*.vim'))
:$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest whether glob()/globpath() return correct results with certain escaped[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/json.o json.c
[New File] 17 lines, 377 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure glob() doesn't use the shell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset shell=doesnotexist
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" consistent sorting of file names
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nofileignorecase
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\{')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xxx{
[?25l[?1c
Cannot execute shell doesnotexist


E79: Cannot expand wildcards

"Xxx{" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! Xxx\$
[?25l[?1c"Xxx$" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\{')
[?25l[?1cXxx{
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\$')
[?25l[?1cXxx$[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(globpath('sautest/autoload', '*.vim'))
[?25l[?1c'sautest/autoload/Test104.vimsautest/autoload/footest.vim'[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
[?25l[?1c['sautest/autoload/Test104.vim', 'sautest/autoload/footest.vim'][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 8 lines, 138 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test97 = test61; then \
#	  if diff test.out test97.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test97.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test97.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listlbr_utf8.failed test.ok test.out X* viminfo
cp test_listlbr_utf8.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr_utf8.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listlbr_utf8.in" 134 lines, 4027 charactersTest for linebreak and list option in utf-8 mode

STARTTEST
:so small.vim
:if !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!
test.out | qa! | endif
:so mbyte.vim
:set encoding=utf8
:if &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
:10new|:vsp|:vert resize 20
:put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width, lines)
:let c=''
:for j in range(1,a:lines)
:for i in range(1,a:width)
:let c.=nr2char(screenchar(j, i))
:endfor
:let c.="\n"
:endfor
:return c
:endfu[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for linebreak and list option in utf-8 mode[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 129 lines, 3948 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set list nolinebreak cc=3
:sign define foo text=^Vuff0b
:sign place 1 name=foo line=50 buffer=2
:norm! 2kztj
:let line1=line('.')
0GGlGGlGGlGGl
:let line2=line('.')
:let attr2=attr
:let attr=[]
0GGlGGlGGlGGl
:redraw!
:let line=ScreenChar(winwidth(0),3)
:call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!

test.out | qa! | endif
[?25l[?1c:set list nolinebreak cc=3[?25h[?0c[?25l[?1c
:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf8
[?25l[?1c:set list nolinebreak cc=3
:sign define foo text=^Vuff0b
:sign place 1 name=foo line=50 buffer=2
:norm! 2kztj
:let line1=line('.')
0GGlGGlGGlGGl
:let line2=line('.')
:let attr2=attr
:let attr=[]
0GGlGGlGGlGGl
:redraw!
:let line=ScreenChar(winwidth(0),3)
:call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
[?25h[?0c[?25l[?1c
:[?25h[?0cif &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c10new|:vsp|:vert resize 20
[?25l[?1c                    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name]            ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name]                                                  call DoRecordScreen()" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")else   call append('$', "Screen attributes are the same!")
:endif%w! test.out
:qaENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0cput =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [+][?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25l[?1cabcdef          
+hijklmn            
+pqrstuvwxyz 1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [?25h[?0c[?25l[?1c:[?25h[?0cfu! ScreenChar(width, lines)
[?25l[?1c
:  [?25h[?0c:^Ilet c=''

[?25l[?1c:  [?25h[?0c:^Ifor j in range(1,a:lines)

[?25l[?1c:    [?25h[?0c:^I    for i in range(1,a:width)

[?25l[?1c:      [?25h[?0c:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l[?1c:      [?25h[?0c:^I    endfor

[?25l[?1c:    [?25h[?0c:           let c.="\n"

[?25l[?1c:    [?25h[?0c:^Iendfor

[?25l[?1c:  [?25h[?0c:^Ireturn c

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0cfu! DoRecordScreen()
[?25l[?1c
:  [?25h[?0c:^Iwincmd l

[?25l[?1c:  [?25h[?0c:^I$put =printf(\"\n%s\", g:test)

[?25l[?1c:  [?25h[?0c:^I$put =g:line

[?25l[?1c:  [?25h[?0c:^Iwincmd p

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 1: set linebreak + set list + fancy listchars"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eo

l:\ub6"
[?25l[?1c▕———abcdef|▕———␣ˑ¶[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c▕———abcdef|
+hijklmn▕———|
+pqrstuvwxyz␣1060ABC|
+DEFGHIJKLMNOPˑ¶|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines¶                   
Test 1: set         
+linebreak + set    
+list + fancy       
+listchars¶         
▕———abcdefˑˑˑˑˑˑˑˑˑˑ
@                   Test 1: set linebreak + set list + fancy listchars▕———abcdef          +hijklmn▕———        +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶    [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 2: set nolinebreak list"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list nolinebreak
[?25l[?1chijklmn▕—pqrstuvwxyz␣1060ABCDEFGHIJKLMNOPˑ¶    
¶               
Test 1: set linebrea
+k + set list + fancy listchars¶   
▕———abcdefˑˑˑˑˑˑˑˑˑˑ¶         
+hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c▕———abcdef hijklmn▕—|
+pqrstuvwxyz␣1060ABC|
+DEFGHIJKLMNOPˑ¶|
¶|
Test 1: set linebrea|
+k + set list + fanc|
+y listchars¶|
▕———abcdefˑˑˑˑˑˑˑˑˑˑ|
+¶|
+hijklmn▕———ˑˑˑˑˑˑˑˑ|
@                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOPTest 1: set linebreak + set list + fancy listchars▕———abcdef+hijklmn▕———+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶~                                                          ~                                                          [No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            +hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines▕———abcdef                                                 +hijklmn▕———                                               +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 3: set linebreak nolist"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\t*mask = nil;\"
[?25l[?1c▕———▕—¶                  
+pqrstuvwxyz␣1060ABC
+¶+DEFGHIJKLMNOPˑ¶ˑˑˑˑ¶                 
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ
+¶                  
▕———*mask = nil;¶~[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c▕———*mask = nil;¶   
~                   
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak
[?25l[?1c     
    [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c*mask = nil;    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ▕———abcdef+hijklmn▕———+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 3: set         
+linebreak nolist   
    *mask = nil;    
~                   
~                   
~                   +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ¶                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       *mask = nil;Test 3: set linebreak nolist*mask = nil;~~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 4: set linebreak list listchars and concealing"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet c_defines=['#define ABCDE^I^I1','#define ABCDEF^I^I1','#define ABCDEFG^I^I

1','#define ABCDEFGH^I1', '#define MSG_MODE_FILE^I^I^I1','#define MSG_MODE_CONSO

LE^I^I2','#define MSG_MODE_FILE_AND_CONSOLE^I3','#define MSG_MODE_FILE_THEN_CONS

OLE^I4']
[?25l[?1c*mask = nil;    ||
Test 3: set|+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', c_defines)
[?25l[?1c#define             
+ABCDE      1       [?25h[?0c[?25l[?1c:[?25h[?0cvert resize 40
[?25l[?1c                    |                    |linebreak nolist|
    *mask = nil;                        |
~                    |                    |                    |
#define ABCDE1 |ABCDEF      1 |
#define ABCDEFG     1 |                    +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶*mask = nil;Test 3: set linebreak nolist*mask = nil;~~~[No Name] [+][?25h[?0c[?25l[?1c:[?25h[?0c$-7
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c#define ABCDE       1                   
#define ABCDEF      1                   
#define ABCDEFG     1                   
                                        
                                        
                                        
                                        
                                        
                                        
                                        #define ABCDEFGH    1
#define MSG_MODE_FILE1
#define MSG_MODE_CONSOLE2
#define MSG_MODE_FILE_AND_CONSOLE   3
#define MSG_MODE_FILE_THEN_CONSOLE  4
~                                       
~                                       [?25h[?0c[?25l[?1c:[?25h[?0cset list linebreak listchars=tab:>- cole=1
[?25l[?1c>-->--->->--->>--->--->-->--->--->--->--->-->-[?25h[?0c[?25l[?1c:[?25h[?0csyn match Conceal conceal cchar=>'AB\|MSG_MODE'
[?25l[?1cAB>CDEF>->CDEFG>->CDEFGH>->_FILE>------->_CONSOLE>------->_FILE_AND_CONSOLE>------->_FILE_THEN_CONSOLE>-------AB[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c#define ABCDE>-->---1|
#define >CDEF>-->---1|
#define >CDEFG>->---1|
#define >CDEFGH>----1|
#define >_FILE>--------->--->---1|
#define >_CONSOLE>---------->---2|
#define >_FILE_AND_CONSOLE>---------3   |
#define >_FILE_THEN_CONSOLE>--------4   |||~                                       
~                                       
[No Name] [+]                            +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶*mask = nil;Test 3: set linebreak nolist*mask = nil;~~~[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),7)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c>CDE>-7 more lines                                        
Test 4: set linebreak list listchars    
@                                       #define >CDEFG>->---1+ #define >CDEFGH>----1+#define >_FILE>--------->--->---1+ #define >_CONSOLE>---------->---2+#define >_FILE_AND_CONSOLE>---------3+ABCDE>
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 5: set linebreak list listchars and concealing part2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet c_defines=['bbeeeeee^I^I;^Isome text']
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', c_defines)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c@                                       
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        Test 4: set linebreak list listchars    
+and concealing
#define >CDE>-->---1
#define >CDEF>-->---1
#define >CDEFG>->---1
#define >CDEFGH>----1
#define >_FILE>--------->--->---1
#define >_CONSOLE>---------->---2
#define >_FILE_AND_CONSOLE>---------3
bbeeeeee>--->---;>--some text[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1cbbeeeeee>--->---;>--some text           
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       [?25h[?0c[?25l[?1c:[?25h[?0cset nowrap ts=2 list linebreak listchars=tab:>- cole=2 concealcursor=n
[?25l[?1c>;>some text      [?25h[?0c[?25l[?1c:[?25h[?0csyn clear
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match meaning    /;\s*\zs.*/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match hasword    /^\x\{8}/    contains=word
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match word       /\<\x\{8}\>/ contains=beginword,endword contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match beginword  /\<\x\x/     contained conceal
[?25l[?1ceeeeee>--[?25h[?0c[?25l[?1c:[?25h[?0csyn match endword    /\x\{6}\>/   contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi meaning   guibg=blue
[?25l[?1csome text[?25h[?0c[?25l[?1c:[?25h[?0chi beginword guibg=green
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi endword   guibg=red
[?25l[?1ceeeeee[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1ceeeeee>--->-;>some text||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
[No Name] [+]                            #define >CDEFG>->---1+#define >CDEFGH>----1+#define >_FILE>--------->--->---1+#define >_CONSOLE>---------->---2+#define >_FILE_AND_CONSOLE>---------3+[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c                                        
Test 5: set linebreak list listchars and
eeeeee>--->-;>some text                 #define >_CONSOLE>---------->---2      +                                      #define >_FILE_AND_CONSOLE>---------3  +                                                                                                                                                                                                                                                                                bbeeeeee    ; some textTest 5: set linebreak list listchars an+d concealing part2eeeeee>--->-;>some text                + [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 6: Screenattributes for comment"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 6: Screenattributes for comment    [?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', ' /*^I^I and some more */')
[?25l[?1c /*>>- and some more */                 [?25h[?0c[?25l[?1c:[?25h[?0cexe "set ft=c ts=7 linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail

:\u02d1,eol:\ub6"
[?25l[?1ceeeeee▕———————▕——————;▕—————some text¶|
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ¶▕———▕—————— and some more */¶#define >_CONSOLE>---------->---2         ;      some text[?25h[?0c[?25l[?1c:[?25h[?0csyntax on
[?25l[?1cbbeeeeee▕some text5>some text6for
 /* and some more */#define >_CONSOLE>---------->---2       #define >_FILE_AND_CONSOLE>---------3   bbeeeeeesome text5>some text                 [?25h[?0c[?25l[?1c:[?25h[?0chi SpecialKey term=underline ctermfg=red guifg=red
[?25l[?1c▕—————▕——————▕—————ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ▕———▕——————[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnnoremap <expr> GG ":let attr += ['".screenattr(screenrow(),screencol())."']\n

"[?25l[?1cbbeeeeee▕—————▕——————;▕—————some text¶|#define >_CONSOLE>---------->---2      [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt0
[?25l[?1c /*▕———▕—————— and some more */¶        
~                                       
~                                       
~                                       
~                                       
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       [?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['83']
[?25h[?0c[?25l[?1c:let attr += ['83']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', ['ScreenAttributes for test6:'])
[?25l[?1cScreenAttributes for test6:¶            [?25h[?0c[?25l[?1c:[?25h[?0cif attr[0] != attr[1] && attr[1] != attr[3] && attr[3] != attr[5]
[?25l[?1c
:  [?25h[?0c:   call append('$', "Attribut 0 and 1 and 3 and 5 are different!")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:   call append('$', "Not all attributes are different")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c/*▕———▕—————— and some more */¶|
ScreenAttributes for test6:¶|
Attribut 0 and 1 and 3 and 5 are differe||
~                                       #define >_CONSOLE>---------->---2      + #define >_FILE_AND_CONSOLE>---------3  + [?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 8: set linebreak with visual block mode and v_b_A and select

ion=exclusive and multibyte char"
[?25l[?1c/*▕———▕—————— and some more */¶|#define >_CONSOLE>---------->---2      [?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 8: set linebreak with visual block [?25h[?0c[?25l[?1clong line:ˑ¶                            [?25h[?0c[?25l[?1c¶                               
¶                           
¶                                       
¶                                      
oobar foobar foobar foobar foobarˑ¶[?25h[?0c[?25l[?1c
foobar foobar TARGET¶              [?25h[?0c[?25l[?1cÃ' at end¶[?25h[?0c[?25l[?1c:[?25h[?0cexe "norm! $3B\<C-v>eAx\<Esc>"
[?25l[?1cx' at end¶[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 9: a multibyte sign and colorcolumn"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr2=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c /*▕———▕—————— and some more */¶ScreenAttributes for test6:¶Attribut 0 and 1 and 3 and 5 are differe
Test 8: set linebreak with visual block
long line: foobar foobar foobar foobar f
¶                                       [?25h[?0c[?25l[?1c:[?25h[?0c$put ='a b c'
[?25l[?1ca b c¶                                  [?25h[?0c[?25l[?1c:[?25h[?0c$put ='a b c'
[?25l[?1ca b c¶                                  [?25h[?0c[?25l[?1c:[?25h[?0cset list nolinebreak cc=3
[?25l[?1c*
Scr
Att
Tesn 
a b
a b[?25h[?0c[?25l[?1c:[?25h[?0csign define foo text=^+
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csign place 1 name=foo line=50 buffer=2
[?25l[?1c   /*▕—▕—— and some more */¶  ScreenAttributes for test6:¶  Attribut 0 and 1 and 3 and 5 are diff
  Test 8: set linebreak with visual bloc
  long line: foobar foobar foobar foobar
  ¶ 
+a b c¶  a b c¶  
  ~~  #define >_CONSOLE>-->---2  +     #define >_FILE_AND_CONSOLE>--3  +     bbeeeeee  ;      some text    Test 5: set linebreak list listchars   +and concealing part2  eeeeee>--->-;>some text  +[?25h[?0c[?25l[?1c:[?25h[?0cnorm! 2kztj
[?25l[?1c  ¶                                     
+a b c¶                                
  a b c¶                                
  ~                                     
  ~                                     
                                        
                                        
                                        
                                        
                                          
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     [?25h[?0c[?25l[?1c:[?25h[?0clet line1=line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['93']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:[?25h[?0clet line2=line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr2=attr
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['93']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c  ¶ |
+a b c¶|
  a b c¶||||||||  
  
  
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     
[No Name] [+]                              #define >_CONSOLE>---------->---2      +     #define >_FILE_AND_CONSOLE>---------3  +     bbeeeeee;      some text    Test 5: set linebreak list listchars  +and concealing part2  eeeeee>--->-;>some text  +[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),3)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c3 more lines¶                                     Test 9: a multibyte sign and colorcolu  ¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ+a b c¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ  a b c¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑa b cTest 9: a multibyte sign and colorcolumn  ¶                     ++a b c¶                                 a b c¶               [?25h[?0c[?25l[?1c:[?25h[?0c" expected: attr[2] is different because of colorcolumn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
[?25l[?1c
:  [?25h[?0c:   call append('$', "Screen attributes are different!")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:   call append('$', "Screen attributes are the same!")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c  ¶ |
+a b c¶|
  a b c¶|
  ¶ |Screen attributes are the same!¶        a b c    Test 9: a multibyte sign and colorcol  +umn[?25h[?0c[?25l[?1c:[?25h[?0c%w! test.out
[?25l[?1c"test.out" [New File] 57 lines, 1882 characters writtentest.out     test.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listlbr_utf8 = test61; then \
#	  if diff test.out test_listlbr_utf8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listlbr_utf8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr_utf8.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test54.failed test.ok test.out X* viminfo
cp test54.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test54.in
[?25h[?8c[?25h[?0c[?25l[?1c"test54.in" 22 lines, 658 charactersSome tests for buffer-local autocommands

STARTTEST
:so small.vim
:e xx
:if has("vms")
: !del test.out.*
: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out
:else
: !rm -f test.out
: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out
:endif
:e somefile" here, autocommand for xx shall write test.out
:" but autocommand shall not apply to buffer named <buffer>:bwipe xx" here, autocommand shall be auto-deleted
:e xx" nothing shall be written
:e somefile" nothing shall be written
:qa!
ENDTEST

start of test file xx
end of test file xx[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cSome tests for buffer-local autocommands[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/main.o main.c
[New File] 15 lines, 555 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce xx
[?25l[?1c"xx" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: !del test.out.*

[?25l[?1c:  [?25h[?0c: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > te

st.out

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: !rm -f test.out

[?25l[?1c:!rm -f test.out[?25h[?0c
[?25l[?1c:  [?25h[?0c: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce somefile           " here, autocommand for xx shall write test.out 
[?25l[?1c:!echo buffer-local autommand in xx>> test.out

[?25h[?0c[?25l[?1c"somefile" [New File]

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c                     " but autocommand shall not apply to buffer named <buffer

>[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe xx             " here, autocommand shall be auto-deleted
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce xx                 " nothing shall be written
[?25l[?1c"xx" [New File][?25h[?0c[?25l[?1c:[?25h[?0ce somefile           " nothing shall be written
[?25l[?1c"somefile" [New File][?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test54 = test61; then \
#	  if diff test.out test54.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test54.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test54.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test17.in
[?25h[?8c[?25h[?0c[?25l[?1c"test17.in" 135 lines, 2431 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
:"
:if has("unix")
:let $CDIR = "."
/CDIR
:else
:if has("amiga")
:let $TDIR = "/testdir"
:else
:let $TDIR = "."
:endif
/TDIR
:endif[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 564 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("ebcdic")
[?25l[?1c
:  [?25h[?0c: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:if has("unix")
:let $CDIR = "."
/CDIR[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:let $CDIR = "."

[?25l[?1c:  [?25h[?0c/CDIR

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:if has("amiga")

[?25l[?1c:    [?25h[?0c:let $TDIR = "/testdir"

[?25l[?1c:    [?25h[?0c:else

[?25l[?1c:    [?25h[?0c:let $TDIR = "."

[?25l[?1c:    [?25h[?0c:endif

[?25l[?1c:  [?25h[?0c/TDIR

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:if has("unix")
:let $CDIR = "."
/CDIR
:else
:if has("amiga")
:let $TDIR = "/testdir"
:else
:let $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.outw! test.outgf:set ff=unix
:w! test.out
:brewindENDTEST${CDIR}/test17a.in[?25h[?0c[?25l[?1c
:[?25h[?0c" Dummy writing for making that sure gf doesn't fail even if the current
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" file is modified. It can be occurred when executing the following command
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" directly on Windows without fixing the 'fileformat':
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  > nmake -f Make_dos.mak test17.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 135 lines, 2431 characters written[?25h[?0c[?25l[?1c
"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/./test17a.in" 3 lines, 88

characters

Press ENTER or type command to continue[?25h[?0c[?25l[?1cThis file is just to test "gf" in test 17.
The contents is not important.
Just testing!
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" 3 lines, 88 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 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.outgf:set ff=unix:w! test.out:brewindENDTEST        ${CDIR}/test17a.in        $TDIR/test17a.inSTARTTEST:" check for 'include' without \zs or \ze:lang C:call delete("./Xbase.a"):call delete("Xdir1", "rf"):!mkdir Xdir1:!mkdir "Xdir1/dir2":e! Xdir1/dir2/foo.ai#include   "bar.a"^[:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 23 lines, 396 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:e Xdir1/dir2/baz.a
i#include"foo.a"^[:
:w
:e Xbase.a
:set path=Xdir1/dir2
i#include    <foo.a>^[:
:w
:redir! >>test.out
:checkpath!
:redir END
:brewind
ENDTEST

STARTTEST
:" check for 'include' with \zs and \ze
:call delete("./Xbase.b")
:call delete("Xdir1", "rf")
:!mkdir Xdir1
:!mkdir "Xdir1/dir2"
:let &include='^\s*%inc\s*/\zs[^/]\+\ze'
:function! DotsToSlashes()
:  return substitute(v:fname, '\.', '/', 'g') . '.b'
:endfunction[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' without \zs or \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.a")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.a
[?25l[?1c"Xdir1/dir2/foo.a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c#include   "bar.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.a" [New File] 1 line, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.a
[?25l[?1c"Xdir1/dir2/bar.a" [New File][?25h[?0c[?25l[?1c#include      "baz.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.a" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.a
[?25l[?1c"Xdir1/dir2/baz.a" [New File][?25h[?0c[?25l[?1c#include"foo.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.a" [New File] 1 line, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.a
[?25l[?1c"Xbase.a" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c#include    <foo.a>[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.a" [New File] 1 line, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c#include    <foo.a>
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 charactersi#include            "foo.a"^[:
:w:e Xbase.a:set path=Xdir1/dir2i#include    <foo.a>^[::w:redir! >>test.out:checkpath!:redir END:brewindENDTESTSTARTTEST:" check for 'include' with \zs and \ze:call delete("./Xbase.b"):call delete("Xdir1", "rf"):!mkdir Xdir1:!mkdir "Xdir1/dir2":let &include='^\s*%inc\s*/\zs[^/]\+\ze':function! DotsToSlashes():  return substitute(v:fname, '\.', '/', 'g') . '.b':endfunction:let &includeexpr='DotsToSlashes()'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 27 lines, 532 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 delete("Xdir1", "rf")
:!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][?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' with \zs and \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.b")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0clet &include='^\s*%inc\s*/\zs[^/]\+\ze'
[?25l[?1c: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 delete("Xdir1", "rf")
:!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][?25h[?0c[?25l[?1c:[?25h[?0cfunction! DotsToSlashes()
[?25l[?1c
:  [?25h[?0c:  return substitute(v:fname, '\.', '/', 'g') . '.b'

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:e Xdir1/dir2/baz.b
i%inc/foo/^[:[?25h[?0c[?25l[?1c:[?25h[?0clet &includeexpr='DotsToSlashes()'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.b
[?25l[?1c"Xdir1/dir2/foo.b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c%inc   /bar/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.b" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.b
[?25l[?1c"Xdir1/dir2/bar.b" [New File][?25h[?0c[?25l[?1c%inc      /baz/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.b" [New File] 1 line, 16 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.b
[?25l[?1c"Xdir1/dir2/baz.b" [New File][?25h[?0c[?25l[?1c%inc/foo/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.b" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.b
[?25l[?1c"Xbase.b" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c%inc    /foo/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.b" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c%inc    /foo/
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 charactersi%inc            /foo/^[:
:w:e Xbase.b:set path=Xdir1/dir2i%inc    /foo/^[::w:redir! >>test.out:checkpath!:redir END:brewindENDTESTSTARTTEST:" check for 'include' with \zs and no \ze:call delete("./Xbase.c"):call delete("Xdir1", "rf"):!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[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 39 lines, 745 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' with \zs and no \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.c")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0clet &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0cfunction! StripNewlineChar()
[?25l[?1c
:  [?25h[?0c:  if v:fname =~ '\n$'

[?25l[?1c:    [?25h[?0c:    return v:fname[:-2]

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  return v:fname

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:w
:e Xdir1/dir2/baz.c
i%incfoo.c^[:
:w
:e Xdir1/dir2/FALSE.c[?25h[?0c[?25l[?1c
:[?25h[?0clet &includeexpr='StripNewlineChar()'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.c
[?25l[?1c"Xdir1/dir2/foo.c" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c%inc   bar.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.c" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.c
[?25l[?1c"Xdir1/dir2/bar.c" [New File][?25h[?0c[?25l[?1c%inc      baz.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.c" [New File] 1 line, 16 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.c
[?25l[?1c"Xdir1/dir2/baz.c" [New File][?25h[?0c[?25l[?1c%incfoo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/FALSE.c
[?25l[?1c"Xdir1/dir2/FALSE.c" [New File][?25h[?0c[?25l[?1c%incfoo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/FALSE.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.c
[?25l[?1c"Xbase.c" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c%inc    FALSE.c foo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c%inc    FALSE.c foo.c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 characters:w:e Xdir1/dir2/baz.ci%inc            foo.c^[::w:e Xdir1/dir2/FALSE.ci%inc            foo.c^[::w:e Xbase.c:set path=Xdir1/dir2i%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:qENDTEST[?25h[?0c[?25l[?1c:[?25h[?0c" change "\" to "/" for Windows and fix 'fileformat'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce test.out
[?25l[?1c"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)[?25h[?0c[?25l[?1c:[?25h[?0c%s#\\#/#g
[?25l[?1cE486: Pattern not found: \\[?25h[?0c[?25l[?1c:[?25h[?0cset ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 33 lines, 655 characters written[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test17 = test61; then \
#	  if diff test.out test17.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test17.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test17.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test30.in
[?25h[?8c[?25h[?0c[?25l[?1c"test30.in" 237 lines, 3762 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=
:/^unix/;/eof/-1w! XXUnix
:/^dos/;/eof/-1w! XXDos
:set bin noeol
:$w! XXMac
Gonoeol^[
:$w! XXEol
:set nobin eol
:enew!
:bwipe XXUnix XXDos XXMac
:" create mixed format files
:if has("vms")
: !copy XXUnix,XXDos XXUxDs.
: !copy XXUnix,XXMac XXUxMac.
: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for a lot of variations of the 'fileformats' option[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 221 lines, 3592 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72
Go8^[:$r XXtt81
:$r XXtt82
Go9^[:$r XXtt91
:$r XXtt92
:$r XXtt93
Go10^[:$r XXUnix
:set nobinary ff&
:w
:qa!
ENDTEST

unix
unix
eof

dos^M
dos^M
eof

mac^Mmac^M[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" first write three test files, one in each format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^unix/;/eof/-1w! XXUnix
[?25l[?1c"XXUnix" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^dos/;/eof/-1w! XXDos
[?25l[?1c"XXDos" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset bin noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$w! XXMac
[?25l[?1c"XXMac" [New File][Incomplete last line] 1 line, 8 characters written[?25h[?0c[?25l[?1c
noeol[?25h[?0c[?25l[?1c
:[?25h[?0c$w! XXEol
[?25l[?1c"XXEol" [New File][Incomplete last line] 1 line, 5 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset nobin eol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cenew!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c3 buffers wiped out[?25h[?0c[?25l[?1c:[?25h[?0c" create mixed format files
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: !copy XXUnix,XXDos XXUxDs.

[?25l[?1c:  [?25h[?0c: !copy XXUnix,XXMac XXUxMac.

[?25l[?1c:  [?25h[?0c: !copy XXDos,XXMac  XXDosMac.

[?25l[?1c:  [?25h[?0c: !copy XXMac,XXEol  XXMacEol.

[?25l[?1c:  [?25h[?0c: !copy XXUnix,XXDos,XXMac XXUxDsMc.

[?25l[?1c:  [?25h[?0c:elseif has("win32")

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXDos XXUxDs

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXMac XXUxMac

[?25l[?1c:  [?25h[?0c: !copy /b XXDos+XXMac XXDosMac

[?25l[?1c:  [?25h[?0c: !copy /b XXMac+XXEol XXMacEol

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXDos+XXMac XXUxDsMc

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: !cat XXUnix XXDos >XXUxDs

[?25l[?1c:!cat XXUnix XXDos >XXUxDs[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXUnix XXMac >XXUxMac

[?25l[?1c:!cat XXUnix XXMac >XXUxMac[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXDos XXMac >XXDosMac

[?25l[?1c:!cat XXDos XXMac >XXDosMac[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXMac XXEol >XXMacEol

[?25l[?1c:!cat XXMac XXEol >XXMacEol[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXUnix XXDos XXMac >XXUxDsMc

[?25l[?1c:!cat XXUnix XXDos XXMac >XXUxDsMc[?25h[?0c
[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' empty
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" 2 lines, 10 charactersunix
unix[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" 2 lines, 10 charactersdos^M
dos^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt01
[?25l[?1c"XXtt01" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [Incomplete last line] 1 line, 8 charactersmacmac^M
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt02
[?25l[?1c"XXtt02" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=dos
[?25l[?1c:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72Go8^[:$r XXtt81:$r XXtt82Go9^[:$r XXtt91:$r XXtt92:$r XXtt93Go10^[:$r XXUnix:set nobinary ff&:w:qa!ENDTESTunixunixeofdos^Mdos^Meofmac^Mmac^M[?25h[?0c[?25l[?1c
:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" [CR missing][dos format] 2 lines, 10 charactersunixunix~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt11
[?25l[?1c"XXtt11" [New File][dos format] 2 lines, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" [dos format] 2 lines, 10 charactersdosdos[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt12
[?25l[?1c"XXtt12" [New File][dos format] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [Incomplete last line][dos format] 1 line, 8 charactersmac^Mmac^M
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt13
[?25l[?1c"XXtt13" [New File][dos format] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=mac
[?25l[?1c:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72Go8^[:$r XXtt81:$r XXtt82Go9^[:$r XXtt91:$r XXtt92:$r XXtt93Go10^[:$r XXUnix:set nobinary ff&:w:qa!ENDTESTunixunixeofdosdoseofmac^Jmac[?25h[?0c[?25l[?1c
:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" [Incomplete last line][mac format] 1 line, 10 charactersunix^Junix^J
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt21
[?25l[?1c"XXtt21" [New File][mac format] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" [Incomplete last line][mac format] 3 lines, 10 charactersdos^Jdos^J[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt22
[?25l[?1c"XXtt22" [New File][mac format] 3 lines, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [mac format] 2 lines, 8 charactersmac
mac~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt23
[?25l[?1c"XXtt23" [New File][mac format] 2 lines, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c^Jdos
^Jeof^J^Jmac
mac^J[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to one format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt31
[?25l[?1c"XXtt31" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt32
[?25l[?1c"XXtt32" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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] 237 lines, 3762 characters[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [mac format] 4 lines, 28 charactersunix^Junix^Jdos^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt33
[?25l[?1c"XXtt33" [New File][mac format] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters^Jdoseof^J^Jmac
mac^J[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to two formats
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt41
[?25l[?1c"XXtt41" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxMac
[?25l[?1c"XXUxMac" [Incomplete last line] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt42
[?25l[?1c"XXtt42" [New File] 3 lines, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDosMac
[?25l[?1c"XXDosMac" [Incomplete last line][dos format] 3 lines, 18 charactersdodos
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt43
[?25l[?1c"XXtt43" [New File][dos format] 3 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXDosMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDs
[?25l[?1c"XXUxDs" 4 lines, 20 charactersunixunix
dos^Mdos^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt51
[?25l[?1c"XXtt51" [New File] 4 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDs
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt52
[?25l[?1c"XXtt52" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDosMac
[?25l[?1c"XXDosMac" [mac format] 4 lines, 18 charactersdo^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt53
[?25l[?1c"XXtt53" [New File][mac format] 4 lines, 18 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXDosMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cunix,mac:unix[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt54
[?25l[?1c"XXtt54" [New File] 2 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDs
[?25l[?1c"XXUxDs" [CR missing][dos format] 4 lines, 20 charactersunixunix
dosdos
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt61
[?25l[?1c"XXtt61" [New File][dos format] 4 lines, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDs
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxMac
[?25l[?1c"XXUxMac" [Incomplete last line][CR missing][dos format] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cdos,mac:dos[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt62
[?25l[?1c"XXtt62" [New File][dos format] 4 lines, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxMac
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt63
[?25l[?1c"XXtt63" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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] 237 lines, 3762 characters[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMacEol
[?25l[?1c"XXMacEol" [Incomplete last line][mac format] 3 lines, 13 charactersmacmac
noeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cdos,mac:mac[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt64
[?25l[?1c"XXtt64" [New File][mac format] 4 lines, 26 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXMacEol
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to three formats
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt71
[?25l[?1c"XXtt71" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cunix,dos,mac:unix[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt72
[?25l[?1c"XXtt72" [New File] 2 lines, 24 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac,dos,unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt81
[?25l[?1c"XXtt81" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line][mac format] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cmac,dos,unix:mac[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt82
[?25l[?1c"XXtt82" [New File][mac format] 2 lines, 23 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0c" try with 'binary' set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac,unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset binary
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt91
[?25l[?1c"XXtt91" [New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt92
[?25l[?1c"XXtt92" [New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt93
[?25l[?1c"XXtt93" gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memfile.o memfile.c
[New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Append "END" to each file so that we can see what the last written char was.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix nobin
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cEND[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt01
[?25l[?1c"XXtt01" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt02
[?25l[?1c"XXtt02" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt11
[?25l[?1c"XXtt11" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt12
[?25l[?1c"XXtt12" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt13
[?25l[?1c"XXtt13" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt21
[?25l[?1c"XXtt21" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt22
[?25l[?1c"XXtt22" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt23
[?25l[?1c"XXtt23" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt31
[?25l[?1c"XXtt31" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt32
[?25l[?1c"XXtt32" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt33
[?25l[?1c"XXtt33" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt41
[?25l[?1c"XXtt41" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt42
[?25l[?1c"XXtt42" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt43
[?25l[?1c"XXtt43" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt51
[?25l[?1c"XXtt51" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt52
[?25l[?1c"XXtt52" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt53
[?25l[?1c"XXtt53" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt54
[?25l[?1c"XXtt54" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt61
[?25l[?1c"XXtt61" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt62
[?25l[?1c"XXtt62" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt63
[?25l[?1c"XXtt63" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt64
[?25l[?1c"XXtt64" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt71
[?25l[?1c"XXtt71" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt72
[?25l[?1c"XXtt72" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt81
[?25l[?1c"XXtt81" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt82
[?25l[?1c"XXtt82" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt91
[?25l[?1c"XXtt91" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt92
[?25l[?1c"XXtt92" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt93
[?25l[?1c"XXtt93" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Concatenate the results.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Make fileformat of test.out the native fileformat.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Add a newline at the end.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset binary
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 2 lines, 10 charactersunix
unix[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt01
[?25l[?1c"XXtt01" 3 lines, 14 charactersdos^Mdos^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt02
[?25l[?1c"XXtt02" 2 lines, 13 charactersmac^Mmac^MEND[?25h[?0c
[?25l[?1c
1[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt11
[?25l[?1c"XXtt11" 3 lines, 16 charactersunix^Munix^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt12
[?25l[?1c"XXtt12" 3 lines, 14 charactersdos^Mdos^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt13
[?25l[?1c"XXtt13" 2 lines, 14 charactersmac^Mmac^M^MEND[?25h[?0c
[?25l[?1c
2[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt21
[?25l[?1c"XXtt21" 3 lines, 15 charactersunixunix^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt22
[?25l[?1c"XXtt22" 3 lines, 15 charactersdos^Mdos^M^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt23
[?25l[?1c"XXtt23" 1 line, 12 characters
mac^Mmac^MEND[?25h[?0c[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt31
[?25l[?1c"XXtt31" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt32
[?25l[?1c"XXtt32" 6 lines, 36 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt33
[?25l[?1c"XXtt33" 5 lines, 32 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
unix[?25h[?0c[?25l[?1cunix
dos^M
dos^M
mac^Mmac^MEND
[?25h[?0c[?25l[?1c
4[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt41
[?25l[?1c"XXtt41" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt42
[?25l[?1c"XXtt42" 4 lines, 23 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt43
[?25l[?1c"XXtt43" 4 lines, 24 charactersunix
mac^Mmac^M
END
dos^M[?25h[?0c[?25l[?1cdos^M
mac^Mmac^M^M
END
[?25h[?0c[?25l[?1c
5[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt51
[?25l[?1c"XXtt51" 5 lines, 24 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt52
[?25l[?1c"XXtt52" 6 lines, 33 charactersunix
dos^M
dos^M
END
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt53
[?25l[?1c"XXtt53" 3 lines, 22 charactersunix
dos^M
dos^M
mac^Mmac^M
END
dos^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt54
[?25l[?1c"XXtt54" 3 lines, 24 charactersdos^M
mac^Mmac^MEND
unix,mac:unix[?25h[?0c[?25l[?1cnoeol
END
[?25h[?0c[?25l[?1c
6[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt61
[?25l[?1c"XXtt61" 5 lines, 26 characters
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt62
[?25l[?1c"XXtt62" 5 lines, 39 charactersunix^M
dos^M
dos^M
END
dos,mac:dos^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt63
[?25l[?1c"XXtt63" 6 lines, 36 charactersunix^M
unix^M
mac^Mmac^M^M
END
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt64
[?25l[?1c"XXtt64" 1 line, 30 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
dos,mac:mac^Mmac^Mmac^Mnoeol^MEND[?25h[?0c[?25l[?1c
7[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt71
[?25l[?1c"XXtt71" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt72
[?25l[?1c"XXtt72" 3 lines, 28 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix,dos,mac:unix[?25h[?0c[?25l[?1cnoeol
END
[?25h[?0c[?25l[?1c
8[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt81
[?25l[?1c"XXtt81" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt82
[?25l[?1c"XXtt82" 1 line, 27 charactersunix
dos^M
dos^M
mac^Mmac^M
END
mac,dos,unix:mac^Mnoeol^MEND[?25h[?0c[?25l[?1c
9[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt91
[?25l[?1c"XXtt91" 5 lines, 32 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt92
[?25l[?1c"XXtt92" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt93
[?25l[?1c"XXtt93" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?25h[?0c[?25l[?1cunix
dos^M
dos^M
mac^Mmac^MEND
[?25h[?0c[?25l[?1c
10[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXUnix
[?25l[?1c"XXUnix" 2 lines, 10 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0cset nobinary ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 130 lines, 786 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test30 = test61; then \
#	  if diff test.out test30.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test30.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test30.in; \
#	  fi \
#	fi"
# 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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/message.o message.c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test32.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for insert expansion[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c[?25l[?1c
:so small.vim[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 533 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cse nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
[?25l[?1c"Xtestfile" [New] 3L, 57C written[?25h[?0c[?25l[?1c:[?25h[?0cse cot=
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       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
ENDTESTstart of testfile
run1run2test32.in                                                                       [?25h[?0c[?25l[?1c-- 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[+][?25h[?0c[?25l[?1c-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?25h[?0c[?25l[?1c3[?25h[?0c
[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?25h[?0c
[?25l[?1c:[?25h[?0cse cpt=.,w,i
[?25l[?1c[?25h[?0c[?25l[?1c-- 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 matchMakefileto      run3
Makefileto      run3
Makefileto      run3[?25h[?0c[?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=kXtestfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw Xtest11.one
[?25l[?1c"Xtest11.one" [New] 9L, 104C writtenXtest11.one  [?25h[?0c[?25l[?1c:[?25h[?0cw Xtest11.two
[?25l[?1c"Xtest11.two" [New] 9L, 104C written[?25h[?0c[?25l[?1c-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning dictionary: Xtestfilematch in file Xtestfile-- Keyword completion (^N^P) match 1 of 9test11[+]I[?25h[?0c [?25l[?1c-- Keyword completion (^N^P) match 1 of 9-- INSERT --[?25h[?0c[?25l[?1c-- INSERT --Xtest11
[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0c" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" CTRL-X CTRL-F again to verify this doesn't cause trouble.
[?25l[?1c[?25h[?0c[?25l[?1c-- 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 442
Make_all.mak
run1 run2d[?25h[?0c [?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c
run1 run2~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0cse cpt=w
[?25l[?1c[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=u nohid
[?25l[?1c[?25h[?0c[?25l[?1c

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
[?25l[?1c[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c
ru[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New] 15L, 175C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test32 = test61; then \
#	  if diff test.out test32.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test32.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test32.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test58.in
[?25h[?8c[?25h[?0c[?25l[?1c"test58.in" 656 lines, 11024 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for spell checking.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2591 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" NOSLITSUGS
:call TestOne('8', '8')
:" Numbers
:call TestOne('9', '9')
:"
:" clean up for valgrind
:delfunc TestOne
:set spl= enc=latin1
:"
gg:/^test output:/,$wq! test.out
ENDTEST

1affstart
SET ISO8859-1


[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Don't want to depend on the locale from the environment
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c:"
:" NOSLITSUGS
:call TestOne('8', '8')
:" Numbers
:call TestOne('9', '9')
:"
:" clean up for valgrind
:delfunc TestOne
:set spl= enc=latin1
:"
gg:/^test output:/,$wq! test.out
ENDTEST

1affstart
SET ISO8859-1


:"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check using z= in new buffer (crash fixed by patch 7.4a.028).
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset maxmem=512 spell
[?25l[?1cvim

STARTTESTlatin1maxmem
iasdaff/.dic
:func TestOne(aff, dicspellfilea:affa:dicspldic and .aff
  exea:aff . 'affstarta:aff . 'affend/-1w! Xtest.aff
  exea:dic . 'dicstarta:dic . 'dicend/-1w! Xtest.dic
  mkspell! Xtest Xtest[?25h[?0c[?25l[?1casdTests for spell checking.     vim: set ft=vim :[?25h[?0c[?25l[?1cChange "asdTests" to:

 1 "Acid tests"

 2 "Attests"

 3 "Ass Tests"

 4 "As Tests"

 5 "Sad Tests"

 6 "Ads Tests"

 7 "As tests"

 8 "As detests"

 9 "Add Tests"

10 "Aid Tests"

11 "Ash Tests"

12 "Ad Tests"

13 "And Tests"

14 "Ask Tests"

15 "Asp Tests"

16 "USD Tests"

17 "Astutest"

18 "Autotests"

19 "Sadists"

20 "Asst Tests"

21 "Assad Tests"

22 "SSD Tests"

Type number and <Enter> or click with mouse (empty cancels): [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Function to test .aff/.dic with list of good and bad words.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc TestOne(aff, dic)
[?25l[?1c
:  [?25h[?0c  set spellfile=

[?25l[?1c:  [?25h[?0c  $put =''

[?25l[?1c:  [?25h[?0c  $put ='test '. a:aff . '-' . a:dic

[?25l[?1c:  [?25h[?0c  " Generate a .spl file from a .dic and .aff file.

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l[?1c:  [?25h[?0c  mkspell! Xtest Xtest

[?25l[?1c:  [?25h[?0c  " use that spell file

[?25l[?1c:  [?25h[?0c  set spl=Xtest.latin1.spl spell

[?25l[?1c:  [?25h[?0c  " list all valid words

[?25l[?1c:  [?25h[?0c  spelldump

[?25l[?1c:  [?25h[?0c  %yank

[?25l[?1c:  [?25h[?0c  quit

[?25l[?1c:  [?25h[?0c  $put

[?25l[?1c:  [?25h[?0c  $put ='-------'

[?25l[?1c:  [?25h[?0c  " find all bad words and suggestions for them

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'good:'

[?25l[?1c:  [?25h[?0c  normal 0f:]s

[?25l[?1c:  [?25h[?0c  let prevbad = ''

[?25l[?1c:  [?25h[?0c  while 1

[?25l[?1c:    [?25h[?0c    let [bad, a] = spellbadword()

[?25l[?1c:    [?25h[?0c    if bad == '' || bad == prevbad || bad == 'badend'

[?25l[?1c:      [?25h[?0c      break

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let prevbad = bad

[?25l[?1c:    [?25h[?0c    let lst = spellsuggest(bad, 3)

[?25l[?1c:    [?25h[?0c    normal mm

[?25l[?1c:    [?25h[?0c    $put =bad

[?25l[?1c:    [?25h[?0c    $put =string(lst)

[?25l[?1c:    [?25h[?0c    normal `m]s

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('1', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1cthe 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']
end
['put', 'uk', 'test']th['put', 'uk', 'test']gebletegek[?25h[?0c[?25l[?1c
kepereneven[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
everles gesvets etele[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l[?1c"Xtest.aff" 151 lines, 3412 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest Xtest
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1c-------
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']
end['put', 'uk', 'test']
the['put', 'uk', 'test']gebletegekkepereneveneverles gesvet etelekbltykk[?25h[?0c[?25l[?1c
kprnfn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
*fls kswts tl[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" also use an addition file
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^addstart/+1,/^addend/-1w! Xtest.latin1.add
[?25l[?1c"Xtest.latin1.add" [New File] 3 lines, 38 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest.latin1.add.spl Xtest.latin1.add
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0cset spellfile=Xtest.latin1.add
[?25l[?1casdTests for spell checking.     vim: set ft=vim :

STARTTEST
:so small.vim
:"
:" Don't want to depend on the locale from the environment[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cinputs
['input', 'puts', 'outputs']
comment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_us.latin1.spl
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['input', 'puts', 'outputs']
comment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ccomment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_gb.latin1.spl
[?25l[?1celequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
elekwent
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_nz.latin1.spl
[?25l[?1celequint
elekwint
elekwint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
elekwent
elequint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cOk
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_ca.latin1.spl
[?25l[?1celequint
elekwint
elekwint

elequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ctest
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet str a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Postponed prefixes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('2', '1')
[?25l[?1c"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

2affend

2good: puts
badendaddstar
/regions=usgbnz
elequ/2/3
addendtest2:test elekwint test elekwent asdf[?25h[?0c[?25l[?1c:[?25h[?0c" Compound words
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('3', '3')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('4', '4')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('5', '5')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('6', '6')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('7', '7')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c1234
mee/391,111,9999
bar/17,61003,123
lead/2
tail/123
middle/77,1
7dicend

bad: mee meea2 prabar probarmaat middle leadmiddle middletail tailleadleadprobar
badend

Test NOSLITSUGS

8affstart
SET ISO8859-1

NOSPLITSUGS
8affend

8dicstart[?25h[?0c[?25l[?1c:[?25h[?0c" NOSLITSUGS
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('8', '8')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c" Numbers
[?25l[?1cNOSPLITSUGS
8affend

8dicstart
1234
foo
bar
faabar
8dicend

8good: foo bar faabar
bad: foobar barfooTest Numbers9affstart9affend9dicstart
1234
foo[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('9', '9')
[?25l[?1cError detected while processing function TestOne:

line    5:

E493: Backwards range given: 1;/^9affstart/+1,/^9affend/-1w! Xtest.aff

"Xtest.dic" 3 lines, 13 characters written

Reading affix file Xtest.aff ...

Reading dictionary file Xtest.dic ...

line      2, word      0 - foo
Compressing word tree...
Compressed 2 of 15 nodes; 13 (86%) remaining

Writing spell file Xtest.latin1.spl ...

Done!

Estimated runtime memory use: 65 bytes

3 lines yanked

3 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1cTest Numbers

9affstart
9affend

9dicstart
1234
foo
bar
9dicend

9good: 0b1011 0777 1234 0x01ff
badend


test output:

test 1-1# ile: Xtest.latin1.spl
Comment
input[?25h[?0c[?25l[?1c:[?25h[?0c" clean up for valgrind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestOne
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset spl= enc=latin1
[?25l[?1cTest Numbers

9affstart
9affend

9dicstart
1234
foo
bar
9dicend

9good: 0b1011 0777 1234 0x01ff
badend


test output:

test 1-1
# file: Xtest.latin1.spl
Comment
deol
input[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^test output:/,$wq! test.out
[?25l[?1c"test.out" [New File] 289 lines, 3844 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test58 = test61; then \
#	  if diff test.out test58.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test58.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test58.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test59.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 106 lines, 2520 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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


[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Don't want to depend on the locale from the environment.  The .aff and .dic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" text is in latin1, the test text is utf-8.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c: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


:" 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[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf-8
[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Function to test .aff/.dic with list of good and bad words.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc TestOne(aff, dic)
[?25l[?1c
:  [?25h[?0c  set spellfile=

[?25l[?1c:  [?25h[?0c  $put =''

[?25l[?1c:  [?25h[?0c  $put ='test '. a:aff . '-' . a:dic

[?25l[?1c:  [?25h[?0c  " Generate a .spl file from a .dic and .aff file.

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l[?1c:  [?25h[?0c  mkspell! Xtest Xtest

[?25l[?1c:  [?25h[?0c  " use that spell file

[?25l[?1c:  [?25h[?0c  set spl=Xtest.utf-8.spl spell

[?25l[?1c:  [?25h[?0c  " list all valid words

[?25l[?1c:  [?25h[?0c  spelldump

[?25l[?1c:  [?25h[?0c  %yank

[?25l[?1c:  [?25h[?0c  quit

[?25l[?1c:  [?25h[?0c  $put

[?25l[?1c:  [?25h[?0c  $put ='-------'

[?25l[?1c:  [?25h[?0c  " find all bad words and suggestions for them

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'good:'

[?25l[?1c:  [?25h[?0c  normal 0f:]s

[?25l[?1c:  [?25h[?0c  let prevbad = ''

[?25l[?1c:  [?25h[?0c  while 1

[?25l[?1c:    [?25h[?0c    let [bad, a] = spellbadword()

[?25l[?1c:    [?25h[?0c    if bad == '' || bad == prevbad || bad == 'badend'

[?25l[?1c:      [?25h[?0c      break

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let prevbad = bad

[?25l[?1c:    [?25h[?0c    let lst = spellsuggest(bad, 3)

[?25l[?1c:    [?25h[?0c    normal mm

[?25l[?1c:    [?25h[?0c    $put =bad

[?25l[?1c:    [?25h[?0c    $put =string(lst)

[?25l[?1c:    [?25h[?0c    normal `m]s

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('1', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1cthe 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[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('kóopërÿnôven')
[?25l[?1c
kepereneven[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
everles gesvets etele[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l[?1c"Xtest.aff" 153 lines, 3426 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest Xtest
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1c-------
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[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('kóopërÿnôven')
[?25l[?1c
kprnfn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
*fls kswts tl[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" also use an addition file
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^addstart/+1,/^addend/-1w! Xtest.utf-8.add
[?25l[?1c"Xtest.utf-8.add" [New File] 3 lines, 38 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest.utf-8.add.spl Xtest.utf-8.add
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0cset spellfile=Xtest.utf-8.add
[?25l[?1cTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1ctomato 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 !![?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cinputs
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_us.utf-8.spl
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ccomment
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_gb.utf-8.spl
[?25l[?1celequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cok
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_nz.utf-8.spl
[?25l[?1celequint
elekwint
elekwint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cOk
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_ca.utf-8.spl
[?25l[?1celequint
elekwint
elekwint

elequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ctest
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet str a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Postponed prefixes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('2', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1caddstart
/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[?25h[?0c[?25l[?1c:[?25h[?0c" Compound words
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('3', '3')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('4', '4')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('5', '5')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('6', '6')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('7', '7')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c1234
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[?25h[?0c[?25l[?1c:[?25h[?0c" clean up for valgrind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestOne
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset spl= enc=latin1
[?25l[?1c1234
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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^test output:/,$wq! test.out
[?25l[?1c"test.out" [New File] 270 lines, 3685 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test59 = test61; then \
#	  if diff test.out test59.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test59.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test59.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test72.in
[?25h[?8c[?25h[?0c[?25l[?1c"test72.in" 146 lines, 2110 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/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for undo file.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 135 lines, 1913 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:bwipe!
:e Xtestfile
foo2bar
:set key=
/bar
:.w >>test.out
u:.w >>test.out
u:.w >>test.out
u:.w >>test.out
:"
:" Rename the undo file so that it gets cleaned up.
:if has("vms")
: call rename("_un_Xtestfile", "Xtestundo")
:else
: call rename(".Xtestfile.un~", "Xtestundo")
:endif
:qa!
ENDTEST

1111 -----
2222 -----

123456789[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile': first a simple one-line change.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100 undofile nomore
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-- INSERT --this is one line[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cs/one/ONE/
[?25l[?1cONE
[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" [New] 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!:e Xtestfilefoo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 1L, 17Cthis is ONE line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1 change; before #2  1 seconds agoone
[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New] 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile', change in original file fails check
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noundofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 1L, 17CONE
[?25h[?0c[?25l[?1c:[?25h[?0cs/line/Line/
[?25l[?1cL
[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cset undofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!:e Xtestfilefoo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 1L, 17Cthis is ONE Line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" TODO: this beeps
[?25l[?1c[?25h[?0c[?5h[?5l[?25l[?1cAlready at oldest change[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 17C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile', add 10 lines, delete 6 lines, undo 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset undofile
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --one
twothreefourfivesixseveneightnineten[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" 4L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2bar
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Conetwonineten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1 more line; before #7  0 seconds agoeight[?25h[?0c[?25l[?1c1 more line; before #6  0 seconds agoseven[?25h[?0c[?25l[?1c1 more line; before #5  0 seconds agosix[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 7L, 33C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test that reading the undofiles when setting undofile works
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noundofile ul=0
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --six
u[?25h[?0cs[?25l[?1c[?25h[?0c[?25l[?1c1 line less; before #8  0 seconds ago
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Cnine
ten~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset undofile ul=100
[?25l[?1c[?25h[?0c[?25l[?1c1 more line; before #7  0 seconds agoeight[?25h[?0c[?25l[?1c1 more line; before #6  0 seconds agoseven[?25h[?0c[?25l[?1c1 more line; before #5  0 seconds agosix[?25h[?0c[?25l[?1c1 more line; before #4  0 seconds agofive[?25h[?0c[?25l[?1c1 more line; before #3  0 seconds agofour[?25h[?0c[?25l[?1c1 more line; before #2  0 seconds agothree[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 10L, 49C appended[?25h[?0c[?25l[?1c:[?25h[?0c" And now with encryption, cryptmethod=zip
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Cninten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=zip
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --monday
tuesdaywednesdaythursdayfriday[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1cEnter same key again: [?25h[?0c******

[?25l[?1cmonday
friday
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile"cd xxd; CC="gcc" CFLAGS="-Wdate-time -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1" LDFLAGS="-L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed" \
	/usr/bin/make -f Makefile
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-nox/xxd'
gcc -Wdate-time -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -DUNIX -o xxd xxd.c
 [crypted] 2L, 14C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1c"Xtestfile" [crypted] 2L, 14Cmonday
friday
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [crypted] 2L, 14C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
[?25l[?1c[?25h[?0c[?25l[?1c1 more line; before #11  0 seconds agothursday[?25h[?0c[?25l[?1c1 more line; before #10  0 seconds agowednesday[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 4L, 33C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" With encryption, cryptmethod=blowfish
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c*******

~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][crypted] 1L, 14C[?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=blowfish ff&
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --jan
febmaraprjun[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c-- INSERT --foo mar[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --bar apr[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1cEnter same key again: [?25h[?0c******

[?25l[?1cjan
feb
bar apr[?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile" [blowfish] 4L, 20C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2ba
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1c"Xtestfile" [blowfish] 4L, 20Cjan
feb
bar apr
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish] 4L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #15  1 seconds agoap[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c1 more line; before #14  2 seconds agofoo mar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #13  2 seconds agomar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" With encryption, cryptmethod=blowfish2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c*******

~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][blowfish] 1L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=blowfish2 ff&
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --jan
febmaraprjun[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c-- INSERT --foo mar[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --bar apr[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cEnter encryption key: [?25h[?0c*******

[?25l[?1cEnter same key again: [?25h[?0c*******

[?25l[?1cjan
feb[?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile" [blowfish2] 4L, 20C writtenmake[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-nox/xxd'
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-nox/po'
OLD_PO_FILE_INPUT=yes msgfmt -v -o af.mo af.po
[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2ba
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Enter encryption key: [?25h[?0c*******
1423 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ca.mo ca.po

[?25l[?1c"Xtestfile" [blowfish2] 4L, 20C1697 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o cs.mo cs.po
jan
feb
bar ap
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish2] 4L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
1284 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o de.mo de.po
1701 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o en_GB.mo en_GB.po
78 translated messages.
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" OLD_PO_FILE_INPUT=yes msgfmt -v -o eo.mo eo.po
1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #19  1 seconds agoap[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1916 translated messages.
1L, 4C appended[?25h[?0c[?25l[?1c1 more line; before #18  1 seconds agofoo mar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" OLD_PO_FILE_INPUT=yes msgfmt -v -o es.mo es.po
1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #17  2 seconds agomar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1733 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o fi.mo fi.po
1L, 4C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Rename the undo file so that it gets cleaned up.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: call rename("_un_Xtestfile", "Xtestundo")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: call rename(".Xtestfile.un~", "Xtestundo")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cjan
feb
mar
apr[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test72 = test61; then \
#	  if diff test.out test72.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test72.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test72.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
1902 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o fr.mo fr.po
rm -rf X* test.ok viminfo
rm -rf test78.failed test.ok test.out X* viminfo
cp test78.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.
1916 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ga.mo ga.po
1914 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o it.mo it.po
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test78.in
1897 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.mo ja.po
[?25h[?8c[?25h[?0c[?25l[?1c"test78.in" 46 lines, 1464 charactersInserts 10000 lines with text to fill the swap file with two levels of pointer
blocks.  Then recovers from the swap file and checks all text is restored.

We need about 10000 lines of 100 characters to get two levels of pointer
blocks.

STARTTEST
:so small.vim
:set nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
:e! Xtest
ggdG
:let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
:let i = 1
:let linecount = 10000
:while i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
:preserve
:" get the name of the swap file
:redir => swapname
:swapname
:redir END
:let swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][:cntrl:]]*$', '\1', '')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cInserts 10000 lines with text to fill the swap file with two levels of pointer[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ko.mo ko.po
[New File] 37 lines, 1208 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set nobin
:new
:only!
:bwipe! Xtest
:call rename('Xswap', swapname)
:recover Xtest
:call delete(swapname)
:new
:call append(0, 'recovery start')
:wincmd w
:let linedollar = line('$')
:if linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected ". linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let linecount = linedollar | endif
:let i = 1
:while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call append(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
:q!
:call append(line('$'), 'recovery end')
:w! test.out
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest
[?25l[?1c"Xtest" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01

23456789abcdefghijklmnoparstuvwxyz0123456789"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet linecount = 10000
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
1728 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ko.UTF-8.mo ko.UTF-8.po
1728 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o nb.mo nb.po
1668 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o nl.mo nl.po
1213 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o no.mo no.po
1668 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.mo pl.po
1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pt_BR.mo pt_BR.po
1735 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ru.mo ru.po
1882 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sk.mo sk.po
[?25l[?1c9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899991    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899992    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899993    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899994    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899995    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899996    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899997    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899998    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678910000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[?25h[?0c[?25l[?1c:[?25h[?0cpreserve
1628 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sv.mo sv.po
[?25l[?1cFile preserved[?25h[?0c[?25l[?1c:[?25h[?0c" get the name of the swap file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => swapname
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cswapname
[?25l[?1c.Xtest.swp[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][

:cntrl:]]*$', '\1', '')
[?25l[?1c9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[?25h[?0c[?25l[?1c
:[?25h[?0c" make a copy of the swap file in Xswap
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe 'sp ' . swapname
[?25l[?1c".Xtest.swp"[noeol] 611L, 1224704Cb0VIM 8.0^@^@^@^@^P^@^@^@^@^@^@^@^@^@^@1}^@^@buildd^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@testbuildd.raspbian.org^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtest^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^.Xtest.swp                                                                      789

10000~                                                                               Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cw! Xswap
[?25l[?1c"Xswap" 1697 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o uk.mo uk.po
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o vi.mo vi.po
[New][noeol] 611L, 1224704C written[?25h[?0c[?25l[?1c:[?25h[?0cecho swapname
[?25l[?1c.Xtest.sw[?25h[?0c[?25l[?1c:[?25h[?0cset nobin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       b0VIM 8.0^@^@^@^@^P^@^@^@^@^@^@^@^@^@^@1}^@^@buildd^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@testbuildd.raspbian.org^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtest^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^.Xtest.swp                                                                      9999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
10000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789

~                                                                               Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe! Xtest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall rename('Xswap', swapname)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0crecover Xtest
[?25l[?1cUsing swap file ".Xtest.swp"

Original file "/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtest"

"/<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xtest" [New File]Recovery completed. You should check if everything is OK.

(You might want to write out this file under another name

and run diff with the original file to check for changes)

You may want to delete the .swp file now.



Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ccall delete(swapname)
[?25l[?1c1abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
2abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
3abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
4abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
5       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567896       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567897       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567898       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678910      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678911      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678912      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1

2

3

4 

5 

Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, 'recovery start')
[?25l[?1crecovery start[+][?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name] [+]                                                                   Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet linedollar = line('$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected 

"1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.UTF-8.mo zh_CN.UTF-8.po
1634 translated messages, 3 fuzzy translations.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.mo zh_CN.po
 . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let li

necount = linedollar | endif
[?25l[?1crecovery start[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appen

d(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
1633 translated messages, 3 fuzzy translations.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_TW.UTF-8.mo zh_TW.UTF-8.po
1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_TW.mo zh_TW.po
1422 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o cs.cp1250.mo cs.cp1250.po
1284 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.sjis.mo ja.sjis.po
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ja.euc-jp.mo ja.euc-jp.po
1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.cp1250.mo pl.cp1250.po
1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o pl.UTF-8.mo pl.UTF-8.po
1869 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o ru.cp1251.mo ru.cp1251.po
1882 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o sk.cp1250.mo sk.cp1250.po
1628 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o uk.cp1251.mo uk.cp1251.po
[?25l[?1crecovery start[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), 'recovery end')
[?25l[?1crecovery end[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" 1918 translated messages.
OLD_PO_FILE_INPUT=yes msgfmt -v -o zh_CN.cp936.mo zh_CN.cp936.po
1633 translated messages, 3 fuzzy translations.
[New] 3L, 29C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0cmake[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-nox/po'
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test78 = test61; then \
#	  if diff test.out test78.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test78.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test78.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-nox/po'
make[2]: Nothing to be done for 'converted'.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-nox/po'
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/arabic.o arabic.c
rm -rf X* test.ok viminfo
rm -rf test83.failed test.ok test.out X* viminfo
cp test83.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test83.in
[?25h[?8c[?25h[?0c[?25l[?1c"test83.in" 76 lines, 1273 charactersTests for tag search with !_TAG_FILE_ENCODING.

STARTTEST
:so mbyte.vim
:set enc=utf8
:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
: e! test.ok
: w! test.out
: qa!
:endif
:
:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
:
ggdG:
:
:call setline('.', 'Results of test83')
:
:" case1:
:new
:set tags=Xtags1[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for tag search with !_TAG_FILE_ENCODING.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 58 lines, 1021 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'
:else
: close
: put ='case3: ok'
:endif
:close
:
:wq! test.out
ENDTEST

text for tags1
abcdefghijklmnopqrs

text for tags2
ABC

text for tags3
ABC

tags1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf8
[?25l[?1c:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'
:else
: close
: put ='case3: ok'
:endif
:close
:
:wq! test.out
ENDTEST

text for tags1
abcdefghijklmnopqrs

text for tags2
ABC

text for tags3
ABC

tags1[?25h[?0c[?25l[?1c:[?25h[?0cif !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
[?25l[?1c"Xtags1.txt" [New File] 2 lines, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
[?25l[?1c"Xtags2.txt" [New File] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
[?25l[?1c"Xtags3.txt" [New File] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^tags1$/+1,/^tags1-end$/-1w! Xtags1
[?25l[?1c"Xtags1" [New File] 2 lines, 81 characters written[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTests for tag search with !_TAG_FILE_ENCODING.

STARTTEST
:so mbyte.vim
:set enc=utf8
:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
: e! test.ok
: w! test.out
: qa!
:endif
:
:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
:
ggdG:
:
:call setline('.', 'Results of test83')
:
:" case1:
:new
:set tags=Xtags1[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setline('.', 'Results of test83')
[?25l[?1cResults of test83
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case1:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c[No Name]                                                                       Results of test83test83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=Xtags1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag abcdefghijklmnopqrs
[?25l[?1c"Xtags1.txt" 2 lines, 35 characterstext for tags1
abcdefghijklmnopqrsXtags1.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case1: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case1: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case2:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               [No Name]                                                                       Results of test83case1: oktest83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=test83-tags2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag /.BC
[?25l[?1c"Xtags2.txt" 2 lines, 25 characterstext for tags2
ABCXtags2.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case2: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case2: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
case2: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case3:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       case1: okcase2: oktest83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=test83-tags3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag abc50
[?25l[?1c"Xtags3.txt" 2 lines, 25 characterstext for tags3
ABCXtags3.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case3: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case3: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
case2: ok
case3: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 4 lines, 48 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test83 = test61; then \
#	  if diff test.out test83.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test83.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test83.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test89.failed test.ok test.out X* viminfo
cp test89.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test89.in
[?25h[?8c[?25h[?0c[?25l[?1c"test89.in" 71 lines, 1514 characters- Some tests for setting 'number' and 'relativenumber'
  This is not all that useful now that the options are no longer reset when
  setting the other.
- Some tests for findfile() function

STARTTEST
:so small.vim
:set hidden nocp nu rnu viminfo+=nviminfo
:redir @a | set nu? rnu? | redir END
:e! xx
:redir @b | set nu? rnu? | redir END
:e! #
:$put ='results:'
:$put a
:$put b
:"
:set nonu nornu
:setglobal nu
:setlocal rnu
:redir @c | setglobal nu? | redir END
:set nonu nornu
:setglobal rnu
:setlocal nu[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c- Some tests for setting 'number' and 'relativenumber'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 63 lines, 1305 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =':set MUST reset the other global value'
:$put g
:$put h
:"
:let cwd=getcwd()
:cd ..
:" Tests may be run from a shadow directory, so an extra cd needs to be done to
:" get above src/
:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
:$put =''
:$put ='Testing findfile'
:$put =''
:set ssl
:$put =findfile('test19.in','src/test*')
:exe "cd" cwd
:cd ..
:$put =findfile('test19.in','test*')
:$put =findfile('test19.in','testdir')
:exe "cd" cwd
:/^results/,$w! test.out
:q!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden nocp nu rnu viminfo+=nviminfo
[?25l[?1c 21 :$put g 20 :$put h
 19 :" 18 :let cwd=getcwd()
 17 :cd .. 16 :" Tests may be run from a shadow directory, so an extra cd needs to be done     to 15 :" get above src/
 14 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 13 :$put =''
 12 :$put ='Testing findfile'
 11 :$put =''
 10 :set ssl
  9 :$put =findfile('test19.in','src/test*')
  8 :exe "cd" cwd
  7 :cd ..
  6 :$put =findfile('test19.in','test*')
  5 :$put =findfile('test19.in','testdir')
  4 :exe "cd" cwd
  3 :/^results/,$w! test.out
  2 :q!
  1 ENDTEST
71  [?25h[?0c[?25l[?1c:[?25h[?0credir @a | set nu? rnu? | redir END
[?25l[?1c  number

  relativenumber

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! xx
[?25l[?1c"xx" [New File]1   
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0credir @b | set nu? rnu? | redir END
[?25l[?1c  number

  relativenumber

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! #
[?25l[?1c"test89.in" line 71 of 71 --100%-- col 1 21 :$put g
 20 :$put h
 19 :" 18 :let cwd=getcwd() 17 :cd .. 16 :" Tests may be run from a shadow directory, so an extra cd needs to be done     to 15 :" get above src/ 14 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif 13 :$put ='' 12 :$put ='Testing findfile' 11 :$put ='' 10 :set ssl  9 :$put =findfile('test19.in','src/test*')  8 :exe "cd" cwd  7 :cd ..  6 :$put =findfile('test19.in','test*')  5 :$put =findfile('test19.in','testdir')  4 :exe "cd" cwd  3 :/^results/,$w! test.out  2 :q!  1 ENDTEST71  "test89.in" line 71 of 71 --100%-- col 1[?25h[?0c[?25l[?1c:[?25h[?0c$put ='results:'
[?25l[?1c
1
 20
 19
 18
 17

 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
72  results:[?25h[?0c[?25l[?1c
:[?25h[?0c$put a
[?25l[?1c3 more lines21
 20

 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
75    relativenumber3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put b
[?25l[?1c3 more lines22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
78    relativenumber3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:" get above src/:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif:$put ='':$put ='Testing findfile':$put ='':set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal rnu
[?25l[?1c 22 :" get above src/
 21 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 20 :$put =''
 19 :$put ='Testing findfile'
 18 :$put =''
 17 :set ssl
 16 :$put =findfile('test19.in','src/test*')
 15 :exe "cd" cwd
 14 :cd ..
 13 :$put =findfile('test19.in','test*')
 12 :$put =findfile('test19.in','testdir')
 11 :exe "cd" cwd
 10 :/^results/,$w! test.out
  9 :q!
  8 ENDTEST
  7 
  6 results:
  5 
  4   number
  3   relativenumber
  2 
  1   number
  0   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0credir @c | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nogcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/buffer.o buffer.c
nu nornu
[?25l[?1c:" get above src/:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif:$put ='':$put ='Testing findfile':$put ='':set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal nu
[?25l[?1c 56 :" get above src/
 57 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 58 :$put =''
 59 :$put ='Testing findfile'
 60 :$put =''
 61 :set ssl
 62 :$put =findfile('test19.in','src/test*')
 63 :exe "cd" cwd
 64 :cd ..
 65 :$put =findfile('test19.in','test*')
 66 :$put =findfile('test19.in','testdir')
 67 :exe "cd" cwd
 68 :/^results/,$w! test.out
 69 :q!
 70 ENDTEST
 71 
 72 results:
 73 
 74   number
 75   relativenumber
 76 
 77   number
 78   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0credir @d | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':setlocal must NOT reset the other global value'
[?25l[?1c
 79 :setlocal must NOT reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put c
[?25l[?1c 80 
 81   number[?25h[?0c[?25l[?1c
:[?25h[?0c$put d
[?25l[?1c 82 
 83   relativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber:setlocal must NOT reset the other global value  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir @e | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir @f | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':setglobal MUST reset the other global value'
[?25l[?1c
:setglobal MUST reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put e
[?25l[?1cnumber[?25h[?0c[?25l[?1c
:[?25h[?0c$put f
[?25l[?1crelativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c 66 :$put =findfile('test19.in','testdir')
 67 :exe "cd" cwd
 68 :/^results/,$w! test.out
 69 :q!
 70 ENDTEST
 71 
 72 results:
 73 
 74   number
 75   relativenumber
 76 
 77   number
 78   relativenumber
 79 :setlocal must NOT reset the other global value
 80 
 81   number
 82 
 83   relativenumber
 84 :setglobal MUST reset the other global value
 85 
 86   number
 87 
 88   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset rnu
[?25l[?1c22
 21
 20
 1
 18
 17
 16
 15
 1
 13
 12
 11
 10
  
  8
  7
  6
  5
  
  3
  2
  1
88    [?25h[?0c[?25l[?1c:[?25h[?0credir @g | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber:setlocal must NOT reset the other global value  number  relativenumber:setglobal MUST reset the other global value  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset rnu
[?25l[?1c 22 :$put =findfile('test19.in','testdir')
 21 :exe "cd" cwd
 20 :/^results/,$w! test.out
 19 :q!
 18 ENDTEST
 17 
 16 results:
 15 
 14   number
 13   relativenumber
 12 
 11   number
 10   relativenumber
  9 :setlocal must NOT reset the other global value
  8 
  7   number
  6 
  5   relativenumber
  4 :setglobal MUST reset the other global value
  3 
  2   number
  1 
  0   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c88    [?25h[?0c[?25l[?1c:[?25h[?0credir @h | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':set MUST reset the other global value'
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
89  :set MUST reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put g
[?25l[?1c2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
91    number[?25h[?0c[?25l[?1c
:[?25h[?0c$put h
[?25l[?1c2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
93    relativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3[?25h[?0c[?25l[?1c:[?25h[?0c" Tests may be run from a shadow directory, so an extra cd needs to be done to
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" get above src/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[?25l[?1c/<<PKGBUILDDIR>>[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
94  [?25h[?0c[?25l[?1c
:[?25h[?0c$put ='Testing findfile'
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
95  Testing findfile[?25h[?0c[?25l[?1c
:[?25h[?0c$put =''
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
96  [?25h[?0c[?25l[?1c
:[?25h[?0cset ssl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =findfile('test19.in','src/test*')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
97  src/testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0cexe "cd" cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3[?25h[?0c[?25l[?1c:[?25h[?0c$put =findfile('test19.in','test*')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
98  testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0c$put =findfile('test19.in','testdir')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
99  testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0cexe "cd" cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk3/testdir[?25h[?0c[?25l[?1c:[?25h[?0c/^results/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 28L, 356C written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test89 = test61; then \
#	  if diff test.out test89.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test89.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test89.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_arglist.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_arglist.vim" 318 lines, 6653 characters

Executing Test_argadd()
"a" [New File]bababababd

Executing Test_argc()
"a" [New File]
Executing Test_argdelete()
"a" [New File]a" [New File]
"bb

Executing Test_argedit()
"a" [New File]ba

"c" [New File]
"x

"y" [New File]

Executing Test_argidx()
"a" [New File]cabc

Executing Test_arglist_autocmd()
"Xxx1" 1L, 15C
"Xxx21L, 15C1L, 15C
"Xxx1" line 1 of 1 --100%-- col 1 ((3) of 2)
"Xxx21 of 2)
3 buffers wiped out

Executing Test_arglistid()
"a" [New File]
Executing Test_argpos()
"a" [New File]d

"c" [New File]
"ba

"d" [New File]
"a

Executing Test_argument()
"d" [New File]cbafile] --No lines in buffer-- (1 of 4)
"c3

a b [c] d
"c" [New File]

"x" [New File]
"z

Executing Test_argv()
"a" [New file] --No lines in buffer--

Executing Test_zero_argadd()
"b" [New file] --No lines in buffer-- (2 of 4)
"aFbedited" [New File]
"a" [New File]test_arglist.res" [New File][New] 0L, 0C written

Executed 11 tests
"messages" [New File][New] 15L, 326C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_assert.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_assert.vim" 127 lines, 2933 characters

Executing Test_assert_equal()

Executing Test_assert_exception()

Executing Test_assert_fail_fails()

Executing Test_assert_false()

Executing Test_assert_inrange()

Executing Test_assert_notequal()

Executing Test_assert_true()

Executing Test_compare_fail()

Executing Test_match()

Executing Test_notmatch()

Executing Test_user_is_happy()


oooo$$$$$$$$$$$$oooo

oo$$$$$$$$$$$$$$$$$$$$$$$$o

oo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$oo$   $$ o$

     o $ ooo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o$$ $$ $$o$

  oo $ $ "$      o$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$o$$$o$$o$

  "$$$$$$o$     o$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$o    $$$$$$$$

    $$$$$$$    $$$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$

    $$$$$$$$$$$$$$$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$$$$$$  """$$$

     "$$$""""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$

      $$$   o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$o

     o$$"   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o

     $$$    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" "$$$$$$ooooo$$$$o

    o$$$oooo$$$$$  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$   o$$$$$$$$$$$$$$$$$

    $$$$$$$$"$$$$   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     $$$$""""""""

   """"$$$$    "$$$$$$$$$$$$$$$$$$$$$$$$$$$$"      o$$$

"$$$o     """$$$$$$$$$$$$$$$$$$"$$"$$$

$$$o"$$""$$$$$$""""o$$$

$$$$oo$$$"

"$$$$o      o$$$$$$o"$$$$oo$$$$

"$$$$$oo     ""$$$$o$$$$$o   o$$$$""

""$$$$$oooo  "$$$o$$$$$$$$$"""

""$$$$$$$oo $$$$$$$$$$

""""$$$$$$$$$$$

$$$$$$$$$$$$

$$$$$$$$$$"

"$$$""""

[?25h[?0c[?25l[?1cExecuting Test_wrong_error_type()
"test_assert.res" [New File][New] 0L, 0C written

Executed 12 tests
"messages" 15L, 326C30L, 734C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_autochdir.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_autochdir.vim" 17 lines, 332 characters

Executing Test_set_filename()
"samples/Xtest" [New] 0L, 0C written
"test_autochdir.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"30L, 734C34L, 806C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_backspace_opt.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_backspace_opt.vim" 59 lines, 1673 characters

Executing Test_backspace_option()
"test_backspace_opt.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"34L, 806C38L, 886C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_breakindent.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_breakindent.vim" 241 lines, 7365 characters

Executing Test_breakindent01()|
    abcdefghijklmnop|
    qrstuvwxyzABCDEF|
    GHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent02()|
    abcdefghijklmnop|
    >>qrstuvwxyzABCD|
    >>EFGHIJKLMNOP  |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent03()|
    abcdefghijklmnop|
++  qrstuvwxyzABCDEF|
++  GHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent04()|
    abcdefghijklmnop|
  qrstuvwxyzABCDEFGH|
  IJKLMNOP|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent05()|
    abcdefghijklmnop|qrstuvwxyzABCD|EFGHIJKLMNOP  |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent06()|
    abcdefghijklmnop|
   qrstuvwxyzABCDEFG|
   HIJKLMNOP|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent07()  1 |
  2     abcdefghijkl|
?mnopqrstuvw|
?xyzABCDEFGH|
?IJKLMNOP   ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent07a()  1 |
  2     abcdefghijkl|
    ?    mnopqrstuvw|
    ?    xyzABCDEFGH|
    ?    IJKLMNOP   ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent08()  1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent08a()  1 $|
  2 ^Iabcdefghijklmn|
    #  opqrstuvwxyzA|
    #  BCDEFGHIJKLMN|
    #  OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent09()  1 $|
  2 ^Iabcdefghijklmn|
       #opqrstuvwxyz|
       #ABCDEFGHIJKL|
       #MNOP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent10()  1 |
  2 abcdefgh|
~ijklmnop|
~qrstuvwx|
~yzABCDEF|
~GHIJKLMN|
~OP      ||||~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 |
  2     abcdefghijkl|
~mnopqrstuvwx|
~yzABCDEFGHIJ|
~KLMNOP      ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 |
  2     abcdefghijkl|
~mnopqrstuvwx|
~yzABCDEFGHIJ|
~KLMNOP      ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent11()

Executing Test_breakindent12() 1 |
 2 >--->--->--->--->|
   ---{      ||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        {~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent13()

Executing Test_breakindent14()|
e|||||||||~                             
~                             
~                             
~                             
~                             
~                             
~                             
~                             
[No Name] [+]                  e~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                [No Name] [+]                                    " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent15()|1234567890|||||||||~                             
~                             
~                             
~                             
~                             
~                             
~                             
~                             
[No Name] [+]                  1234567890~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                [No Name] [+]                                    " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent16()1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            "test_breakindent.res" [New File][New] 0L, 0C written

Executed 18 tests
"messages" 38L, 886C59L, 1492C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_bufwintabinfo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_bufwintabinfo.vim" 116 lines, 3459 characters

Executing Test_get_buf_options()

Executing Test_get_win_options()

Executing Test_getbufwintabinfo()
"Xtestfile1" [New File]212

Already only one window
"test_bufwintabinfo.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"59L, 1492C65L, 1639C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cdo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cdo.vim" 205 lines, 5116 characters

Executing Test_cdo()
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile1" 3L, 18C33L, 18C

(1 of 1): Line3
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2

(5 of 8): Line2

(1 of 1): Line2

Executing Test_ldo()
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile1" 3L, 18C33L, 18C

(1 of 1): Line3
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2

(5 of 8): Line2

(1 of 1): Line2
"test_cdo.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"65L, 1639C70L, 1718C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_channel.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_channel.vim" 1641 lines, 47075 characters
"test_channel.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"70L, 1718C73L, 1758C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_charsearch.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_charsearch.vim" 62 lines, 1475 characters

Executing Test_charsearch()

Executing Test_search_cmds()
"test_charsearch.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"73L, 1758C78L, 1859C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cmdline.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cmdline.vim" 243 lines, 7346 characters

Executing Test_complete_list():e test

test1.intest85.ok

test1.oktest85.out

test1.outtest86.in

test103.intest86.ok

test103.oktest86.out

test103.outtest87.in

test104.intest87.ok

test104.oktest87.out

test104.outtest88.in

test107.intest88.ok

test107.oktest88.out

test107.outtest89.in

test108.intest89.ok

test108.oktest89.out

test108.outtest9.in

test11.intest9.ok

test11.oktest9.out

test11.outtest90.in

test12.intest90.ok

test12.oktest90.out

test12.outtest91.in

test14.intest91.ok

test14.oktest91.out

test14.outtest94.in

test15.intest94.ok

test15.oktest94.out

test15.outtest95.in

test17.intest95.ok

test17.oktest95.out

test17.outtest97.in

test17a.intest97.ok

test19.intest97.out

test19.oktest98.in

test19.outtest98.ok

test20.intest98.out

test20.oktest99.in

test20.outtest99.ok

test22.intest99.out

test22.oktest_alot.vim

test22.outtest_alot_latin.vim

test23.intest_alot_utf8.vim

test23.oktest_arglist.res

test23.outtest_arglist.vim

test24.intest_assert.res

test24.oktest_assert.vim

test24.outtest_assign.vim

test25.intest_autochdir.res

test25.oktest_autochdir.vim

test25.outtest_autocmd.vim

test26.intest_autocmd_option.in

test26.oktest_autocmd_option.ok

test26.outtest_autocmd_option.out

test28.intest_autoformat_join.in

test28.oktest_autoformat_join.ok

test28.outtest_autoformat_join.out

test29.intest_backspace_opt.res

test29.oktest_backspace_opt.vim

test29.outtest_breakindent.res

test3.intest_breakindent.vim

test3.oktest_bufwintabinfo.res

test3.outtest_bufwintabinfo.vim

test30.intest_cdo.res

test30.oktest_cdo.vim

test30.outtest_changelist.in

test31.intest_changelist.ok

test31.oktest_changelist.out

test31.outtest_channel.py

test32.intest_channel.res

test32.oktest_channel.vim

test32.outtest_channel_pipe.py

test33.intest_charsearch.res

test33.oktest_charsearch.vim

test33.outtest_close_count.in

test34.intest_close_count.ok

test34.oktest_close_count.out

test34.outtest_cmdline.vim

test36.intest_command_count.vim

test36.oktest_comparators.in

test36.outtest_comparators.ok

test37.intest_comparators.out

test37.oktest_crypt.vim

test37.outtest_cscope.vim

test38.intest_cursor_func.vim

test38.oktest_delete.vim

test38.outtest_diffmode.vim

test39.intest_digraph.vim

test39.oktest_display.vim

test39.outtest_erasebackword.in

test4.intest_erasebackword.ok

test4.oktest_erasebackword.out

test4.outtest_eval.in

test40.intest_eval.ok

test40.oktest_eval.out

test40.outtest_eval_func.vim

test41.intest_ex_undo.vim

test41.oktest_execute_func.vim

test41.outtest_expand.vim

test42.intest_expand_dllpath.vim

test42.oktest_expr.vim

test42.outtest_expr_utf8.vim

test43.intest_farsi.vim

test43.oktest_feedkeys.vim

test43.outtest_file_perm.vim

test44.intest_fileformat.vim

test44.oktest_filter_cmd.vim

test44.outtest_filter_map.vim

test45.intest_fixeol.in

test45.oktest_fixeol.ok

test45.outtest_fixeol.out

test48.intest_float_func.vim

test48.oktest_fnameescape.vim

test48.outtest_fnamemodify.vim

test49.intest_fold.vim

test49.oktest_functions.vim

test49.outtest_getcwd.in

test49.vimtest_getcwd.ok

test5.intest_getcwd.out

test5.oktest_gf.vim

test5.outtest_glob2regpat.vim

test50.intest_gn.vim

test50.oktest_goto.vim

test51.intest_gui.vim

test51.oktest_hardcopy.vim

test51.outtest_help_tagjump.vim

test52.intest_hide.vim

test52.oktest_history.vim

test52.outtest_hlsearch.vim

test53.intest_increment.vim

test53.oktest_increment_dbcs.vim

test53.outtest_insertcount.in

test54.intest_insertcount.ok

test54.oktest_insertcount.out

test54.outtest_job_fails.vim

test55.intest_join.vim

test55.oktest_json.vim

test55.outtest_jumps.vim

test56.intest_lambda.vim

test56.oktest_langmap.vim

test56.outtest_largefile.vim

test57.intest_lispwords.vim

test57.oktest_listchars.in

test57.outtest_listchars.ok

test58.intest_listchars.out

test58.oktest_listlbr.in

test58.outtest_listlbr.ok

test59.intest_listlbr.out

test59.oktest_listlbr_utf8.in

test59.outtest_listlbr_utf8.ok

test60.intest_listlbr_utf8.out

test60.oktest_man.vim

test60.outtest_mapping.vim

test60.vimtest_marks.vim

test64.intest_match.vim

test64.oktest_matchadd_conceal.vim

test64.outtest_matchadd_conceal_utf8.vim

test65.intest_menu.vim

test65.oktest_messages.vim

test65.outtest_mksession.vim

test66.intest_mksession_utf8.vim

test66.oktest_nested_function.vim

test66.outtest_netbeans.py

test67.intest_netbeans.vim

test67.oktest_normal.vim

test67.outtest_options.vim

test68.intest_packadd.vim

test68.oktest_partial.vim

test68.outtest_perl.vim

test69.intest_popup.vim

test69.oktest_profile.vim

test69.outtest_quickfix.vim

test7.intest_regexp_latin.vim

test7.oktest_regexp_utf8.vim

test7.outtest_reltime.vim

test70.intest_ruby.vim

test70.oktest_search.vim

test70.outtest_search_mbyte.in

test72.intest_search_mbyte.ok

test72.oktest_search_mbyte.out

test72.outtest_searchpos.vim

test73.intest_set.vim

test73.oktest_signs.vim

test73.outtest_smartindent.vim

test75.intest_sort.vim

test75.oktest_source_utf8.vim

test75.outtest_startup.vim

test77.intest_startup_utf8.vim

test77.oktest_stat.vim

test77.outtest_statusline.vim

test77a.intest_substitute.vim

test77a.oktest_syn_attr.vim

test78.intest_syntax.vim

test78.oktest_system.vim

test78.outtest_tabline.vim

test79.intest_tabpage.vim

test79.oktest_tagcase.vim

test79.outtest_tagjump.vim

test8.intest_textobjects.vim

test8.oktest_timers.vim

test8.outtest_true_false.vim

test80.intest_undo.vim

test80.oktest_unlet.vim

test80.outtest_usercommands.vim

test82.intest_utf8.in

test82.oktest_utf8.ok

test82.outtest_utf8.out

test83-tags2test_viminfo.vim

test83-tags3test_viml.vim

test83.intest_visual.vim

test83.oktest_window_cmd.vim

test83.outtest_window_id.vim

test84.intest_wordcount.in

test84.oktest_wordcount.ok

test84.outtest_wordcount.out

test85.intest_writefile.vim

:e test
"test" [New File]

Executing Test_complete_tab():e Xtest...file
"Xtestfile" 1L, 9C

Executing Test_complete_wildmenu():e Xtest...file1...

Xtestfile1  Xtestfile2  
Xtestfile1                                                        :e Xtest...Xtestfile1
Xtestfile1file1...Xtestfile1Xtestfile22:e Xtestfile2"Xtestfile2" 1L, 10C
Executing Test_expand_star_star():find **/fileXname...a/b/fileXname
"a/b/fileXname" 1L, 9C
"Xtestfile2" [New File]

Executing Test_getcompletion():cscope find 

a  c  d  e  f  g  i  s  t

:cscope find :sign list 

Testing

:sign list Executing Test_illegal_address()

Executing Test_paste_in_cmdline():abc "def ghi
:"abc def ghi
:"
:aaa "asdf bbb
:"aaa asdf bbb
:"
:aaa "/tmp/some bbb
:"aaa /tmp/some bbb
:"
:aaa veryl"ongword bbb
:"aaa verylongword bbb
:"
:aaa "a;b-c*d bbb
:"aaa a;b-c*d bbb
:"
:=toupper(getline(1))
:ASDF.X /TMP/SOME VERYLONGWORD A;B-C*D 
:"ASDF.X /TMP/SOME VERYLONGWORD A;B-C*D
:"

Executing Test_remove_char_in_cmdline():abc defef
:"abc ef
:"
:abc defdef
:"abcdef
:"
:abc def ghighi
:"abc ghi
:"
:abc def
:def"def
"test_cmdline.res" [New File][New] 0L, 0C written

Executed 8 tests
"messages"78L, 1859C89L, 2168C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_command_count.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_command_count.vim" 191 lines, 4742 characters

Executing Test_command_count_0()
"DoesNotExistEver" [New File]
Executing Test_command_count_1()

"a" [New File]

loading buffers

"b" [New File]

loading buffers

"c" [New File]

loading buffers

"d" [New File]

loading buffers

"e" [New File]

loading buffers
"c" [New File]beb

Executing Test_command_count_2()

"d" [New File]
"a

Already only one window
"x" [New File]
Already only one window

Executing Test_command_count_3()
"aaa" [New File]bbb
"ccc
"test_command_count.vim" 191L, 4742C

2 buffers deleted

Executing Test_command_count_4()
"cc" [New File]
"dd" [New File]

"ee" [New File]
"aa

"bb" [New File]

"cc" [New File]

"dd" [New File]

"ee" [New File]
"cc

"ee" [New File]

"ff" [New File]
"test_command_count.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"89L, 2168C97L, 2380C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_crypt.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_crypt.vim" 83 lines, 2590 characters

Executing Test_crypt_blowfish()
"Xtest.txt" [New File]:X

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

Enter same key again: ******

"Xtest.txt" [New][blowfish] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [blowfish] 3L, 98C

Executing Test_crypt_blowfish2()
"Xtest.txt" [New File]:X
Enter encryption key: ******
Enter same key again: ******

"Xtest.txt" [New][blowfish2] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: ******

"Xtest.txt" [blowfish2] 3L, 98C

Executing Test_crypt_zip()
"Xtest.txt" [New File]:X

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

Enter same key again: ******

"Xtest.txt" [New][crypted] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [crypted] 3L, 98C

Executing Test_head_only_2()
"Xtest.txt" [New File][New] 1L, 16C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [readonly] 1L, 16C

Executing Test_head_only_3()
"Xtest.txt" [New File][New] 1L, 16C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: ******

"Xtest.txt" [readonly] 1L, 16C

Executing Test_uncrypt_blowfish()
"Xtest.txt" [New File][converted][New][noeol] 1L, 80C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [blowfish] 2L, 27C

Executing Test_uncrypt_blowfish2()
"Xtest.txt" [New File][converted][New][noeol] 1L, 103C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: *******

"Xtest.txt" [blowfish2] 2L, 44C

Executing Test_uncrypt_zip()
"Xtest.txt" [New File][converted][New][noeol] 1L, 45C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [converted][crypted] 2L, 26C"test_crypt.res" [New File][converted][New] 0L, 0C written
Executed 8 tests
"messages"97L, 2380C108L, 2667C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cscope.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cscope.vim" 279 lines, 10568 characters
"test_cscope.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"108L, 2667C111L, 2706C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_diffmode.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_diffmode.vim" 237 lines, 4954 characters

Executing Test_diff_fold_sync()

Executing Test_diffget_diffput()

Executing Test_diffoff()  -------------------------------------|
  -------------------------------------|
  Two|
  Three|||||||||||||||||||  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    
[No Name] [+]                             One                                                                             Two  Three                                    ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     [No Name] [+]                           Two                                    
Three                                  
~                                      
~                                      
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  OneTwoThree~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  

Executing Test_filler_lines()

7 more lines

10 more lines

Executing Test_setting_cursor()
"Xtest1" [New File]
90 more lines
"Xtest1" [New] 91L, 262C written2" [New File]
100 more lines
"Xtest2"[New] 101L, 293C written101L, 293C191L, 262C

Executing Test_vert_split()
"Xtest" [New] 5L, 25C written"Xtest2" [New] 6L, 29C written

"Nop" [Modified][Not edited] line 4 of 6 --66%-- col 3"Xtest" 5L, 25C2" 6L, 29C
"test_diffmode.vim" 237L, 4954Cres" [New File][New] 0L, 0C written

Executed 6 tests
"messages"111L, 2706C120L, 2928C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_digraph.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_digraph.vim" 461 lines, 14928 characters

Executing Test_digraph_cmndline()
Executing T

Executing Test_digraphs()
Executing Test_digraphs_option()
Executing Test_digraphs_output()

Executing Test_loadkeymap()"test_digraph.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"120L, 2928C128L, 3123C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_display.vim
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/blowfish.o blowfish.c
[?25h[?8c[?25h[?0c[?25l[?1c"test_display.vim" 39 lines, 849 characters[?25h[?0cExecuting Test_display_foldcolumn()e more noise blah blah<82|
> more stuff here||||||||||~                        
~                        
~                        
~                        
~                        
~                        
~                        
~                        
~                        
[No Name] [+]             ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     [No Name]                                             " Test for displaying stuff
if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum, nr) abort
  let line = []
  for j in range(a:nr)
    for c in range(1, winwidth(0))call add(line, nr2char(screenchar(a:lnum+j, c)))
test_display.vim                                                                  e more noise blah blah<|
  82> more stuff here    ||||||||||  
  
  
  
  
  
  
  
  ~                      ~                      ~                      ~                      ~                      ~                      ~                      ~                      ~                      
[No Name] [+]             ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     [No Name]                                             " Test for displaying stuff
if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum, nr) abort
  let line = []
  for j in range(a:nr)
    for c in range(1, winwidth(0))call add(line, nr2char(screenchar(a:lnum+j, c)))
test_display.vim                                                                "test_display.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"128L, 3123C132L, 3199C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_farsi.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_farsi.vim" 84 lines, 2881 characters

Executed 2 tests
"messages"[converted] 132L, 3199C[converted] 137L, 3295C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fnameescape.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_fnameescape.vim" 21 lines, 467 characters

Executing Test_fnameescape()
"Xspa ce"[New] 21L, 467C written
"Xemark![New] 21L, 467C written
"test_fnameescape.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"137L, 3295C141L, 3368C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fold.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_fold.vim" 97 lines, 3328 characters

Executing Test_address_fold()

7 lines yanked

7 lines yanked

7 lines yanked

7 lines yanked

7 lines yanked

8 lines yanked

10 lines yanked

4 lines yanked

Executing Test_indent_fold()

Executing Test_indent_fold2()
"test_fold.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"141L, 3368Cgcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/charset.o charset.c
147L, 3495C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gf.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gf.vim" 33 lines, 1138 characters

Executing Test_gf_url()
"test_gf.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"147L, 3495C151L, 3554C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gn.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gn.vim" 93 lines, 2821 characters

Executing Test_gn_command()/[u]niquepattern/s
/a:0\@!\zs\d\+
"test_gn.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"151L, 3554C155L, 3617C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gui.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gui.vim" 36 lines, 838 characters
"test_gui.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"155L, 3617C158L, 3653C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hardcopy.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hardcopy.vim" 62 lines, 2001 characters

Executing Test_printheader_parsing()

Executing Test_printmbfont_parsing()

Executing Test_printoptions_parsing()

Executing Test_with_syntax()Printing page 1 (0%)Printed: test_hardcopy.vim
"test_hardcopy.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"158L, 3653C165L, 3836C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hide.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hide.vim" 97 lines, 2443 characters

Executing Test_hide()
"Xf1" [New File]
"Xf1" [New File]
"Xf212121

one|two
"Xf1" [New File]
"Xf212
"test_hide.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"165L, 3836C169L, 3895C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_history.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_history.vim" 106 lines, 3567 characters

Executing Test_History()

Executing Test_Search_history_window()/a
/b
/a
b
a
b
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Tests for the history functions

test_history.vim                                                                /a
/b
/
/
/
/
/~                                                                              ~                                                                              ~                                                                              ~                                                                              [Command Line]                                                                  [?25h[?0c[?25l[?1c/a
"test_history.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"169L, 3895C174L, 4000C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hlsearch.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hlsearch.vim" 34 lines, 1013 characters

Executing Test_hlsearch()/aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
~                                                                               [No Name] [+]                                                                   " Test for v:hlsearch

function! Test_hlsearch()
  new
  call setline(1, repeat(['aaa'], 10))
  set hlsearch nolazyredraw
  let r=[]
  " redraw is needed to make hlsearch highlight the matches
  exe "normal! /aaa\<CR>" | redraw
  let r1 = screenattr(1, 1)
test_hlsearch.vim                                                               aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa


/aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa//aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa//aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa


"test_hlsearch.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"174L, 4000C178L, 4067C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_increment.vim" 760 lines, 19011 characters

Executing Test_normal_increment_01()
"dummy" [New File]
Executing Test_normal_increment_02()
"dummy" [New File]
Executing Test_normal_increment_03()
"dummy" [New File]
Executing Test_visual_increment_01()
"dummy" [New File]
Executing Test_visual_increment_02()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_03()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_04()
"dummy" [New File]
Executing Test_visual_increment_05()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_06()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_07()
"dummy" [New File]5 lines changed
Executing Test_visual_increment_08()
"dummy" [New File]
Executing Test_visual_increment_09()
"dummy" [New File]
Executing Test_visual_increment_10()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_11()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_12()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_13()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_14()
"dummy" [New File]
Executing Test_visual_increment_15()
"dummy" [New File]
Executing Test_visual_increment_16()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_17()
"dummy" [New File]
Executing Test_visual_increment_18()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_19()
"dummy" [New File]
Executing Test_visual_increment_20()
"dummy" [New File]
Executing Test_visual_increment_21()
"dummy" [New File]
Executing Test_visual_increment_22()
"dummy" [New File]
Executing Test_visual_increment_23()
"dummy" [New File]
Executing Test_visual_increment_24()
"dummy" [New File]
Executing Test_visual_increment_25()
"dummy" [New File]
Executing Test_visual_increment_26()
"dummy" [New File]
Executing Test_visual_increment_27()
"dummy" [New File]
Executing Test_visual_increment_28()
"dummy" [New File]
Executing Test_visual_increment_29()
"dummy" [New File]
Executing Test_visual_increment_30()
"dummy" [New File]
Executing Test_visual_increment_31()
"dummy" [New File]
Executing Test_visual_increment_32()
"dummy" [New File]_31" [New File]

Executing Test_visual_increment_33()
"dummy" [New File]
Executing Test_visual_increment_34()
"dummy" [New File]
Executing Test_visual_increment_35()
"dummy" [New File]
Executing Test_visual_increment_36()
"dummy" [New File]
Executing Test_visual_increment_37()
"dummy" [New File]
Executing Test_visual_increment_38()
"dummy" [New File]"test_increment.res" [New File][New] 0L, 0C written

Executed 41 tests
"messages" 178L, 4067C222L, 5628C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment_dbcs.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_increment_dbcs.vim" 30 lines, 604 characters

Executing Test_increment_dbcs_1()
"test_increment_dbcs.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"[converted] 222L, 5628C[converted] 226L, 5709C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_job_fails.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_job_fails.vim" 19 lines, 598 characters

Executing Test_job_start_fails()[?25h[?0c[?25l[?1c
"test_job_fails.res" [New File]gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/crypt.o crypt.c
[New] 0L, 0C written

Executed 1 test
"messages"226L, 5709C230L, 5784C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_json.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_json.vim" 287 lines, 10700 characters

Executing Test_js_decode()

Executing Test_js_encode()

Executing Test_json_decode()

Executing Test_json_encode()

"test_json.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"230L, 5784C237L, 5934C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_langmap.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_langmap.vim" 28 lines, 628 characters

Executing Test_langmap()
"test_langmap.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"237L, 5934C241L, 5999C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_man.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_man.vim" 60 lines, 1358 characters

Executing Test_g_ft_man_open_mode()


Cannot find a 'vim'.

Executing Test_nomodifiable()


Cannot find a 'vim'.
"test_man.res" [New File]gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/crypt_zip.o crypt_zip.c
[New] 0L, 0C written

Executed 2 tests
"messages"241L, 5999C246L, 6102C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_marks.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_marks.vim" 26 lines, 775 characters

Executing Test_Incr_Marks()

Executing Test_Restore_DelMark()1 more line; before #2  0 seconds ago
1 line less; after #2  0 seconds agomore line; before #2  0 seconds ago
"test_marks.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"246L, 6102C251L, 6202C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_matchadd_conceal.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_matchadd_conceal.vim" 289 lines, 9276 characters[?25h[?0cExecuting Test_clearmatches()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #ZThisZisZaZTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_default_conceal_char()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #+This+is+a+Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_and_conceallevel_3()gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/dict.o dict.c
#ThisisaTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #Thisisa Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_and_syn_conceal()Inductive - : Type := | true : - | false : -.

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Inductive - : Type := | true : - | false : -.

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_repeat_conceal_with_syntax_off()TARGET_TARGETTARGET
t_ttsimple_matchadd()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_simple_matchadd_and_conceal()#XThisXisXaXTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_syn_and_match_conceal()#ZThisZisZaZTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #*This*is*a*Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_using_matchaddpos()#Pis a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       "test_matchadd_conceal.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"251L, 6202C263L, 6616C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_mksession.vim" 104 lines, 2315 characters

Executing Test_mksession()
"/tmp/vDgaz8g/0" [New] 9L, 203C written

search hit BOTTOM, continuing at TOP
"test_mksession.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"[converted] 263L, 6616C[converted] 267L, 6685C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_mksession_utf8.vim" 104 lines, 2328 characters

Executing Test_mksession_utf8()
"/tmp/v1w9Ni4/0" [New] 9L, 215C written

search hit BOTTOM, continuing at TOP
"test_mksession_utf8.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"267L, 6685C271L, 6764C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_nested_function.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_nested_function.vim" 67 lines, 1305 charactersgcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/diff.o diff.c


Executing Test_max_nesting()

Executing Test_nested_argument()

[]

Executing Test_nested_functions()
"test_nested_function.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"271L, 6764C277L, 6909C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_netbeans.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_netbeans.vim" 80 lines, 2145 characters
"test_netbeans.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"277L, 6909C280L, 6950C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_normal.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_normal.vim" 2280 lines, 58740 characters

Executing Test_normal00_optrans()
Executing Test_normal01_keymodel()
4 lines yankedExecuting Test_normal02_selectmode()10 fewer lines
Executing Test_normal02_selectmode2():set im
[?25h[?0c[?25l[?1c:set noim

Executing Test_normal03_join()

Executing Test_normal04_filter():.!sed -e 's/^/|    /'
[?25h[?0cone
[?25l[?1c:.!sed -e 's/^/|    /'
[?25h[?0c[?25l[?1c:.!
:!echo one
[?25h[?0c
[No write since last change]

one
[?25l[?1c:.!!
[?25h[?0c
[?25l[?1cExecuting Test_normal05_formatexpr()

Executing Test_normal05_formatexpr_newbuf()
"another" [New File]
Executing Test_normal05_formatexpr_setopt()

Executing Test_normal06_formatprg():.,$!./Xsed_format.sh
[?25h[?0c[?25l[?1c7 lines filtered:.,$!./Xsed_format.sh
[?25h[?0c[?25l[?1c7 lines filtered
Executing Test_normal07_internalfmt()
7 fewer lin
Executing Test_normal08_fold()

Executing Test_normal09_operatorfunc()

11 substitutions on 11 lines

Executing Test_normal09a_operatorfunc()

11 substitutions on 11 lines

Executing Test_normal10_expand()

Executing Test_normal11_showcmd()
Executing Test_normal12_nv_error()

Executing Test_normal13_help()
"help.txt" [readonly] 225L, 8437C

Executing Test_normal14_page()

Executing Test_normal14_page_eol()
Executing Test_normal15_z_scroll_vert()

Executing Test_normal16_z_scroll_hor()

Executing Test_normal17_z_scroll_hor2()

Executing Test_normal18_z_fold()

Executing Test_normal19_z_spell()
Word 'goood' added to ./Xspellfile.add
search hit BOTTOM, continuing at TOPWord 'goood' added to ./Xspellfile.add2 goood' added to ./Xspellfile.add/tmp/vV93BzE/11removed from /tmp/vV93BzE/11goood' added to /tmp/vV93BzE/11removed from /tmp/vV93BzE/11added to ./Xspellfile.addremoved from ./Xspellfile.add2 goood' added to ./Xspellfile.addremoved from ./Xspellfile.addgoood' added to ./Xspellfile2.add
Executing Test_normal20_exmode()

Executing Test_normal21_nv_hat()
"Xfoobar" [New File]ile2" [New File]
Executing Test_normal22_zet()

Executing Test_normal23_K()
"version8.txt" [readonly] 14932L, 562906Cline 1 of 14932 --0%-- col 1
"man" [New File]aa%bb" [New File]
"cc|dd
:! man --pager=cat 'man'[?25h[?0c
[No write since last change]

stdin not open for reading!

shell returned 2


[?25l[?1cExecuting Test_normal24_rot13()

Executing Test_normal25_tag()
"help.txt" [readonly] 225L, 8437C
"change.txt" [readonly] 1830L, 74768C
"help.txt" [readonly] 225L, 8437C
"change.txt" [readonly] 1830L, 74768C
"help.txt" [readonly] 225L, 8437C
"insert.txt" [readonly] 2003L, 82815Cline 49 of 2003 --2%-- col 7-49

Executing Test_normal26_put()

Executing Test_normal27_bracket()

21 substitutions on 21 lines

Executing Test_normal28_parenthesis()

Executing Test_normal29_brace()
17 fewer lines4 fewer lines3
Executing Test_normal30_changecase()

Executing Test_normal31_r_cmd()
Executing Test_normal32_g_cmd1()
/x_foo?abc
Executing Test_normal33_g_cmd2()/[1-8]
search hit BOTTOM, continuing at TOP
9 substitutions on 9 linesblock of 3 lines yanked5
Executing Test_normal34_g_cmd3()

Executing Test_normal35_g_cmd4()

Executing Test_normal36_g_cmd5()

Executing Test_normal37_g_cmd6()
"1.txt" [New File]23

Executing Test_normal38_nvhome()

Executing Test_normal39_cw()
Executing Test_normal40_ctrl_bsl()
Executing Test_normal41_insert_reg()=a
=a
=a

Executing Test_normal42_halfpage()

Executing Test_normal43_textobject1()

Executing Test_normal44_textobjects2()

Executing Test_normal45_drop()

Executing Test_normal46_ignore()

Executing Test_normal47_autocmd()

Executing Test_normal47_visual_buf_wipe()

Executing Test_normal48_wincmd()

Executing Test_normal49_counts()

Executing Test_normal50_commandline()q:  :xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :set im
:set noim
:.!sed -e 's/^/|    /'
:.!
:!echo one
:.!!
:
[Command Line]                                                                  [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:^M   

Executing Test_normal51_FileChangedRO()
"Xreadonly.log" 1L, 4C
Error detected while processing ...13]..Test_normal51_FileChangedRO:
line    8:W10: Warning: Changing a readonly file
Executing Test_normal52_rl()3_digraph()

Executing Test_normal54_Ctrl_bsl()
"test_normal.res" [New File]gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/digraph.o digraph.c
[New] 0L, 0C written

Executed 61 tests
"messages" 280L, 6950C348L, 9314C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_packadd.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_packadd.vim" 238 lines, 8288 characters

Executing Test_colorscheme()

Executing Test_colorscheme_completion():colorscheme ...one')
:ccolorscheme one')
:cacolorscheme one')
:calcolorscheme one')
:callcolorscheme one')
:call colorscheme one')acolorscheme one')dcolorscheme one')dcolorscheme one')(colorscheme one')lcolorscheme one')icolorscheme one'),colorscheme one') colorscheme one')'colorscheme one')
:colorscheme ...one...three')
:ccolorscheme three')
:cacolorscheme three')
:calcolorscheme three')
:callcolorscheme three')
:call colorscheme three')acolorscheme three')dcolorscheme three')dcolorscheme three')(colorscheme three')lcolorscheme three')icolorscheme three'),colorscheme three') colorscheme three')'colorscheme three')
:colorscheme ...one...three...wo')
:ccolorscheme two')
:cacolorscheme two')
:calcolorscheme two')
:callcolorscheme two')
:call colorscheme two')acolorscheme two')dcolorscheme two')dcolorscheme two')(colorscheme two')lcolorscheme two')icolorscheme two'),colorscheme two') colorscheme two')'colorscheme two')
:colorscheme ...one...three...wo...')
:ccolorscheme ')
:cacolorscheme ')
:calcolorscheme ')
:callcolorscheme ')
:call colorscheme ')acolorscheme ')dcolorscheme ')dcolorscheme ')(colorscheme ')lcolorscheme ')icolorscheme '),colorscheme ') colorscheme ')'colorscheme ')

Executing Test_helptags()

Executing Test_packadd()
"./Xdir/pack/mine/opt/mytest/plugin/test.vim" [New File][New] 1L, 24C writtenalso/loaded.vim" [New File][New] 1L, 29C writtenftdetect/test.vim" [New File[New] 1L, 26C written

Executing Test_packadd_completion():packadd ...pluginA')
:cpackadd pluginA')
:capackadd pluginA')
:calpackadd pluginA')
:callpackadd pluginA')
:call packadd pluginA')apackadd pluginA')dpackadd pluginA')dpackadd pluginA')(packadd pluginA')lpackadd pluginA')ipackadd pluginA'),packadd pluginA') packadd pluginA')'packadd pluginA')
:packadd ...pluginA...B')
:cpackadd pluginB')
:capackadd pluginB')
:calpackadd pluginB')
:callpackadd pluginB')
:call packadd pluginB')apackadd pluginB')dpackadd pluginB')dpackadd pluginB')(packadd pluginB')lpackadd pluginB')ipackadd pluginB'),packadd pluginB') packadd pluginB')'packadd pluginB')
:packadd ...pluginA...B...C')
:cpackadd pluginC')
:capackadd pluginC')
:calpackadd pluginC')
:callpackadd pluginC')
:call packadd pluginC')apackadd pluginC')dpackadd pluginC')dpackadd pluginC')(packadd pluginC')lpackadd pluginC')ipackadd pluginC'),packadd pluginC') packadd pluginC')'packadd pluginC')
:packadd ...pluginA...B...C...')
:cpackadd ')
:capackadd ')
:calpackadd ')
:callpackadd ')
:call packadd ')apackadd ')dpackadd ')dpackadd ')(packadd ')lpackadd ')ipackadd '),packadd ') packadd ')'packadd ')

Executing Test_packadd_noload()
"./Xdir/pack/mine/opt/mytest/plugin/test.vim" [New File][New] 1L, 24C written

Executing Test_packloadall()

Executing Test_runtime()
"test_packadd.res" [New File][New] 0L, 0C written

Executed 8 tests
"messages"348L, 9314C359L, 9597C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_perl.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_perl.vim" 123 lines, 3037 characters

Executing Test_SvREFCNT()
"t" [New File]gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/edit.o edit.c

Executing Test_VIM_package()

Executing Test_change_buffer()/^1

Executing Test_evaluate_list()/^2
search hit BOTTOM, continuing at TOP

Executing Test_perldo()
"__TEST__" [New File]test_perl.vim"123L, 3037C

Executing Test_perleval()

Executing Test_stdio()

&VIM::Msg

STDOUT

STDERR
"test_perl.res" [New File][New] 0L, 0C written

Executed 7 tests
"messages"359L, 9597C369L, 9825C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_profile.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_profile.vim" 146 lines, 6247 characters

Executing Test_profile_completion():profile ...continue file func pause start
:"profile continue file func pause start
:"
:profile start test_prof...ile.vim
:"profile start test_profile.vim
:"

Executing Test_profile_errors()

Executing Test_profile_file()

Executing Test_profile_func()
"test_profile.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"369L, 9825C376L, 9994C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_quickfix.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_quickfix.vim" 1693 lines, 46351 characters

Executing Test_Autocmd()
"F1" [New File]
(1 of 1): Line 10
"F2" [New File]
(1 of 2): Line 10

Executing Test_Autocmd_Exception()

Executing Test_adjust_lnum()

Already only one window
"Xqftestfilec" 20L, 131C

9 fewer lines

Already only one window
"Xqftestfilel" 20L, 131C

9 fewer lines

Executing Test_browse()
"Xqftestfile1" 20L, 131C

(1 of 4): Line5

"Xqftestfile2" 20L, 131C

(3 of 4): Line10
"Xqftestfile1" 20L, 131C

(2 of 4): Line6
"Xqftestfile2" 20L, 131C

(4 of 4): Line11

"Xqftestfile1" 20L, 131C

(1 of 4): Line5

(1 of 4): Line5

"Xqftestfile2" 20L, 131C

(3 of 4): Line10
"Xqftestfile1" 20L, 131C

(2 of 4): Line6
"Xqftestfile2" 20L, 131C

(4 of 4): Line11

"Xqftestfile1" 20L, 131C

(1 of 4): Line5

Executing Test_caddbuffer_to_empty()
"autocmd.txt" [readonly] 1486L, 61530C

(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run

(2 of 1486):

Executing Test_caddbuffer_wrong()
"Xqftestfile2" [New File]
Executing Test_caddexpr_wrong()

(1 of 1):

(1 of 1):

Executing Test_cage()

error list 9 of 10; 1 errors      :cgetexpr ['Xtestfile2:2:2:Line2']

error list 10 of 10; 1 errors     :cgetexpr ['Xtestfile3:3:1:Line3']

error list 8 of 10; 1 errors      :cgetexpr ['Xtestfile1:1:3:Line1']

error list 10 of 10; 1 errors     :cgetexpr ['Xtestfile3:3:1:Line3']

error list 9 of 10; 1 errors      :lgetexpr ['Xtestfile2:2:2:Line2']

error list 10 of 10; 1 errors     :lgetexpr ['Xtestfile3:3:1:Line3']

error list 8 of 10; 1 errors      :lgetexpr ['Xtestfile1:1:3:Line1']

error list 10 of 10; 1 errors     :lgetexpr ['Xtestfile3:3:1:Line3']

Executing Test_cbottom()

Executing Test_cbuffer()
"Xtestfile7" [New File]
(1 of 2): Line 700
"Xtestfile7" [New File]

(1 of 2): Line 700

Executing Test_cexpr()

Executing Test_cfile()
"Xtestfile1" [New File]

(1 of 2): Line 700

"Xtestfile1" [New File]

(1 of 2): Line 700

Executing Test_cgetexpr_works()

Executing Test_clist()

 2 Xtestfile1:1 col 3: Line1

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 1: non-error 1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 5: non-error 3

 6 Xtestfile3:3 col 1: Line3

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 1: non-error 1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 5: non-error 3

 6 Xtestfile3:3 col 1: Line3

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

Executing Test_cwindow()~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       Xtestfile1|1 col 3| Line1                                                       Xtestfile2|2 col 2| Line2
Xtestfile3|3 col 1| Line3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [Quickfix List]                                                                 ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       Xtestfile1|1 col 3| Line1                                                       Xtestfile2|2 col 2| Line2
Xtestfile3|3 col 1| Line3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [Location List]                                                                 Executing Test_dirstack_cleanup()

(1 of 1): 0

Executing Test_duplicate_buf()
"DoesNotExist" [New File]2" [New File]

Xgrepthis
"Xgrepthis" line 1 of 2 --50%-- col 1

(1 of 2): this one

Xgrepthis
(1 of 2): this one

Executing Test_efm()

Executing Test_efm1()
"Xtestfile" 21L, 903C

(1 of 20): 1506-045 (S) Undeclared identifier fd_set.

(20 of 20): What is the title of the quickfix window?

Executing Test_efm2()
"Xtestfile" [New File]

Executing Test_efm_dirstack()

Executing Test_efm_ignore_continuations()

Executing Test_errortitle()

Executing Test_grep()

Already only one window[?25h[?0ctest_quickfix.vim:1418:  " Grep_Test_Text: Match 1
test_quickfix.vim:1419:  " Grep_Test_Text: Match 2
test_quickfix.vim:1424:  silent Xgrep Grep_Test_Text: test_quickfix.vim
test_quickfix.vim:1420:  " GrepAdd_Test_Text: Match 1
test_quickfix.vim:1421:  " GrepAdd_Test_Text: Match 2
test_quickfix.vim:1431:  silent Xgrepadd GrepAdd_Test_Text: test_quickfix.vim
[?25l[?1cAlready only one window[?25h[?0ctest_quickfix.vim:1418:  " Grep_Test_Text: Match 1
test_quickfix.vim:1419:  " Grep_Test_Text: Match 2
test_quickfix.vim:1424:  silent Xgrep Grep_Test_Text: test_quickfix.vim
test_quickfix.vim:1420:  " GrepAdd_Test_Text: Match 1
test_quickfix.vim:1421:  " GrepAdd_Test_Text: Match 2
test_quickfix.vim:1431:  silent Xgrepadd GrepAdd_Test_Text: test_quickfix.vim
[?25l[?1cExecuting Test_helpgrep()
"autocmd.txt" [readonly] 1486L, 61530C

(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run
"autocmd.txt" [readonly] line 1 of 1486 --0%-- col 1
(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run

Executing Test_history()

error list 1 of 10; 1 errors      :  cexpr 'Xtestfile:Line search text'

error list 1 of 2; 1 errors:  cexpr 'Xtestfile:Line search text'

error list 1 of 3; 13 errors      :lexpr ""

error list 1 of 2; 13 errors      :lexpr ""

Executing Test_invalid_efm()

Executing Test_locationlist()

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

W19: Deleting augroup that is still in use
Executing Test_locationlist_cross_tab_jump()
"loclistfoo" 1L, 11Cbar1L, 11C[?25h[?0cloclistfoo:1:loclistfoo

[?25l[?1cAlready only one window

Executing Test_locationlist_curwin_was_closed()

W19: Deleting augroup that is still in use
Executing Test_long_lines()"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Executing Test_nomem()
"/<<PKGBUILDDIR>>/src/vim-gtk3/alloc.h" 21L, 485C

Error detected while processing function RunTheTest[13]..Test_nomem:

line    2:

E342: Out of memory!  (allocating 4096 bytes)
"/<<PKGBUILDDIR>>/src/vim-gtk3/alloc.h" 21L, 485C

line    5:

E342: Out of memory!  (allocating 4096 bytes)
"/<<PKGBUILDDIR>>/src/vim-gtk3/alloc.h" 21L, 485C

line    8:

E342: Out of memory!  (allocating 1025 bytes)
"/<<PKGBUILDDIR>>/src/vim-gtk3/alloc.h" 21L, 485C

line   11:

E342: Out of memory!  (allocating 1025 bytes)
"/<<PKGBUILDDIR>>/src/vim-gtk3/alloc.h" 21L, 485C

line   14:

E342: Out of memory!  (allocating 1025 bytes)

Executing Test_qf_property()

Executing Test_qf_title()

Executing Test_quickfix_set_list_with_act()

Executing Test_quickfix_was_changed_by_autocmd()

error list 9 of 10; 1 errors      :setqflist()

W19: Deleting augroup that is still in use
error list 9 of 10; 1 errors      :setloclist()

error list 9 of 10; 1 errors      :setloclist()

W19: Deleting augroup that is still in use
Executing Test_setqflist()"Xtestfile" [New File]
(2 of 2):

(3 of 3):

(2 of 2):

(3 of 3):

Executing Test_setqflist_empty_middle()

test_quickfix.vim
"test_quickfix.vim" 1693L, 46351C

(1 of 49): func Test_clist()

test_quickfix.vim
(1 of 13): " With an empty list, command should return error

test_quickfix.vim
(1 of 2): " number of matches is unknown

error list 9 of 10; 13 errors     :vimgrep empty test_quickfix.vim

error list 8 of 10; 49 errors     :vimgrep Test_ test_quickfix.vim

error list 9 of 10; 0 errors      :setqflist()

error list 10 of 10; 2 errors     :vimgrep matches test_quickfix.vim

test_quickfix.vim
(1 of 49): func Test_clist()

test_quickfix.vim
(1 of 13): " With an empty list, command should return error

test_quickfix.vim
(1 of 2): " number of matches is unknown

error list 9 of 10; 13 errors     :lvimgrep empty test_quickfix.vim

error list 8 of 10; 49 errors     :lvimgrep Test_ test_quickfix.vim

error list 9 of 10; 0 errors      :setloclist()

error list 10 of 10; 2 errors     :lvimgrep matches test_quickfix.vim

Executing Test_setqflist_empty_older()

test_quickfix.vim
(1 of 24): \ 'Does anyone know what is the problem and how to correction it?',

test_quickfix.vim
(1 of 21): " Go back two lists

test_quickfix.vim
(1 of 7): " Add three quickfix/location lists

error list 8 of 10; 24 errors     :vimgrep one test_quickfix.vim

error list 9 of 10; 21 errors     :vimgrep two test_quickfix.vim

error list 10 of 10; 7 errors     :vimgrep three test_quickfix.vim

test_quickfix.vim
(1 of 24): \ 'Does anyone know what is the problem and how to correction it?',

test_quickfix.vim
(1 of 21): " Go back two lists

test_quickfix.vim
(1 of 7): " Add three quickfix/location lists

error list 8 of 10; 24 errors     :lvimgrep one test_quickfix.vim

error list 9 of 10; 21 errors     :lvimgrep two test_quickfix.vim

error list 10 of 10; 7 errors     :lvimgrep three test_quickfix.vim

Executing Test_switchbuf()
"Xqftestfile1" 20L, 131C220L, 131C1" line 1 of 20 --5%-- col 1

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" line 1 of 20 --5%-- col 1

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16

(1 of 6): Line5

(2 of 6): Line6

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C220L, 131C

(1 of 6): Line5

(2 of 6): Line6

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" 20L, 131C

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" 20L, 131C

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16

Already only one window
"Xqftestfile1" 20L, 131C220L, 131C320L, 131C

Executing Test_two_windows()
"one" [New File]two

Executing Test_vimgreptitle()

file
"file" [New File]

Cannot open file "file"
"test_quickfix.res" [New File][New] 0L, 0C written

Executed 42 tests
"messages" 376L, 9994C421L, 11297C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_ruby.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_ruby.vim" 34 lines, 820 characters

Executing Test_ruby_change_buffer()/^1

Executing Test_ruby_evaluate_dict()

{"a"=>"foo", "b"=>123}

Executing Test_ruby_evaluate_list()/^2
search hit BOTTOM, continuing at TOP
"test_ruby.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"421L, 11297C427L, 11443C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_search.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_search.vim" 296 lines, 8731 characters

Executing Test_search_cmdline()/foobar
/the
search hit BOTTOM, continuing at TOP/thes
/foobar
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
?the
?the
?the
?the
?the
?the
?the
?the
?the
?the
search hit TOP, continuing at BOTTOM/thes
/thes
/thes
/thes
/thei
/theis
/theiss
/themthe\>
Executing Test_search_cmdline2()/the
/the
/the
/the
/the
/the
/the
/foo
6 their
  7 the
  8 them
  9 these
 10 foobar
[No Name] [+]                                                                   " Test for the search command

func Test_search_cmdline()
  if !exists('+incsearch')
    return
  endif
  " need to disable char_avail,
  " so that expansion of commandline works
  call test_disable_char_avail(1)
  new
  call setline(1, ['  1', '  2 these', '  3 the', '  4 their', '  5 there', '  6their', '  7 the', '  8 them', '  9 these', ' 10 foobar'])
  " Test 1
  " CTRL-N / CTRL-P skips through the previous search history
  set noincsearch
  :1
test_search.vim                                                                 Executing Test_searchpair()

Executing Test_use_sub_pat()
"test_search.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"427L, 11443C434L, 11605C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_signs.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_signs.vim" 199 lines, 6383 characters

Executing Test_sign()
"foo" [New File]a  b  c xd                                                                                 ~
[No Name] [+]                                                                   " Test for signs

if !has('signs')
  finish
endif
test_signs.vim                                                                  ~                                                                               ~                                                                               ~                                                                               ~                                                                               foo                                                                               a
  b
x c
  d
[No Name] [+]                                                                     a  bx c  d  ~   "foo" [New file] --No lines in buffer--
"barF
Executing Test_sign_completion():sign ...define jump list place undefine unplace
:"sign define jump list place undefine unplace
:"
:sign define Sign ...icon= linehl= text= texthl=
:"sign define Sign icon= linehl= text= texthl=
:"
:sign define Sign linehl=Spell...Bad SpellCap SpellLocal SpellRare
:"sign define Sign linehl=SpellBad SpellCap SpellLocal SpellRare
:"
:sign define Sign icon=Xsig...nOne XsignTwo
:"sign define Sign icon=XsignOne XsignTwo
:"
:sign undefine ...Sign1 Sign2
:"sign undefine Sign1 Sign2
:"
:sign place 1 ...buffer= file= line= name=
:"sign place 1 buffer= file= line= name=
:"
:sign place 1 name=...Sign1 Sign2
:"sign place 1 name=Sign1 Sign2
:"
:sign unplace 1 ...buffer= file=
:"sign unplace 1 buffer= file=
:"
:sign list ...Sign1 Sign2
:"sign list Sign1 Sign2
:"
:sign jump 1 ...buffer= file=
:"sign jump 1 buffer= file=
:"

Executing Test_sign_delete_buffer()

Executing Test_sign_invalid_commands()

Executing Test_sign_undefine_still_placed()
"foobar" [New File]test_signs.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"434L, 11605C442L, 11818C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_smartindent.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_smartindent.vim" 14 lines, 376 characters

Executing Test_nosmartindent()/some
search hit BOTTOM, continuing at TOP"test_smartindent.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"442L, 11818C446L, 11893C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_startup.vim" 185 lines, 4581 characters

Executing Test_after_comes_later()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c1: /<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xbefore.vim

  2: /<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xhere/plugin/here.vim

  3: /<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xhere/pack/foo/start/f

oobar/plugin/foo.vim

  4: /<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xafter/plugin/later.vi

m
  5: /<<PKGBUILDDIR>>/src/vim-gtk3/testdir/Xafter.vim
[?25h[?0c

[?25l[?1cExecuting Test_compatible_args()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1cError detected while processing /<<PKGBUILDDIR>>/src/vim-gtk3/tes

tdir/Xafter.vim:

line    2:

E528: Must specify a ' value: viminfo+=nviminfo
[?25h[?0c
[?25h[?8c[?25h[?0c
[?25l[?1cExecuting Test_file_args()[?25h[?0c[?25h[?8c[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
3 files to edit
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
2 files to edit
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
4 files to edit

[?25l[?1cExecuting Test_help_arg()[?25h[?0c
[?25l[?1cExecuting Test_read_stdin()[?25h[?0c[?25l[?1c"-stdin-" 1 line, 10 characters[?25h[?8c[?25h[?0c"Xtestout" [New File] 1 line, 10 characters written
[?25h[?0c
Vim: Reading from stdin...

[?25l[?1cExecuting Test_startup_script()

Executing Test_startuptime()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
[?25l[?1c"test_startup.res" [New File][New] 0L, 0C written

Executed 7 tests
"messages"446L, 11893C456L, 12144C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_startup_utf8.vim" 64 lines, 1366 characters

Executing Test_read_fifo_utf8()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"/dev/fd/63" [readonly] 2 lines, 24 characters

"Xtestout" [New File] 2 lines, 24 characters written
[?25h[?0c

[?25l[?1cExecuting Test_read_stdin_utf8()[?25h[?0c[?25l[?1c"-stdin-" 2 lines, 24 characters[?25h[?8c[?25h[?0c"Xtestout" [New File] 2 lines, 24 characters written
[?25h[?0c
Vim: Reading from stdin...
[?25l[?1c"test_startup_utf8.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"456L, 12144C461L, 12255C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_stat.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_stat.vim" 64 lines, 1598 characters

Executing Test_checktime()
"Xtest.tmp" 1L, 13C[?25h[?0c[?25l[?1c1L, 25C

Executing Test_existent_directory()

Executing Test_existent_file()[?25h[?0c

[?25l[?1cExecuting Test_nonexistent_file()

Executing Test_win32_symlink_dir()
"test_stat.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"461L, 12255C469L, 12456C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_substitute.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_substitute.vim" 41 lines, 1151 characters

Executing Test_multiline_subst()

search hit BOTTOM, continuing at TOP
3 substitutions on 3 lines
3 substitutions on 2 lines
"test_substitute.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"469L, 12456C473L, 12532C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_syntax.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_syntax.vim" 164 lines, 4101 characters

Executing Test_syn_iskeyword()CREATE TABLE FOOBAR(
    DLTD_BY VARCHAR2(100)
);

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for syntax and syntax iskeyword option

if !has("syntax")
  finish
endif

func GetSyntaxItem(pat)
  let c = ''
  let a = ['a', getreg('a'), getregtype('a')]
  0
test_syntax.vim                                                                 
syntax iskeyword not set

syntax iskeyword @,48-57,_,192-255CREATE TABLE FOOBAR(
    DLTD_BY VARCHAR2(100)
);

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for syntax and syntax iskeyword option

if !has("syntax")
  finish
endif

func GetSyntaxItem(pat)
  let c = ''
  let a = ['a', getreg('a'), getregtype('a')]
  0
test_syntax.vim                                                                 
syntax iskeyword not set

Executing Test_syntax_after_reload()
"Xsomefile" [New File][New] 2L, 12C written
"other" [New File]Xsomefile" 2L, 12C

Executing Test_syntax_completion():syn ...case clear cluster conceal enable include iskeyword keyword list manual ma

tch off on region reset spell sync"syn case clear cluster conceal enable include iskeyword keyword list manual match off on region reset spell sync
:syn case ...ignore match
:"syn case ignore match
:"
:syn spell ...default notoplevel toplevel
:"syn spell default notoplevel toplevel
:"
:syn sync ...ccomment clear fromstart linebreaks= linecont lines= match maxlines=

minlines= region"syn sync ccomment clear fromstart linebreaks= linecont lines= match maxlines= minlines= region
:syn list ...Boolean Character ColorColumn Comment Conceal Conditional Constant Cu

rsor CursorColumn CursorLine CursorLineNr Debug Define Delimiter DiffAdd DiffCha

nge DiffDelete DiffText Directory EndOfBuffer Error ErrorMsg Exception Float Fol

dColumn Folded Function Identifier Ignore IncSearch Include Keyword Label LineNr

Macro MatchParen ModeMsg MoreMsg NONE NonText Normal Number Operator Pmenu Pmen

uSbar PmenuSel PmenuThumb PreCondit PreProc Question Quote Repeat SYN Search Sig

nColumn Special SpecialChar SpecialComment SpecialKey SpellBad SpellCap SpellLoc

al SpellRare Statement StatusLine StatusLineNC StorageClass String Structure Tab

Line TabLineFill TabLineSel Tag Title Todo Type Typedef Underlined VertSplit Vis

ual VisualNOS WarningMsg WildMenu lCursor luaBlock luaBraceError luaComment luaC

ond luaConstant luaElse luaElseifThen luaError luaFor luaFunc luaFunction luaFun

ctionBlock luaIfThen luaIn luaInnerComment luaLabel luaLoopBlock luaNumber luaOp

erator luaParen luaParenError luaRepeat luaSpecial luaStatement luaString luaStr

ing2 luaTable luaTableBlock luaThenEnd luaTodo perlAnglesDQ perlAnglesSQ perlArr

ow perlAutoload perlBraces perlBracesDQ perlBracesSQ perlBracketsDQ perlBrackets

SQ perlCharacter perlComment perlConditional perlControl perlDATA perlElseIfErro"syn list Boolean Character ColorColumn Comment Conceal Conditional Constant Cursor CursorColumn CursorLine CursorLineNr Debug Define Delimiter DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer Error ErrorMsg Exception Float FoldColumn Folded Function Identifier Ignore IncSearch Include Keyword Label LineNr Macro MatchParen ModeMsg MoreMsg NONE NonText Normal Number Operator Pmenu PmenuSbar PmenuSel PmenuThumb PreCondit PreProc Question Quote Repeat SYN Search SignColumn Special SpecialChar SpecialComment SpecialKey SpellBad SpellCap SpellLocal SpellRare Statement StatusLine StatusLineNC StorageClass String Structure TabLine TabLineFill TabLineSel Tag Title Todo Type Typedef Underlined VertSplit Visual VisualNOS WarningMsg WildMenu lCursor luaBlock luaBraceError luaComment luaCond luaConstant luaElse luaElseifThen luaError luaFor luaFunc luaFunction luaFunctionBlock luaIfThen luaIn luaInnerComment luaLabel luaLoopBlock luaNumber luaOperator luaParen luaParenError luaRepeat luaSpecial luaStatement luaString luaString2 luaTable luaTableBlock luaThenEnd luaTodo perlAnglesDQ perlAnglesSQ perlArrow perlAutoload perlBraces perlBracesDQ perlBracesSQ perlBracketsDQ perlBracketsSQ perlCharacter perlComment perlConditional perlControl perlDATA perlElseIfErr
:syn match ...Boolean Character ColorColumn Comment Conceal Conditional Constant C
:"syn match Boolean Character ColorColumn Comment Conceal Conditional Constant 
:"

Executing Test_syntax_list()
"../memfile_test.c" [readonly] 143L, 3142C

--- Syntax items ---


--- Syntax items ---

"Xsomefile" [New File]

Executing Test_syntime()
"../memfile_test.c" [readonly] 143L, 3142C/* vi:set ts=8 sts=4 sw=4 noet:
 *
 * VIM - Vi IMproved    by Bram Moolenaar
 *
 * Do ":help uganda"  in Vim to read copying and usage conditions.
 * Do ":help credits" in Vim to see a list of people who contributed.
 * See README.txt for an overview of the Vim source code.
 */

/*
 * memfile_test.c: Unittests for memfile.c
 * Mostly by Ivan Krasilnikov.
 */

#undef NDEBUG
#include <assert.h>

/* Must include main.c because it contains much more than just main() */
#define NO_VIM_MAIN
#include "main.c"

/* This file has to be included because the tested functions are static */
#include "memfile.c"
"Xsomefile" [New File]
"test_syntax.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"473L, 12532C481L, 12729C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_system.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_system.vim" 92 lines, 2910 characters

Executing Test_System()
"Xdummy" [New File]
Executing Test_system_exmode()
"test_system.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"481L, 12729C486L, 12824C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_textobjects.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_textobjects.vim" 43 lines, 946 characters

Executing Test_inner_block_with_cpo_M_left_backslash()

Executing Test_inner_block_with_cpo_M_right_backslash()

Executing Test_inner_block_without_cpo_M()
"test_textobjects.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"486L, 12824C492L, 13023C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_undo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_undo.vim" 265 lines, 6936 characters

Executing Test_U_command()Executing Test_global_local_undolevels()
"one" [New File]
6 fewer lines; before #8  0 seconds ago
"two" [New File]
3 fewer lines; before #11  0 seconds ago
"three" [New File]
Executing Test_insert_expr()=setline('.','1234')
1 line less; before #4  0 seconds ago3=setline('.','1234')
1 line less; before #7  0 seconds ago=string(123)
1 line less; before #9  0 seconds ago

Executing Test_undo_del_chars()
1 change; before #3  0 seconds ago21

1 change; before #6  1 seconds ago5
4s; after #3
1; before #21

3 changes; after #6  1 seconds ago3 changes; before #7  0 seconds ago

3 changes; before #1  3 seconds ago

3 changes; after #6  3 seconds ago

3 changes; after #9  0 seconds ago

Executing Test_undo_write()
"Xtest" [New File]"Xtest" [New] 1L, 12C written"Xtest" 3L, 20C written1 line less; before #4  0 seconds ago

2 fewer lines; before #2  0 seconds ago

1 line less; before #1  0 seconds ago

1 more line; after #1  0 seconds ago

2 more lines; after #3  0 seconds ago

1 more line; after #4  0 seconds ago

Executing Test_undofile_earlier()
"Xfile" [New File]"Xfile" [New] 3L, 14C written3L, 14C

Finished reading undo file Xundofile

3 fewer lines; before #1  2017/03/08 18:38:37

Executing Test_undojoin()1 line less; before #2  0 seconds ago2 fewer lines; before #3  0 seconds ago

Executing Test_undolist()1 change; before #2  0 seconds agoExecuting Test_undotree()
1 change; before #2  0 seconds ago
"Xtest" [New] 1L, 4C written
"test_undo.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"492L, 13023C504L, 13330C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_usercommands.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_usercommands.vim" 104 lines, 2527 characters

Executing Test_Ambiguous()

Executing Test_CmdUndefined()

Executing Test_cmdmods()
"test_usercommands.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"504L, 13330C510L, 13458C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viminfo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_viminfo.vim" 515 lines, 13496 characters

Executing Test_cmdline_history()

Executing Test_cmdline_history_order()

Executing Test_global_vars()

Executing Test_viminfo_bad_syntax()

Executing Test_viminfo_encoding()
"Xviminfo" [converted] 73L, 3437C

Executing Test_viminfo_file_mark_tabclose()
"Xtestfileintab" [New File]viminfo" 83L, 3614C

Executing Test_viminfo_file_mark_zero_time()

Executing Test_viminfo_file_marks()
"ten" [New File]again" [New File]
"thirty" [New File]
"twen
"again" [New File]fourty" [New File]
"Xviminfo" 90L, 3412C

Executing Test_viminfo_jumplist()
"testbuf" [New File]/20
/30
/last pos
/15
/last pos
?30
/15
/last pos
?30
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here

Executing Test_viminfo_marks()
"bufa" [New File]b

Executing Test_viminfo_oldfiles()

Executing Test_viminfo_read_and_write()

Executing Test_viminfo_registers()
"test_viminfo.res" [New File][New] 0L, 0C written

Executed 13 tests
"messages" 510L, 13458C526L, 13970C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viml.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_viml.vim" 1316 lines, 31904 characters

Error detected while processing /<<PKGBUILDDIR>>/src/vim-gtk3/tes

tdir/test_viml.vim:

line  432:

E492: Not an editor command: ^Iasdf

line  444:

E492: Not an editor command: ^Iasdf

line  452:

E492: Not an editor command: asdf

line  455:

E492: Not an editor command: asdf | Xpath 'p'

Error detected while processing function T8_F:

line    5:

E492: Not an editor command: ^I    asdf

line    7:

E492: Not an editor command: ^I    asdf | Xpath 'd'

line   19:

E492: Not an editor command: ^I    asdf

line   21:

E492: Not an editor command: ^I    asdf | Xpath 'l'

line   29:

E121: Undefined variable: novar

E15: Invalid expression: novar^I^I" returns (default return value 0)

Error detected while processing function T8_G:

line    5:

E492: Not an editor command: ^I    asdf^I^I" returns -1

Error detected while processing function T8_H:

line    5:

E492: Not an editor command: ^I    asdf^I^I" returns -1

Error detected while processing function F[2]..G[2]..H[2]..I:

line    2:

E492: Not an editor command:     asdf^I^I" error

Error detected while processing /<<PKGBUILDDIR>>/src/vim-gtk3/tes

tdir/test_viml.vim:

line  663:

E15: Invalid expression: | strlen("\"") | Xpath 'j'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'j'

line  673:

E15: Invalid expression: | strlen("\"") | Xpath 'n'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'n'

line  682:

E15: Invalid expression: | strlen("\"") | Xpath 'r'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'r'

line  717:

E492: Not an editor command:     asdf^I^I" error

1
line  787:

E492: Not an editor command:     asdf^I^I" error

line  794:

E492: Not an editor command:     asdf^I^I" error

line  817:

E121: Undefined variable: asdf

E15: Invalid expression: asdf

line  828:

E121: Undefined variable: asdf

E15: Invalid expression: asdf | Xpath 'f' | endwhile | Xpath 'g'

Error detected while processing function F:

line    8:

E121: Undefined variable: g:boolvar

E15: Invalid expression: g:boolvar^I" possibly undefined

E121: Undefined variable: g:boolvar

E15: Invalid expression: g:boolvar | Xpath 'd' | else | Xpath 'e' | endif

Executing Test_arg_abort()

Executing Test_braces_skipped()

Executing Test_curlies()

Executing Test_defining_functions()

Executing Test_echo_and_string()

foo bar

'foo bar'

-1.2

-1.2

string

function('string')

{'a': {...}}

{'a': {...}}

[[...]]

[[...]]

[{}, {}, {}]

[{}, {}, {}]

{'a': {}, 'b': {}}

{'a': {}, 'b': {}}

[[], [], []]

[[], [], []]

{'a': [], 'b': []}

{'a': [], 'b': []}

[{'one': 'yes', 'two': 'yes', 'three': 'yes'}, {...}, {...}]

[{'one': 'yes', 'two': 'yes', 'three': 'yes'}, {'one': 'yes', 'two': 'yes', 'th

ree': 'yes'}, {'one': 'yes', 'two': 'yes', 'three': 'yes'}]

{'a': {'one': 'yes', 'two': 'yes', 'three': 'yes'}, 'b': {...}}

{'a': {'one': 'yes', 'two': 'yes', 'three': 'yes'}, 'b': {'one': 'yes', 'two':

'yes', 'three': 'yes'}}

[[1, 2, 3], [...], [...]]

[[1, 2, 3], [1, 2, 3], [1, 2, 3]]

{'a': [1, 2, 3], 'b': [...]}

{'a': [1, 2, 3], 'b': [1, 2, 3]}

Executing Test_endwhile_function()

Executing Test_endwhile_script()

   function T1_F()

1      Xpath 'a'

2      let first = 1

3      while 1

4Xpath 'b'

5if first

6Xpath 'c'

7let first = 0

8break

9else

10Xpath 'd'

11return

12endif

13     endwhile

   endfunction"/tmp/vlEY0A3/0" [noeol] 16L, 299C
13 substitutions on 13 lines
Pattern not found: ^\s*$
"/tmp/vlEY0A3/0" 13L, 248C written
"test_viml.vim" 1316L, 31904C
   function T1_G()
1      Xpath 'h'
2      let first = 1
3      while 1
4Xpath 'i'
5if first
6Xpath 'j'
7let first = 0
8break
9else
10Xpath 'k'
11return

12endif

13if 1    " unmatched :if

14     endwhile

   endfunction"/tmp/vlEY0A3/1" [noeol] 17L, 334C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vlEY0A3/1" 14L, 281C written
"test_viml.vim" 1316L, 31904C
Executing Test_error_in_function()
Executing Test_error_in_script()
Executing Test_expr_parsing()
Executing Test_finish()
   function T4_F()
1      if 1
2Xpath 'a'
3let loops = 3
4while loops > 0"    3:  2:     1:
5Xpath 'b' . loops
6if (loops == 2)
7Xpath 'c' . loops
8return

9Xpath 'd' . loops

10endif

11Xpath 'e' . loops

12let loops = loops - 1

13endwhile

14Xpath 'f'

15     else

16Xpath 'g'

17     endif

   endfunction"/tmp/vlEY0A3/2" [noeol] 20L, 504C
17 substitutions on 17 lines
Pattern not found: ^\s*$
"/tmp/vlEY0A3/2" 17L, 445C written
"test_viml.vim" 1316L, 31904C
Executing Test_func_abort()
Executing Test_if_bar_fail()
Executing Test_if_fail()
Executing Test_if_while()
Executing Test_num64()
Executing Test_return()
Executing Test_script_lines()
Executing Test_skip()
Executing Test_type()
Executing Test_while_fail()
"test_viml.res" [New File][New] 0L, 0C written
Executed 21 tests
"messages" 526L, 13970C550L, 14609C written[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_visual.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_visual.vim" 25 lines, 506 characters

Executing Test_block_shift_multibyte()

Executing Test_dotregister_paste()"test_visual.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"550L, 14609C555L, 14723C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_window_id.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_window_id.vim" 103 lines, 2714 characters

Executing Test_win_getid()
"one" [New File]twohree" [New File]
"four" [New File]ive

Executing Test_win_getid_curtab()
"X" [New File]test_window_id.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"555L, 14723C560L, 14827C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_writefile.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_writefile.vim" 16 lines, 490 characters

Executing Test_WriteFile()
"test_writefile.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"560L, 14827C564L, 14896C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_latin.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot_latin.vim" 7 lines, 280 charactersgcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/eval.o eval.c


Executing Test_eow_with_optional()

Executing Test_equivalence_re1()

Executing Test_equivalence_re2()

Executing Test_nested_backrefs()

Executing Test_recursive_substitute()
"test_alot_latin.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"[converted] 564L, 14896C[converted] 572L, 15112C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot_utf8.vim" 11 lines, 440 characters[?25h[?0cExecuting Test_classes_re1()

Executing Test_classes_re2()

Executing Test_equivalence_re1()

Executing Test_equivalence_re2()

Executing Test_match_using_multibyte_conceal_char()#ˑThisˑisˑaˑTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " A series of tests that can run in one Vim invocation.
" This makes testing go faster, since Vim doesn't need to restart.

" These tests use utf8 'encoding'.  Setting 'encoding' is already done in
" runtest.vim.  Checking for the multi_byte feature is in the individual
" files, so that they can be run by themselves.

source test_expr_utf8.vim
source test_matchadd_conceal_utf8.vim
source test_regexp_utf8.vim
test_alot_utf8.vim                                                              Executing Test_source_latin()
"Xscript"[New] 2L, 44C written
Executing Test_source_utf8()"Xscript"[New] 2L, 42C written:%s/àx/--à1234--/g
:%s/Àx/--À1234--/g

Executing Test_strcharpart()

Executing Test_strgetchar()
"test_alot_utf8.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"572L, 15112C584L, 15447C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot.vim" 48 lines, 1233 characters

Executing Test_BufEnter()
"NewFile" [New File]Xdir" is a directory

Executing Test_abbreviation()Executing Test_abs()

Executing Test_acos()

Executing Test_asin()

Executing Test_atan()

Executing Test_atan2()

Executing Test_augroup_deleted()

W19: Deleting augroup that is still in use
Executing Test_augroup_warning()
W19: Deleting augroup that is still in useentering

Executing Test_auto_partial_rebind()

Executing Test_autocmd_bufunload_avoiding_SEGV_01()
"aa.txt" [New File]
"bb.txt" [New File]

Executing Test_autocmd_bufunload_avoiding_SEGV_02()
"a.txt" [New File]
"test_alot.vim" 48L, 1233C

Executing Test_autocmd_bufunload_with_tabnext()

Executing Test_autocmd_bufwinleave_with_tabfirst()
"a.txt" [New File]
Executing Test_bind_in_python()

Executing Test_break_undo()Executing Test_bufunload()

Executing Test_cancel_ptjump()

Already only one window:ptjump word
  # pri kind tagfile

  1 Fwordfile2

cmd2

  2 Fwordfile1

cmd1

Type number and <Enter> (empty cancels): 
"help.txt" [readonly] 225L, 8437C

Executing Test_caught_error_in_statusline()source test_messages.vim
source test_partial.vim
source test_popup.vim
source test_reltime.vim
source test_searchpos.vim
source test_set.vim
source test_sort.vim
source test_statusline.vim
source test_syn_attr.vim
source test_tabline.vim
source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis here
new line here

                                                                                Executing Test_caught_error_in_tabline()                                                                                source test_partial.vim
source test_popup.vim
source test_reltime.vim
source test_searchpos.vim
source test_set.vim
source test_sort.vim
source test_statusline.vim
source test_syn_attr.vim
source test_tabline.vim
source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis here
new line here

test_alot.vim                                                                   Executing Test_ceil()

Executing Test_closure_counter()

Executing Test_closure_refcount()

Executing Test_closure_unlet()

Executing Test_color_names()

Executing Test_compare_null_dict()

Executing Test_compare_partials()

Executing Test_compl_vim_cmds_after_register_expr()=s:test_func()
 AAAAA_Group             BufAdd                  BufCreate               BufDelete               BufEnter                BufFilePost             BufFilePre              BufHidden               BufLeave                BufNew                  BufNewFile              BufRead                 BufReadCmd              BufReadPost             BufReadPre              BufUnload               BufWinEnter             BufWinLeave             BufWipeout              BufWrite                BufWriteCmd             BufWritePost           Executing Test_complete_no_undo()=UndoComplete()
xxx
aaa
yyy
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   test_tabpage.vimtest_tagcase.vimtest_tagjump.vimtest_timers.vimtest_true_false.vimtest_unlet.vimsource test_window_cmd.vimsource test_options.vime hereTest3: text with a (parenthesis here
test_alot.vim                                                                   January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       1 change; before #2  0 seconds ago=UndoComplete()

bbb
yyy~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
source test_tab
source test_tagJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        1 change; before #4  0 seconds ago=UndoComplete()

yyy~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
source test_tab
source test_tagJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December           
January

~              
~              
~              
~              
~              
~              
~              
~              February       
March          
April          
May            
June           
July           
August         
September      -- INSERT --January        1 change; before #5  0 seconds ago

Executing Test_completefunc_opens_new_window_one()

search hit BOTTOM, continuing at TOPExecuting Test_completefunc_opens_new_window_two()

search hit BOTTOM, continuing at TOPExecuting Test_completefunc_with_scratch_buffer()January        
February
March    
April  
May     January        
February       info2-1
2-2
2-3

February
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis hereJanuary        
February       
March          
April          
May            

[Scratch]                                                                       test_alot.vim                                                                   [Scratch] [Preview]                                                             [Scratch]                                                                       
March~              
~              
~              
~              
~              January        
February       
March          
April          
May            3
3
3[Scratch]                                                                       [Scratch]                                                                       February       
March          
April
~              
~              
~              
~              
~              January        
February       
March          
April          
May            4
4
4[Scratch]                                                                       [Scratch]                                                                       March          
April          Executing Test_completefunc_works()

search hit BOTTOM, continuing at TOPthreedef       
threeDEF       threedef       
threeDEF       
threeDEF
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~              
~              
~              
~              
~              threedef       
threeDEF       Executing Test_completion_ctrl_e_without_autowrap()Executing Test_cos()

Executing Test_cosh()

Executing Test_cursorhold_insert()[?25h[?0c[?25l[?1cExecuting Test_cursorhold_insert_ctrl_x()[?25h[?0c[?25l[?1cExecuting Test_cursorline_keep_col()

Executing Test_curswant_with_autocommand()
Executing Test_cycle_partial_job()

Executing Test_cyclic_dict_arg()

Executing Test_cyclic_list_arg()

Executing Test_delete_myself()[?25h[?0c

[?25l[?1cExecuting Test_dict()

Executing Test_dictionary()

Executing Test_dir_delete()

Executing Test_early_bar()

Executing Test_empty_buffer()

Executing Test_equal()

Executing Test_ex_undo()
"ex-undo" [New File]
1 line less; before #3  0 seconds ago

1 line less; after #1  0 seconds ago

2 fewer lines; before #1  0 seconds ago

Executing Test_execute_list()

Executing Test_execute_string()

this

theend

something

Executing Test_existing()

Executing Test_exp()

Executing Test_expand()

Executing Test_feedkeys_x_with_empty_string()Executing Test_file_delete()
"Xfile" [New File][New] 2L, 4C written

Executing Test_file_perm()

Executing Test_fileformat_after_bw()
"a.txt" [New File]ex-undo" [New File]

Executing Test_filetype_valid()

Executing Test_filter()
"Xdoesnotmatch" [New File]
"Xwillmatch" [New File]ex-undo" [New File]
Executing Test_filter_cmd_completion():filter ^I"=execute('let cmdline = getcmdline()')
:filter ^I:filter pat^I"=execute('let cmdline = getcmdline()')
:filter pat^I:filter /pat^I"=execute('let cmdline = getcmdline()')
:filter /pat^I:filter /pat/^I"=execute('let cmdline = getcmdline()')
:filter /pat/^I:filter pat pri...nt"=execute('let cmdline = getcmdline()')
:filter pat print:filter /pat/ pri...nt"=execute('let cmdline = getcmdline()')
:filter /pat/ print:filter #pat# pri...nt"=execute('let cmdline = getcmdline()')
:filter #pat# printExecuting Test_filter_fails()

Executing Test_filter_map_dict_expr_funcref()

Executing Test_filter_map_dict_expr_string()

Executing Test_filter_map_list_expr_funcref()

Executing Test_filter_map_list_expr_string()

Executing Test_floor()

Executing Test_fmod()

Executing Test_fnamemodify()
"test_alot.vim" 48L, 1233C

Executing Test_func_unref()

Executing Test_funcref()

0
Executing Test_function_in_dict()

Executing Test_function_with_funcref()

Executing Test_gD()

Executing Test_gD_char()

Executing Test_gD_comment()

Executing Test_gD_inline_comment()

Executing Test_gD_string()

Executing Test_gD_string_same_line()

Executing Test_gD_too()

Executing Test_gd()

Executing Test_gd_comment()

Executing Test_gd_comment_in_string()

Executing Test_gd_inline_comment()

Executing Test_gd_inline_comment_body()

Executing Test_gd_inline_comment_only()

Executing Test_gd_kr_style()

Executing Test_gd_missing_braces()

Executing Test_gd_not_local()

Executing Test_gd_string()

Executing Test_gd_string_in_comment()

Executing Test_gd_string_only()

Executing Test_gd_trailing_comment()

Executing Test_gd_trailing_multiline_comment()

Executing Test_get_partial_items()

Executing Test_getreg_empty_list()

Executing Test_global_local_lispwords()

Executing Test_help_complete()

Executing Test_help_respect_current_file_lang()
"testdoc.abx" [readonly] 2L, 25Cja[readonly] 2L, 25Cline 1 of 2 --50%-- col 2-9txt[readonly] 2L, 25C
Executing Test_help_tagjump()"help.txt" [readonly] 225L, 8437C
"options.txt" [readonly] 8739L, 370255Cline 7652 of 8739 --87%-- col 7-49
"eval.txt" [readonly][converted] 10613L, 408230C line 2406 of 10613 --22%-- col 1
"options.txt" [readonly] line 1320 of 8739 --15%-- col 4-25
"cmdline[readonly] 1147L, 46822C

Executing Test_if()

Executing Test_info()

Executing Test_invalid()

Executing Test_invalid_submatch()

Executing Test_isnan()

Executing Test_join_with_count()

Executing Test_keymap_valid()

Executing Test_keyword_jump()
"Xtestfile" 9L, 141C

Executing Test_lambda_call_lambda_from_lambda()

Executing Test_lambda_capture_by_reference()

Executing Test_lambda_circular_reference()

Executing Test_lambda_closure_counter()

Executing Test_lambda_combination()

Executing Test_lambda_delfunc()

Executing Test_lambda_do_not_share_local_variable()

Executing Test_lambda_fails()

Executing Test_lambda_feature()

Executing Test_lambda_refer_local_variable_from_other_scope()

Executing Test_lambda_scope()

Executing Test_lambda_share_scope()

Executing Test_lambda_side_effect()

Executing Test_lambda_with_a_var()

Executing Test_lambda_with_filter()

Executing Test_lambda_with_map()

Executing Test_lambda_with_partial()

Executing Test_lambda_with_sort()

Executing Test_lambda_with_timer()[?25h[?0c

[?25l[?1c1[?25h[?0c
[?25l[?1c2[?25h[?0c
[?25l[?1c3[?25h[?0c
[?25l[?1c4[?25h[?0c
[?25l[?1c5[?25h[?0c
[?25l[?1c6[?25h[?0c
[?25l[?1c7[?25h[?0c
[?25l[?1c8[?25h[?0c
[?25l[?1cExecuting Test_load_menu()

Executing Test_log()

Executing Test_log10()

Executing Test_loop_over_null_list()

Executing Test_map_ctrl_c_insert()Executing Test_map_ctrl_c_visual():'<,'>$put ='vmap works'

Executing Test_map_cursor()1 line less; before #8  0 seconds ago

Executing Test_map_feedkeys():call feedkeys(".", "in")
:call feedkeys(".", "in")
Executing Test_map_langmap():call append(line('$'), '+')

Executing Test_map_meta_quotes()Executing Test_match()

abcdefghijklmnopq
TEST2: CTRL-C |<ctrl-c>A|
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   abcdΣabcdef
TEST2: CTRL-C |<ctrl-c>A|
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchaddpos()12345
NP
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   12345 
NP 
vmap works 
 
Test1: text with a (here some more text) 
Test1: text with a (here some more text) 
 
 
Test2: text wit a (here some more text [und undo]) 
fooc d 
fooc d 
+ 
+ 
bbbb 
bbbb 
cccc 
bbbb 
+ 
-foo- 
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   012345 
NP 
vmap works 
 
Test1: text with a (here some more text) 
Test1: text with a (here some more text) 
 
 
Test2: text wit a (here some more text [und undo]) 
fooc d 
fooc d 
+ 
+ 
bbbb 
bbbb 
cccc 
bbbb 
+ 
-foo- 
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   1234567890
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   1234567890
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchaddpos_using_negative_priority()x
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   x
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchstrpos()

Executing Test_max_min_errors()

Executing Test_messages()

hello0x
-1 match priority
vmap works   hello1234567898

hello9xhello9
Executing Test_missing_attr()

Executing Test_move_cursor()

Executing Test_named_function_closure()

Executing Test_no_type_checking()

Executing Test_noinsert_complete()=s:complTest1()
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       x
-1 match priority
vmap worksTest1: text with a (here some more text)
Test1: text with a (here some more text)Test2: text wit a (here some more text [und undo])fooc d[No Name]                                                                       source         
soundfold      ndfold=s:complTest2()

~              
~              source         
soundfold      Executing Test_non_zero_arg()

Executing Test_not_existing()

Executing Test_not_lamda()

Executing Test_omnifunc_with_check()

search hit BOTTOM, continuing at TOPfour1
~                                                                               ~                                                                               ~                                                                               [+]four1          
four2          2
~              
~              four1          
four2          four1          
four2          
~              
~              four1          
four2          
four3          
four4          
four5          
four6          search hit BOTTOM, continuing at TOP1
~              
~              
~              
~              
~              
~              four1          
four2          2
~              
~              four1          
four2          four1          
four2          3
~              
~              four1          
four2          
four3          
four4          
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          search hit BOTTOM, continuing at TOP1
~              
~              
~              
~              
~              
~              four1          
four2          2
~              
~              four1          
four2          four1          
four2          3
~              
~              four1          
four2          
four3          
four4          four3          
four4          
four5          
four6          4
~              
~              
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          5
~              
~              
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          four4          
four5          Executing Test_oneshot()[?25h[?0c

[?25l[?1cExecuting Test_option_value()

Executing Test_options()
"option-window" [New File]

Executing Test_partial_args()

Executing Test_partial_dict()

Executing Test_partial_exists()

Executing Test_partial_implicit()

Executing Test_partial_string()

Executing Test_path_keep_commas()

Executing Test_paused()[?25h[?0c

[?25l[?1cExecuting Test_popup_complete()=ListMonths()

June
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               June           
July           -- INSERT --June           
July           =ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       

February       
March          


March          
April          April          
May            May            
June           June           
July           July           
August         =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
June           
July           =ListMonths()

~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

June~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJune           
July           ~              
~              June           
July           -- INSERT --June           
July=ListMonths()
ne
~              
~              June           
July           ~              
~              June           
July           -- INSERT --June           
Julyly
~              
~              July           
July           =ListMonths()
ne
~              
June           
July           ~              
~              June           
July           -- INSERT --June           
July=ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December        
February
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
February       =ListMonths()

January~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
June           
July           
June~              
~              
~              January        
June           
July           -- INSERT --January        
June           ly
~              
~              
~              January        
June           
July           June           
July           
J~              
~              
~              January        
June           
July           
July           =ListMonths()

January
~              
~              
~              January        
June           
July           
June~              
~              
~              January        
June           
July           -- INSERT --January        
June           ly
~              
~              
~              January        
June           
July           June           
July           
J~              
~              
~              January        
June           
July           
July                 
January
~              
~              
~              January        
June           
July           January        =ListMonths()

~              
~              
~              January        
June           
July           =ListMonths()

June~              
~              
~              June           
July           =ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       

February       December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       December       October        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
December
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       
Nov
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
October~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
October        
November         
September
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        September      
October        =ListMonths()

January~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       November       
December       October        
November       September      
October        =ListMonths()
=ListMonths()
December2015
December~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xDecember       =ListMonths()

March~                                                                               ~              March          
May            y~              
~              March          
May            -- INSERT --March          
May              rch
~              
~              March          
May            March          
May            =ListMonths()
March~              
March          
May            y~              
~              March          
May            -- INSERT --March          
May              rch
~              
~              March          
May            March          
May            =ListMonths()

March
~                                                                               ~              
~              March          
May            =ListMonths()
M~              
March          
May            =ListMonths()
M~              
March          
May            Executing Test_popup_complete2()=ListMonths()
Executing Test_popup_completion_insertmode()=ListMonths()
~                                                                               ~                                                                               ~              
~                 January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
February
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
February       
March~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        February       
March          
April
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        March          
April          
May~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        April          
May             
June
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        May            
June           ly
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        June           
July             
August
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        July           
August            
September
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        August         
September      
October~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        September      
October         
November
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
October        
November       
Dec
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
December
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       Executing Test_pow()

Executing Test_printf_64bit()

Executing Test_printf_errors()

0
0
1
0
0
Executing Test_printf_float()

0.000000

Executing Test_printf_misc()

Executing Test_printf_spec_b()

Executing Test_printf_spec_s()

Executing Test_ptag_with_notagstack()

Executing Test_read_only()

Executing Test_recursive_delete()
"Xdir1/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written

Executing Test_redefine_dict_func()

Executing Test_ref_job_partial_dict()

Executing Test_reltime()[?25h[?0c

[?25l[?1cExecuting Test_repeat_many()[?25h[?0c

[?25l[?1cExecuting Test_repeat_three()[?25h[?0c

[?25l[?1cExecuting Test_retain_partial()[?25h[?0c

[?25l[?1cExecuting Test_round()

Executing Test_script_function_in_dict()

Executing Test_script_function_in_dict_arg()

Executing Test_searchpos()
"one" [New File]
Executing Test_set_add()

Executing Test_set_backslash()

Executing Test_set_reg_null_list()

Executing Test_set_tagcase()

Executing Test_setmatches()

Executing Test_signcolumn()

Executing Test_sin()

Executing Test_sinh()

Executing Test_sort_default()

Executing Test_sort_float()

Executing Test_sort_nested()

Executing Test_sort_numbers()

Executing Test_sort_numeric()

Executing Test_sort_strings()

Executing Test_special_char()

Executing Test_sqrt()

Executing Test_static_tagjump()
"Xfile1" [New File][New] 3L, 18C written

Executing Test_statusline_will_be_disabled_with_error()x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                                                                                                               Executing Test_stop_all_in_callback()[?25h[?0c

[?25l[?1cExecuting Test_stop_in_callback()[?25h[?0c

[?25l[?1cExecuting Test_stopall()

Executing Test_str2float()

Executing Test_str2nr()

Executing Test_strcharpart()

Executing Test_strgetchar()

Executing Test_substitute_expr()

Executing Test_substitute_expr_arg()

Executing Test_symlink_delete()
"Xfile" [New File][New] 2L, 4C written[?25h[?0c
[?25l[?1cExecuting Test_symlink_dir_delete()[?25h[?0c
[?25l[?1cExecuting Test_symlink_recursive_delete()
"Xdir3/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written
"Xdir4/Xfile" [New] 2L, 4C written[?25h[?0c
[?25l[?1cExecuting Test_syntax_valid()

Executing Test_tabline_will_be_disabled_with_error()                                                                                x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               [No Name]                                                                       Executing Test_tabnext_on_buf_unload1()

Executing Test_tabnext_on_buf_unload2()

"x" [Not edited] --No lines in buffer--
"y" [New File]
Executing Test_tabpage()
"Xtestfile" [New File]
2 fewer lines; before #1  0 seconds ago
"test1" [New File]newfile" [New File]
"test1" [New File]file] --No lines in buffer--F
Executing Test_tabpage_with_autocmd()

Executing Test_tabpage_with_tab_modifier()
"help.txt" [readonly] line 1 of 225 --0%-- col 1

"ex-undo" [New File]

Executing Test_tagcase()
"Xtext" [New File]
Executing Test_tan()

Executing Test_tanh()

Executing Test_thesaurus()

Executing Test_three_windows()
"Xtestje1" [New File][New] 1L, 8C written2" [New File][New] 1L, 8C written3" [New File][New] 1L, 8C written11L, 8C

"Xtestje3" 1L, 8C21L, 8C11L, 8C

"Xanother" [New File]
"Xtestje11L, 8C
"Xanother" [New File]

Already only one window
"help.txt" [readonly] 225L, 8437C

Executing Test_tostring()

Executing Test_true_false_arg()[?25h[?0c
[?25l[?1c"colored" [New File]

Executing Test_trunc()

Executing Test_valid()

Executing Test_version()

Executing Test_vim_did_enter()

Executing Test_whichwrap()

Executing Test_win_tab_autocmd()

"somefile" [New File]

Executing Test_window_cmd_cmdwin_with_vsp()

Executing Test_window_cmd_ls0_with_split()

Executing Test_window_cmd_wincmd_gf()
"test_gf.txt" 0L, 0C
W19: Deleting augroup that is still in use
Executing Test_with_directories()"Xdir1/file" [New File]
"Xdir1/file" [New] 2L, 4C written

"Xdir3/Xdir4/file" [New] 2L, 4C written2L, 4C
"Xdir?/*/nofile" [New DIRECTORY]
"foo" [New File]Executing Test_with_partial_callback()[?25h[?0c[?25l[?1ctilde()rong_arguments()
"test_alot.res" [New File]
"test_alot.res" [New] 0L, 0C written
Executed 244 tests"messages" 584L, 15447C

"messages" 831L, 23451C written
[?25h[?0c


From test_arglist.vim:
Executing Test_argadd()
Executing Test_argc()
Executing Test_argdelete()
Executing Test_argedit()
Executing Test_argidx()
Executing Test_arglist_autocmd()
Executing Test_arglistid()
Executing Test_argpos()
Executing Test_argument()
Executing Test_argv()
Executing Test_zero_argadd()
Executed 11 tests

From test_assert.vim:
Executing Test_assert_equal()
Executing Test_assert_exception()
Executing Test_assert_fail_fails()
Executing Test_assert_false()
Executing Test_assert_inrange()
Executing Test_assert_notequal()
Executing Test_assert_true()
Executing Test_compare_fail()
Executing Test_match()
Executing Test_notmatch()
Executing Test_user_is_happy()
Executing Test_wrong_error_type()
Executed 12 tests

From test_autochdir.vim:
Executing Test_set_filename()
Executed 1 test

From test_backspace_opt.vim:
Executing Test_backspace_option()
Executed 1 test

From test_breakindent.vim:
Executing Test_breakindent01()
Executing Test_breakindent02()
Executing Test_breakindent03()
Executing Test_breakindent04()
Executing Test_breakindent05()
Executing Test_breakindent06()
Executing Test_breakindent07()
Executing Test_breakindent07a()
Executing Test_breakindent08()
Executing Test_breakindent08a()
Executing Test_breakindent09()
Executing Test_breakindent10()
Executing Test_breakindent11()
Executing Test_breakindent12()
Executing Test_breakindent13()
Executing Test_breakindent14()
Executing Test_breakindent15()
Executing Test_breakindent16()
Executed 18 tests

From test_bufwintabinfo.vim:
Executing Test_get_buf_options()
Executing Test_get_win_options()
Executing Test_getbufwintabinfo()
Executed 3 tests

From test_cdo.vim:
Executing Test_cdo()
Executing Test_ldo()
Executed 2 tests

From test_channel.vim:
Executed 0 test

From test_charsearch.vim:
Executing Test_charsearch()
Executing Test_search_cmds()
Executed 2 tests

From test_cmdline.vim:
Executing Test_complete_list()
Executing Test_complete_tab()
Executing Test_complete_wildmenu()
Executing Test_expand_star_star()
Executing Test_getcompletion()
Executing Test_illegal_address()
Executing Test_paste_in_cmdline()
Executing Test_remove_char_in_cmdline()
Executed 8 tests

From test_command_count.vim:
Executing Test_command_count_0()
Executing Test_command_count_1()
Executing Test_command_count_2()
Executing Test_command_count_3()
Executing Test_command_count_4()
Executed 5 tests

From test_crypt.vim:
Executing Test_crypt_blowfish()
Executing Test_crypt_blowfish2()
Executing Test_crypt_zip()
Executing Test_head_only_2()
Executing Test_head_only_3()
Executing Test_uncrypt_blowfish()
Executing Test_uncrypt_blowfish2()
Executing Test_uncrypt_zip()
Executed 8 tests

From test_cscope.vim:
Executed 0 test

From test_diffmode.vim:
Executing Test_diff_fold_sync()
Executing Test_diffget_diffput()
Executing Test_diffoff()
Executing Test_filler_lines()
Executing Test_setting_cursor()
Executing Test_vert_split()
Executed 6 tests

From test_digraph.vim:
Executing Test_digraph_cmndline()
Executing Test_digraphs()
Executing Test_digraphs_option()
Executing Test_digraphs_output()
Executing Test_loadkeymap()
Executed 5 tests

From test_display.vim:
Executing Test_display_foldcolumn()
Executed 1 test

From test_farsi.vim:
Executing Test_farsi_map()
Executing Test_farsi_toggle()
Executed 2 tests

From test_fnameescape.vim:
Executing Test_fnameescape()
Executed 1 test

From test_fold.vim:
Executing Test_address_fold()
Executing Test_indent_fold()
Executing Test_indent_fold2()
Executed 3 tests

From test_gf.vim:
Executing Test_gf_url()
Executed 1 test

From test_gn.vim:
Executing Test_gn_command()
Executed 1 test

From test_gui.vim:
Executed 0 test

From test_hardcopy.vim:
Executing Test_printheader_parsing()
Executing Test_printmbfont_parsing()
Executing Test_printoptions_parsing()
Executing Test_with_syntax()
Executed 4 tests

From test_hide.vim:
Executing Test_hide()
Executed 1 test

From test_history.vim:
Executing Test_History()
Executing Test_Search_history_window()
Executed 2 tests

From test_hlsearch.vim:
Executing Test_hlsearch()
Executed 1 test

From test_increment.vim:
Executing Test_normal_increment_01()
Executing Test_normal_increment_02()
Executing Test_normal_increment_03()
Executing Test_visual_increment_01()
Executing Test_visual_increment_02()
Executing Test_visual_increment_03()
Executing Test_visual_increment_04()
Executing Test_visual_increment_05()
Executing Test_visual_increment_06()
Executing Test_visual_increment_07()
Executing Test_visual_increment_08()
Executing Test_visual_increment_09()
Executing Test_visual_increment_10()
Executing Test_visual_increment_11()
Executing Test_visual_increment_12()
Executing Test_visual_increment_13()
Executing Test_visual_increment_14()
Executing Test_visual_increment_15()
Executing Test_visual_increment_16()
Executing Test_visual_increment_17()
Executing Test_visual_increment_18()
Executing Test_visual_increment_19()
Executing Test_visual_increment_20()
Executing Test_visual_increment_21()
Executing Test_visual_increment_22()
Executing Test_visual_increment_23()
Executing Test_visual_increment_24()
Executing Test_visual_increment_25()
Executing Test_visual_increment_26()
Executing Test_visual_increment_27()
Executing Test_visual_increment_28()
Executing Test_visual_increment_29()
Executing Test_visual_increment_30()
Executing Test_visual_increment_31()
Executing Test_visual_increment_32()
Executing Test_visual_increment_33()
Executing Test_visual_increment_34()
Executing Test_visual_increment_35()
Executing Test_visual_increment_36()
Executing Test_visual_increment_37()
Executing Test_visual_increment_38()
Executed 41 tests

From test_increment_dbcs.vim:
Executing Test_increment_dbcs_1()
Executed 1 test

From test_job_fails.vim:
Executing Test_job_start_fails()
Executed 1 test

From test_json.vim:
Executing Test_js_decode()
Executing Test_js_encode()
Executing Test_json_decode()
Executing Test_json_encode()
Executed 4 tests

From test_langmap.vim:
Executing Test_langmap()
Executed 1 test

From test_man.vim:
Executing Test_g_ft_man_open_mode()
Executing Test_nomodifiable()
Executed 2 tests

From test_marks.vim:
Executing Test_Incr_Marks()
Executing Test_Restore_DelMark()
Executed 2 tests

From test_matchadd_conceal.vim:
Executing Test_clearmatches()
Executing Test_default_conceal_char()
Executing Test_matchadd_and_conceallevel_3()
Executing Test_matchadd_and_syn_conceal()
Executing Test_matchadd_repeat_conceal_with_syntax_off()
Executing Test_simple_matchadd()
Executing Test_simple_matchadd_and_conceal()
Executing Test_syn_and_match_conceal()
Executing Test_using_matchaddpos()
Executed 9 tests

From test_mksession.vim:
Executing Test_mksession()
Executed 1 test

From test_mksession_utf8.vim:
Executing Test_mksession_utf8()
Executed 1 test

From test_nested_function.vim:
Executing Test_max_nesting()
Executing Test_nested_argument()
Executing Test_nested_functions()
Executed 3 tests

From test_netbeans.vim:
Executed 0 test

From test_normal.vim:
Executing Test_normal00_optrans()
Executing Test_normal01_keymodel()
Executing Test_normal02_selectmode()
Executing Test_normal02_selectmode2()
Executing Test_normal03_join()
Executing Test_normal04_filter()
Executing Test_normal05_formatexpr()
Executing Test_normal05_formatexpr_newbuf()
Executing Test_normal05_formatexpr_setopt()
Executing Test_normal06_formatprg()
Executing Test_normal07_internalfmt()
Executing Test_normal08_fold()
Executing Test_normal09_operatorfunc()
Executing Test_normal09a_operatorfunc()
Executing Test_normal10_expand()
Executing Test_normal11_showcmd()
Executing Test_normal12_nv_error()
Executing Test_normal13_help()
Executing Test_normal14_page()
Executing Test_normal14_page_eol()
Executing Test_normal15_z_scroll_vert()
Executing Test_normal16_z_scroll_hor()
Executing Test_normal17_z_scroll_hor2()
Executing Test_normal18_z_fold()
Executing Test_normal19_z_spell()
Executing Test_normal20_exmode()
Executing Test_normal21_nv_hat()
Executing Test_normal22_zet()
Executing Test_normal23_K()
Executing Test_normal24_rot13()
Executing Test_normal25_tag()
Executing Test_normal26_put()
Executing Test_normal27_bracket()
Executing Test_normal28_parenthesis()
Executing Test_normal29_brace()
Executing Test_normal30_changecase()
Executing Test_normal31_r_cmd()
Executing Test_normal32_g_cmd1()
Executing Test_normal33_g_cmd2()
Executing Test_normal34_g_cmd3()
Executing Test_normal35_g_cmd4()
    Skipped
Executing Test_normal36_g_cmd5()
Executing Test_normal37_g_cmd6()
Executing Test_normal38_nvhome()
Executing Test_normal39_cw()
Executing Test_normal40_ctrl_bsl()
Executing Test_normal41_insert_reg()
Executing Test_normal42_halfpage()
Executing Test_normal43_textobject1()
Executing Test_normal44_textobjects2()
Executing Test_normal45_drop()
Executing Test_normal46_ignore()
Executing Test_normal47_autocmd()
    Skipped
Executing Test_normal47_visual_buf_wipe()
Executing Test_normal48_wincmd()
Executing Test_normal49_counts()
Executing Test_normal50_commandline()
Executing Test_normal51_FileChangedRO()
Executing Test_normal52_rl()
Executing Test_normal53_digraph()
Executing Test_normal54_Ctrl_bsl()
Executed 61 tests
SKIPPED Test_normal35_g_cmd4(): output of g< can't be tested currently
SKIPPED Test_normal47_autocmd(): not possible to test cursorhold autocmd while waiting for input in normal_cmd

From test_packadd.vim:
Executing Test_colorscheme()
Executing Test_colorscheme_completion()
Executing Test_helptags()
Executing Test_packadd()
Executing Test_packadd_completion()
Executing Test_packadd_noload()
Executing Test_packloadall()
Executing Test_runtime()
Executed 8 tests

From test_perl.vim:
Executing Test_SvREFCNT()
Executing Test_VIM_package()
Executing Test_change_buffer()
Executing Test_evaluate_list()
Executing Test_perldo()
Executing Test_perleval()
Executing Test_stdio()
Executed 7 tests

From test_profile.vim:
Executing Test_profile_completion()
Executing Test_profile_errors()
Executing Test_profile_file()
Executing Test_profile_func()
Executed 4 tests

From test_quickfix.vim:
Executing Test_Autocmd()
Executing Test_Autocmd_Exception()
Executing Test_adjust_lnum()
Executing Test_browse()
Executing Test_caddbuffer_to_empty()
Executing Test_caddbuffer_wrong()
Executing Test_caddexpr_wrong()
Executing Test_cage()
Executing Test_cbottom()
Executing Test_cbuffer()
Executing Test_cexpr()
Executing Test_cfile()
Executing Test_cgetexpr_works()
Executing Test_clist()
Executing Test_cwindow()
Executing Test_dirstack_cleanup()
Executing Test_duplicate_buf()
Executing Test_efm()
Executing Test_efm1()
Executing Test_efm2()
Executing Test_efm_dirstack()
Executing Test_efm_ignore_continuations()
Executing Test_errortitle()
Executing Test_grep()
Executing Test_helpgrep()
Executing Test_history()
Executing Test_invalid_efm()
Executing Test_locationlist()
Executing Test_locationlist_cross_tab_jump()
Executing Test_locationlist_curwin_was_closed()
Executing Test_long_lines()
Executing Test_nomem()
Executing Test_qf_property()
Executing Test_qf_title()
Executing Test_quickfix_set_list_with_act()
Executing Test_quickfix_was_changed_by_autocmd()
Executing Test_setqflist()
Executing Test_setqflist_empty_middle()
Executing Test_setqflist_empty_older()
Executing Test_switchbuf()
Executing Test_two_windows()
Executing Test_vimgreptitle()
Executed 42 tests

From test_ruby.vim:
Executing Test_ruby_change_buffer()
Executing Test_ruby_evaluate_dict()
Executing Test_ruby_evaluate_list()
Executed 3 tests

From test_search.vim:
Executing Test_search_cmdline()
Executing Test_search_cmdline2()
Executing Test_searchpair()
Executing Test_use_sub_pat()
Executed 4 tests

From test_signs.vim:
Executing Test_sign()
Executing Test_sign_completion()
Executing Test_sign_delete_buffer()
Executing Test_sign_invalid_commands()
Executing Test_sign_undefine_still_placed()
Executed 5 tests

From test_smartindent.vim:
Executing Test_nosmartindent()
Executed 1 test

From test_startup.vim:
Executing Test_after_comes_later()
Executing Test_compatible_args()
Executing Test_file_args()
Executing Test_help_arg()
Executing Test_read_stdin()
Executing Test_startup_script()
Executing Test_startuptime()
Executed 7 tests

From test_startup_utf8.vim:
Executing Test_read_fifo_utf8()
Executing Test_read_stdin_utf8()
Executed 2 tests

From test_stat.vim:
Executing Test_checktime()
Executing Test_existent_directory()
Executing Test_existent_file()
Executing Test_nonexistent_file()
Executing Test_win32_symlink_dir()
Executed 5 tests

From test_substitute.vim:
Executing Test_multiline_subst()
Executed 1 test

From test_syntax.vim:
Executing Test_syn_iskeyword()
Executing Test_syntax_after_reload()
Executing Test_syntax_completion()
Executing Test_syntax_list()
Executing Test_syntime()
Executed 5 tests

From test_system.vim:
Executing Test_System()
Executing Test_system_exmode()
Executed 2 tests

From test_textobjects.vim:
Executing Test_inner_block_with_cpo_M_left_backslash()
Executing Test_inner_block_with_cpo_M_right_backslash()
Executing Test_inner_block_without_cpo_M()
Executed 3 tests

From test_undo.vim:
Executing Test_U_command()
Executing Test_global_local_undolevels()
Executing Test_insert_expr()
Executing Test_undo_del_chars()
Executing Test_undo_write()
Executing Test_undofile_earlier()
Executing Test_undojoin()
Executing Test_undolist()
Executing Test_undotree()
Executed 9 tests

From test_usercommands.vim:
Executing Test_Ambiguous()
Executing Test_CmdUndefined()
Executing Test_cmdmods()
Executed 3 tests

From test_viminfo.vim:
Executing Test_cmdline_history()
Executing Test_cmdline_history_order()
Executing Test_global_vars()
Executing Test_viminfo_bad_syntax()
Executing Test_viminfo_encoding()
Executing Test_viminfo_file_mark_tabclose()
Executing Test_viminfo_file_mark_zero_time()
Executing Test_viminfo_file_marks()
Executing Test_viminfo_jumplist()
Executing Test_viminfo_marks()
Executing Test_viminfo_oldfiles()
Executing Test_viminfo_read_and_write()
Executing Test_viminfo_registers()
Executed 13 tests

From test_viml.vim:
Executing Test_arg_abort()
Executing Test_braces_skipped()
Executing Test_curlies()
Executing Test_defining_functions()
Executing Test_echo_and_string()
Executing Test_endwhile_function()
Executing Test_endwhile_script()
Executing Test_error_in_function()
Executing Test_error_in_script()
Executing Test_expr_parsing()
Executing Test_finish()
Executing Test_func_abort()
Executing Test_if_bar_fail()
Executing Test_if_fail()
Executing Test_if_while()
Executing Test_num64()
Executing Test_return()
Executing Test_script_lines()
Executing Test_skip()
Executing Test_type()
Executing Test_while_fail()
Executed 21 tests

From test_visual.vim:
Executing Test_block_shift_multibyte()
Executing Test_dotregister_paste()
Executed 2 tests

From test_window_id.vim:
Executing Test_win_getid()
Executing Test_win_getid_curtab()
Executed 2 tests

From test_writefile.vim:
Executing Test_WriteFile()
Executed 1 test

From test_alot_latin.vim:
Executing Test_eow_with_optional()
Executing Test_equivalence_re1()
Executing Test_equivalence_re2()
Executing Test_nested_backrefs()
Executing Test_recursive_substitute()
Executed 5 tests

From test_alot_utf8.vim:
Executing Test_classes_re1()
Executing Test_classes_re2()
Executing Test_equivalence_re1()
Executing Test_equivalence_re2()
Executing Test_match_using_multibyte_conceal_char()
Executing Test_source_latin()
Executing Test_source_utf8()
Executing Test_strcharpart()
Executing Test_strgetchar()
Executed 9 tests

From test_alot.vim:
Executing Test_BufEnter()
Executing Test_abbreviation()
Executing Test_abs()
Executing Test_acos()
Executing Test_asin()
Executing Test_atan()
Executing Test_atan2()
Executing Test_augroup_deleted()
Executing Test_augroup_warning()
Executing Test_auto_partial_rebind()
Executing Test_autocmd_bufunload_avoiding_SEGV_01()
Executing Test_autocmd_bufunload_avoiding_SEGV_02()
Executing Test_autocmd_bufunload_with_tabnext()
Executing Test_autocmd_bufwinleave_with_tabfirst()
Executing Test_bind_in_python()
Executing Test_break_undo()
Executing Test_bufunload()
Executing Test_cancel_ptjump()
Executing Test_caught_error_in_statusline()
Executing Test_caught_error_in_tabline()
Executing Test_ceil()
Executing Test_closure_counter()
Executing Test_closure_refcount()
Executing Test_closure_unlet()
Executing Test_color_names()
Executing Test_compare_null_dict()
Executing Test_compare_partials()
Executing Test_compl_vim_cmds_after_register_expr()
Executing Test_complete_no_undo()
Executing Test_completefunc_opens_new_window_one()
Executing Test_completefunc_opens_new_window_two()
Executing Test_completefunc_with_scratch_buffer()
Executing Test_completefunc_works()
Executing Test_completion_ctrl_e_without_autowrap()
Executing Test_cos()
Executing Test_cosh()
Executing Test_cursorhold_insert()
Executing Test_cursorhold_insert_ctrl_x()
Executing Test_cursorline_keep_col()
Executing Test_curswant_with_autocommand()
Executing Test_cycle_partial_job()
Executing Test_cyclic_dict_arg()
Executing Test_cyclic_list_arg()
Executing Test_delete_myself()
Executing Test_dict()
Executing Test_dictionary()
Executing Test_dir_delete()
Executing Test_early_bar()
Executing Test_empty_buffer()
Executing Test_equal()
Executing Test_ex_undo()
Executing Test_execute_list()
Executing Test_execute_string()
Executing Test_existing()
Executing Test_exp()
Executing Test_expand()
Executing Test_feedkeys_x_with_empty_string()
Executing Test_file_delete()
Executing Test_file_perm()
Executing Test_fileformat_after_bw()
Executing Test_filetype_valid()
Executing Test_filter()
Executing Test_filter_cmd_completion()
Executing Test_filter_fails()
Executing Test_filter_map_dict_expr_funcref()
Executing Test_filter_map_dict_expr_string()
Executing Test_filter_map_list_expr_funcref()
Executing Test_filter_map_list_expr_string()
Executing Test_floor()
Executing Test_fmod()
Executing Test_fnamemodify()
Executing Test_func_unref()
Executing Test_funcref()
Executing Test_function_in_dict()
Executing Test_function_with_funcref()
Executing Test_gD()
Executing Test_gD_char()
Executing Test_gD_comment()
Executing Test_gD_inline_comment()
Executing Test_gD_string()
Executing Test_gD_string_same_line()
Executing Test_gD_too()
Executing Test_gd()
Executing Test_gd_comment()
Executing Test_gd_comment_in_string()
Executing Test_gd_inline_comment()
Executing Test_gd_inline_comment_body()
Executing Test_gd_inline_comment_only()
Executing Test_gd_kr_style()
Executing Test_gd_missing_braces()
Executing Test_gd_not_local()
Executing Test_gd_string()
Executing Test_gd_string_in_comment()
Executing Test_gd_string_only()
Executing Test_gd_trailing_comment()
Executing Test_gd_trailing_multiline_comment()
Executing Test_get_partial_items()
Executing Test_getreg_empty_list()
Executing Test_global_local_lispwords()
Executing Test_help_complete()
Executing Test_help_respect_current_file_lang()
Executing Test_help_tagjump()
Executing Test_if()
Executing Test_info()
Executing Test_invalid()
Executing Test_invalid_submatch()
Executing Test_isnan()
Executing Test_join_with_count()
Executing Test_keymap_valid()
Executing Test_keyword_jump()
Executing Test_lambda_call_lambda_from_lambda()
Executing Test_lambda_capture_by_reference()
Executing Test_lambda_circular_reference()
Executing Test_lambda_closure_counter()
Executing Test_lambda_combination()
Executing Test_lambda_delfunc()
Executing Test_lambda_do_not_share_local_variable()
Executing Test_lambda_fails()
Executing Test_lambda_feature()
Executing Test_lambda_refer_local_variable_from_other_scope()
Executing Test_lambda_scope()
Executing Test_lambda_share_scope()
Executing Test_lambda_side_effect()
Executing Test_lambda_with_a_var()
Executing Test_lambda_with_filter()
Executing Test_lambda_with_map()
Executing Test_lambda_with_partial()
Executing Test_lambda_with_sort()
Executing Test_lambda_with_timer()
Executing Test_load_menu()
Executing Test_log()
Executing Test_log10()
Executing Test_loop_over_null_list()
Executing Test_map_ctrl_c_insert()
Executing Test_map_ctrl_c_visual()
Executing Test_map_cursor()
Executing Test_map_feedkeys()
Executing Test_map_langmap()
Executing Test_map_meta_quotes()
Executing Test_match()
Executing Test_matchaddpos()
Executing Test_matchaddpos_using_negative_priority()
Executing Test_matchstrpos()
Executing Test_max_min_errors()
Executing Test_messages()
Executing Test_missing_attr()
Executing Test_move_cursor()
Executing Test_named_function_closure()
Executing Test_no_type_checking()
Executing Test_noinsert_complete()
Executing Test_non_zero_arg()
Executing Test_not_existing()
Executing Test_not_lamda()
Executing Test_omnifunc_with_check()
Executing Test_oneshot()
Executing Test_option_value()
Executing Test_options()
Executing Test_partial_args()
Executing Test_partial_dict()
Executing Test_partial_exists()
Executing Test_partial_implicit()
Executing Test_partial_string()
Executing Test_path_keep_commas()
Executing Test_paused()
Executing Test_popup_complete()
Executing Test_popup_complete2()
Executing Test_popup_completion_insertmode()
Executing Test_pow()
Executing Test_printf_64bit()
Executing Test_printf_errors()
Executing Test_printf_float()
Executing Test_printf_misc()
Executing Test_printf_spec_b()
Executing Test_printf_spec_s()
Executing Test_ptag_with_notagstack()
Executing Test_read_only()
Executing Test_recursive_delete()
Executing Test_redefine_dict_func()
Executing Test_ref_job_partial_dict()
Executing Test_reltime()
Executing Test_repeat_many()
Executing Test_repeat_three()
Executing Test_retain_partial()
Executing Test_round()
Executing Test_script_function_in_dict()
Executing Test_script_function_in_dict_arg()
Executing Test_searchpos()
Executing Test_set_add()
Executing Test_set_backslash()
Executing Test_set_reg_null_list()
Executing Test_set_tagcase()
Executing Test_setmatches()
Executing Test_signcolumn()
Executing Test_sin()
Executing Test_sinh()
Executing Test_sort_default()
Executing Test_sort_float()
Executing Test_sort_nested()
Executing Test_sort_numbers()
Executing Test_sort_numeric()
Executing Test_sort_strings()
Executing Test_special_char()
Executing Test_sqrt()
Executing Test_static_tagjump()
Executing Test_statusline_will_be_disabled_with_error()
Executing Test_stop_all_in_callback()
Executing Test_stop_in_callback()
Executing Test_stopall()
Executing Test_str2float()
Executing Test_str2nr()
Executing Test_strcharpart()
Executing Test_strgetchar()
Executing Test_substitute_expr()
Executing Test_substitute_expr_arg()
Executing Test_symlink_delete()
Executing Test_symlink_dir_delete()
Executing Test_symlink_recursive_delete()
Executing Test_syntax_valid()
Executing Test_tabline_will_be_disabled_with_error()
Executing Test_tabnext_on_buf_unload1()
Executing Test_tabnext_on_buf_unload2()
Executing Test_tabpage()
Executing Test_tabpage_with_autocmd()
Executing Test_tabpage_with_tab_modifier()
Executing Test_tagcase()
Executing Test_tan()
Executing Test_tanh()
Executing Test_thesaurus()
Executing Test_three_windows()
Executing Test_tostring()
Executing Test_true_false_arg()
Executing Test_trunc()
Executing Test_valid()
Executing Test_version()
Executing Test_vim_did_enter()
Executing Test_whichwrap()
Executing Test_win_tab_autocmd()
Executing Test_window_cmd_cmdwin_with_vsp()
Executing Test_window_cmd_ls0_with_split()
Executing Test_window_cmd_wincmd_gf()
Executing Test_with_directories()
Executing Test_with_partial_callback()
Executing Test_with_tilde()
Executing Test_wrong_arguments()
Executed 244 tests

Test results:
ALL DONE
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk3/testdir'
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/json_test.o json_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/evalfunc.o evalfunc.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o json_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o objects/gui.o objects/gui_gtk.o objects/gui_gtk_x11.o objects/pty.o objects/gui_gtk_f.o objects/gui_beval.o objects/gui_gtk_gresources.o objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/memfile.o objects/message.o objects/json_test.o   -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
link.sh: Linked fine
./json_test || exit 1; echo  passed;
passed
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memfile_test.o memfile_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o memfile_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o objects/gui.o objects/gui_gtk.o objects/gui_gtk_x11.o objects/pty.o objects/gui_gtk_f.o objects/gui_beval.o objects/gui_gtk_gresources.o objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/json.o objects/message.o objects/memfile_test.o   -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_cmds.o ex_cmds.c
link.sh: Linked fine
./memfile_test || exit 1; echo  passed;
passed
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/message_test.o message_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_cmds2.o ex_cmds2.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o message_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o objects/gui.o objects/gui_gtk.o objects/gui_gtk_x11.o objects/pty.o objects/gui_gtk_f.o objects/gui_beval.o objects/gui_gtk_gresources.o objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/json.o objects/memfile.o objects/message_test.o   -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
link.sh: Linked fine
./message_test || exit 1; echo  passed;
passed
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk3'
touch build-stamp-vim-gtk3
make[1]: warning: -jN forced in submake: disabling jobserver mode.
dh_testdir
make[1]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk'
/usr/bin/make -f Makefile vim
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk'
make[2]: 'vim' is up to date.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk'
if test -n "yes" -a -f po/Makefile; then \
	cd po; /usr/bin/make -f Makefile check VIM=../vim; \
fi
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk/po'
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq af.po
dh_prep
/usr/bin/make -C src/vim-basic xxd/xxd
make[1]: Entering directory '/<<PKGBUILDDIR>>/src/vim-basic'
make[1]: 'xxd/xxd' is up to date.
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-basic'
touch build-stamp-xxd
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_docmd.o ex_docmd.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_eval.o ex_eval.c
touch af.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ca.po
touch ca.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ex_getln.o ex_getln.c
touch cs.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq de.po
touch de.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq en_GB.po
touch en_GB.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq eo.po
touch eo.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq es.po
touch es.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fi.po
touch fi.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fr.po
touch fr.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ga.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/farsi.o farsi.c
touch ga.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq it.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/fileio.o fileio.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/fold.o fold.c
touch it.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.po
touch ja.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.po
touch ko.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.UTF-8.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/getchar.o getchar.c
touch ko.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nb.po
touch nb.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nl.po
touch nl.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq no.po
touch no.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/hardcopy.o hardcopy.c
touch pl.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pt_BR.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/hashtab.o hashtab.c
touch pt_BR.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/if_cscope.o if_cscope.c
touch ru.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/if_xcmdsrv.o if_xcmdsrv.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/list.o list.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/mark.o mark.c
touch sk.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sv.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memline.o memline.c
touch sv.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.po
touch uk.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq vi.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/menu.o menu.c
touch vi.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.UTF-8.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/misc1.o misc1.c
touch zh_CN.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/misc2.o misc2.c
touch zh_CN.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.UTF-8.po
touch zh_TW.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.po
touch zh_TW.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.cp1250.po
touch cs.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.sjis.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/move.o move.c
touch ja.sjis.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.euc-jp.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/mbyte.o mbyte.c
touch ja.euc-jp.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.cp1250.po
touch pl.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.UTF-8.po
touch pl.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.cp1251.po
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/normal.o normal.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/ops.o ops.c
touch ru.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.cp1250.po
touch sk.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.cp1251.po
touch uk.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.cp936.po
touch zh_CN.cp936.ck
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk/po'
if test vim != vim -a ! -r vim; then \
	ln -s vim vim; \
fi
cd testdir; /usr/bin/make -f Makefile gui VIMPROG=../vim  SCRIPTSOURCE=../../runtime
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-gtk/testdir'
rm -f test.log messages
rm -rf test1.failed test.out X* viminfo tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok benchmark.out wrongtermsize
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test1.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 1133 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/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
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" If columns or lines are too small, create wrongtermsize.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" (Some tests will fail. When columns and/or lines are small)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Write a single line to test.out to check if testing works at all.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cthis is a test[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 15 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! small.vim
[?25l[?1c"small.vim" [New File] 1 line, 1 character written[?25h[?0c[?25l[?1c:[?25h[?0cw! tiny.vim
[?25l[?1c"tiny.vim" [New File] 1 line, 1 character written[?25h[?0c[?25l[?1ce! test.ok
w! test.outqa![?25h[?0c[?25l[?1c:[?25h[?0cw! mbyte.vim
[?25l[?1c"mbyte.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cw! mzscheme.vim
[?25l[?1c"mzscheme.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cw! lua.vim
[?25l[?1c"lua.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +multi_byte feature supported, make mbyte.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("multi_byte") | sp another | w! mbyte.vim | q | endif
[?25l[?1c"another" [New File]
"mbyte.vim" 0 lines, 0 characters writtene! test.ok[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +mzscheme feature supported, make mzscheme.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("mzscheme") | sp another | w! mzscheme.vim | q | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +lua feature supported, make lua.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("lua") | sp another | w! lua.vim | q | endif
[?25l[?1c"another" [New File]
"lua.vim" 0 lines, 0 characters writtene! test.ok[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Otherwise write small.vim to skip the test.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif 1 | q! | endif
[?25l[?1c[?25h[?0crm -rf X* 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test3.in
[?25h[?8c[?25h[?0c[?25l[?1c"test3.in" 2342 lines, 23089 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c/* vim: set cin ts=4 sw=4 : */[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 125 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo modeline
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit                " read modeline
[?25l[?1c"test3.in"2342L, 23089Cif (test)cmd1;cmd2;if (test)cmd1;else[?25h[?0c[?25l[?1c/[?25h[?0cstart of AUTO
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cend of AUTO
[?25l[?1c956 lines to indent...
9500
850
750
650
550
450
350
250
150
50 lines to indent... 
957 lines indented [?25h[?0c[?25l[?1c/^STARTTEST
}break;default:baz();baz();break;
    }
}

/* 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
 */[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 93C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset tw=0 wm=60 columns=80 noai fo=croq
[?25l[?1c}break;default:baz();baz();break;
    }
}

/* 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
 */[?25h[?0c[?25l[?1c/[?25h[?0cserious/e
[?25l[?1c[?25h[?0c[?25l[?1c


-- INSERT --
about life, the
 * universe, and the
 * rest important big[?25h[?0c[?25l[?1c
* comment[?25h[?0c[?25l[?1c
/^STARTTEST
*/
    /* insert " about life, the universe, and the rest" after "serious" */
}

STARTTEST[?25h[?0c[?25l[?1c
:set nocin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6L, 78C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/comments
joabout life^[/happens
jothere^[/below
oline^[/this
Ohello^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nocin
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ccomments
[?25l[?1c{
    /** Testing for comments, without 'cin' set[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
-- INSERT --
about life[?25h[?0c[?25l[?1c
/[?25h[?0chappens
[?25l[?1c/*
* what happens here?[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
-- INSERT --
there[?25h[?0c[?25l[?1c
/[?25h[?0cbelow
[?25l[?1c/*the end of the comment, try inserting a line below */[?25h[?0c[?25l[?1c
-- INSERT --
line[?25h[?0c[?25l[?1c
/[?25h[?0cthis
[?25l[?1c/* how aboutthis one */[?25h[?0c[?25l[?1c
-- INSERT --hello[?25h[?0c[?25l[?1c
this one */[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 18C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/vec2
==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cvec2
[?25l[?1c{
    var = this + that + vec[0] * vec[0]+ vec[1] * vec[1]+ vec2[2] * vec[2];[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5L, 51C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=}4
/testing1
k2==/testing2
k2==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=}4
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ctesting1
[?25l[?1c{asdf asdflkajds f;
    if (tes & ting) {asdf asdf asdf ;asdfa sdf asdf;}
    testing1;[?25h[?0c [?25l[?1c

/[?25h[?0ctesting2
[?25l[?1cif (tes & ting)
    {asdf asdf asdf ;asdfa sdf asdf;}
    testing2;[?25h[?0c [?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4L, 36C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=(0,)20
/main
=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,)20
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cmain
[?25l[?1cmain ( int first_par, /*[?25h[?0c[?25l[?1c
19 lines to indent...
20indented [?25h[?0c[?25l[?1c
* Comment for[?25h[?0c[?25l[?1c
/^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();[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4L, 36C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=es,n0s
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cmain
[?25l[?1c[?25h[?0c[?25l[?1c8 lines to indent...
9indented [?25h[?0c
[?25l[?1c/^STARTTEST
else
    {bar();
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c{[?25h[?0c[?25l[?1c
11 lines to indent...
12indented [?25h[?0c[?25l[?1c
do[?25h[?0c[?25l[?1c
/^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();
    }[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1L, 6C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c


[?25l[?1c8 lines to indent...
9indented [?25h[?0c
   [?25l[?1c/^STARTTEST
n();
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino={s,e-s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino={s,e-s
[?25l[?1c[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
7 lines to indent...
8indented     {[?25h[?0c[?25l[?1c
if ( k() )[?25h[?0c[?25l[?1c
/^STARTTEST
{l();} else { /* Start (two words) end */m();}
    n();    /* should be under the if () */
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino={s,fs
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 25C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=/ foo[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino={s,fs
[?25l[?1c[?25h[?0c[?25l[?1cvoid bar(void)
{[?25h[?0c[?25l[?1c
/[?25h[?0c foo
[?25l[?1c30 lines to indent...
31indented     {[?25h[?0c[?25l[?1c/^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 */[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 25C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cwhile
[?25l[?1c[?25h[?0c[?25l[?1c
-- INSERT --
here[?25h[?0c[?25l[?1c
if ( a )
    i[?25h[?0c[?25l[?1c
/^STARTTEST
a;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino= com=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 109C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/comment
olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^Mcmd();^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino= com=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ccomment
[?25l[?1ca()
{
label1:/* hmm */// comment[?25h[?0c[?25l[?1c
-- INSERT --label2: b();
label3 /* post */:
/* pre */ label4:f(/*com*/);if (/*com*/)cmd();[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set comments& comments^=s:/*,m:**,ex:*/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 53C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/simple
=5j[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments^=s:/*,m:**,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0csimple
[?25l[?1c/*
  * A simple comment[?25h[?0c[?25l[?1c
5 lines to indent...
6indented * A simple comment[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
/^STARTTEST
/*
** A different comment
*/

STARTTEST[?25h[?0c[?25l[?1c
:set cino=c0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 70C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/*
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=c0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments-=s1:/* comments^=s0:/*
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST
/*********A comment.
    *********/
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=c0,C1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 73C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/*
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=c0,C1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments-=s1:/* comments^=s0:/*
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST
/*********
    A comment.
    *********/
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 17C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s,U1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s,U1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (   c1[?25h[?0c[?25l[?1c
/^STARTTEST
&& (   c2|| c3))foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,w1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,w1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (   c1[?25h[?0c[?25l[?1c
/^STARTTEST
&& (   c2|| c3))foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
c = c1 && ([?25h[?0c[?25l[?1c
/^STARTTEST
c2 ||c3) && c4;
    if (c1 && c2)foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s,m1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s,m1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
c = c1 && ([?25h[?0c[?25l[?1c
/^STARTTEST
c2 ||c3
    ) && c4;
    if (c1 && c2
    )foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=b1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=b1
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
9 lines to indent...
10 lines indented [?25h[?0c[?25l[?1c
switch (x)[?25h[?0c[?25l[?1c
/^STARTTEST
{case 1:a = b;break;default:a = 0;break;
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,W5
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,W5
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
10 lines to indent...
11indented [?25h[?0c[?25l[?1c
invokeme([?25h[?0c[?25l[?1c
/^STARTTEST
argu,ment);
    invokeme(argu,ment);
    invokeme(argu,ment);
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=/6
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=/6
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
3 lines to indent...
4indented [?25h[?0c[?25l[?1c
statement;[?25h[?0c[?25l[?1c
/^STARTTEST
// comment 1// comment 2
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 34C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-12kdd]]/comment 1/+1
==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c==ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
/[?25h[?0ccomment 1/+1
[?25l[?1cstatement;// comment 1
    // comment 2[?25h[?0c[?25l[?1c    // comment 2[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cino=g0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=g0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cclass CAbc
{[?25h[?0c[?25l[?1c
6 lines to indent...
7indented [?25h[?0c[?25l[?1c
int Test() { return FALSE; }[?25h[?0c[?25l[?1c
/^STARTTEST
public: // comment
    void testfall();
protected:
    void testfall();
};

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,gs,hs
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 29C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,gs,hs
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cclass Foo : public Bar
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
public:[?25h[?0c[?25l[?1c
/^STARTTEST
virtual void method1(void) = 0;virtual void method2(int arg1,int arg2,int arg3) = 0;
};

STARTTEST[?25h[?0c[?25l[?1c
:set cino=+20
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 24C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=+20
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid
foo()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (a)[?25h[?0c[?25l[?1c
/^STARTTEST
{
    } elseasdf;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,W2s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,W2s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1c
{[?25h[?0c[?25l[?1c
34 lines to indent...
35indented [?25h[?0c[?25l[?1c
averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd([?25h[?0c[?25l[?1c
/^STARTTEST
dec)->asdfasdfasdf(asdfadsf,asdfasdf,asdfasdf,),func(asdfadf,asdfasdf),asdasdf);
}

STARTTEST
:set cino=M1
2kdd]]=][
ENDTEST

int main ()
{
    if (cond1 &&cond2)foo;
}[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=M1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c4 lines to indent...
5indented [?25h[?0c
   [?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,ts
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,ts
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
7 lines to indent...
8indented [?25h[?0c[?25l[?1c
void func(int a[?25h[?0c[?25l[?1c
/^STARTTEST
#if defined(FOO), int b, int c
#endif)
{
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
void[?25h[?0c[?25l[?1c
/^STARTTEST
func(int a
#if defined(FOO), int b, int c
#endif
    )
{
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 22C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=7][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=7][
ENDTEST[?25h[?0c

[?25l[?1c
69 lines to indent...
50
7indented [?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
/^STARTTEST
int a,int b)
{
}void
func6(int a)
{
}

STARTTEST
:set cino&
:set cino+=l1
2kdd2j=][
ENDTEST

void func(void)
{
    int tab[] =
    {1, 2, 3,4, 5, 6};[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino+=l1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c

[?25l[?1c22 lines to indent...
23indented [?25h[?0c
[?25l[?1c/^STARTTEST
break;case baz: {printf("baz");break;}case quux:printf("But don't break the indentation of this instruction\n");break;
    }
}

STARTTEST
:set cino&
2kdd2j=][
ENDTEST

void func(void)
{
    cout << "a"
    << "b"
    << ") :"
    << "c";
}[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c

[?25l[?1c6 lines to indent...
7indented     << "b"
        << ") :"
        << "c";[?25h[?0c
[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set com=s1:/*,m:*,ex:*/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 38C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]3jofoo();^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset com=s1:/*,m:*,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1cvoid func(void)
{[?25h[?0c[?25l[?1c/** This is a comment.*/[?25h[?0c[?25l[?1c
-- INSERT --
foo();[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cino&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
/^STARTTEST
{
    for (int i = 0; i < 10; ++i)if (i & 1) {foo(1);} elsefoo(0);
    baz();
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=k2s,(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd3j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd3j=][ENDTEST[?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
23 lines to indent...
24indented [?25h[?0c[?25l[?1c
{[?25h[?0c[?25l[?1c
/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(s
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c23 lines to indent...
24indented         && condition2)
        action();    && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(s,U1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c24 lines to indent...
25indented         && condition2)
        action();    && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0,W4
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c29 lines to indent...
30indented         && condition2)
        action();         && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,u2
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c18 lines to indent...
19indented         && condition2)
        action();        && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0,w1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c27 lines to indent...
28indented         && condition2)
        action();         && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -I/usr/include/lua5.2 -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE   -I/usr/include/python3.5m -DPYTHON3_HOME='L"/usr"' -pthread -fPIE -I/usr/include/ruby-2.3.0 -I/usr/include/arm-linux-gnueabihf/ruby-2.3.0 -DRUBY_VERSION=23 -I/usr/include/tcl8.6  -D_REENTRANT=1  -D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1  -o objects/option.o option.c
2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2,(s
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c14 lines to indent...
15indented [?25h[?0c
[?25l[?1c/^STARTTEST
if (c1 && (c2 ||c3))foo;
    if (c1 &&(c2 || c3))
    {
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=N-s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 47C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^NAMESPACESTART
=/^NAMESPACEEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=N-s
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^NAMESPACESTART
[?25l[?1cNAMESPACESTART[?25h[?0c[?25l[?1c
/[?25h[?0c^NAMESPACEEND
[?25l[?1c81 lines to indent...
50
82indented [?25h[?0c[?25l[?1c/^STARTTEST
namespace test test2
{
    1111111111111111111;
}
namespace111111111
{
    111111111111111111;
}
NAMESPACEEND


STARTTEST
:set cino=j1,J1
/^JSSTART
=/^JSEND
ENDTEST

JSSTART
var bar = {
foo: {
that: this,
some: ok,
},[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c12 lines to indent...
13indented     foo: {
        that: this,
        some: ok,
    },[?25h[?0c[?25l[?1c/^STARTTEST
"bar":{a : 2,b: "123abc",x: 4,"y": 5
    }
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c5 lines to indent...
6indented [?25h[?0c[?25l[?1c/^STARTTEST
var foo = [
    1,
    2,
    3
];
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c7 lines to indent...
8indented [?25h[?0c[?25l[?1c/^STARTTEST
function bar() {
    var foo = [1,2,3
    ];
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c58 lines to indent...
509indented [?25h[?0c[?25l[?1c/^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: [[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c14 lines to indent...
15indented     $(this).data(class_name+'_public',$.extend({},{
        foo: 'bar',
        bar: 2,
        foobar: [[?25h[?0c[?25l[?1c/^STARTTEST
1,2,3],callback: function(){return true;}
    }, options||{}));
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c16 lines to indent...
17indented [?25h[?0c[?25l[?1c/^STARTTEST
2,3],callback: function(){return true;}}, options||{}));
    }
})(jQuery);
JSEND

STARTTEST
:set cino=j1,J1,+2
/^JSSTART
=/^JSEND
ENDTEST

JSSTART
// Results of JavaScript indent
// 1
(function(){
var a = [
'a',[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 38C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1,+2
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c149 lines to indent...
100
50 lines to indent... 
150 lines indented     var a = [
      'a',[?25h[?0c[?25l[?1c/^STARTTEST
var a,
    b,
    c,
    d,
    e,
    f,
    g,
    h,
    i;
JSEND

STARTTEST
:set cin cino&
/start of define
=/end of define
ENDTEST

/* start of define */
{
}
#define AAA \
BBB\
CCC[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 48C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin cino&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of define
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cend of define
[?25l[?1c11 lines to indent...
12indented     BBB\
    CCC[?25h[?0c[?25l[?1c/^STARTTEST
#define CNT \
    1 + \
    2 + \
    4
/* end of define */

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 61C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c226 fewer lines    c,
    d,
    e,    f,    g,    h,    i;JSEND/* start of define */
{}#define AAA \
    BBB\
    CCC#define CNT \
    1 + \
    2 + \4
/* end of define */[?25h[?0c[?25l[?1c:[?25h[?0c1;/start of AUTO/,$wq! test.out
[?25l[?1c"test.out" [New] 2096L, 20188C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test3 = test61; then \
#	  if diff test.out test3.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test3.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test3.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test4.in
[?25h[?8c[?25h[?0c[?25l[?1c"test4.in" 34 lines, 960 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
:set fo+=r" issue #57 do not move cursor on <c-o> when autoindent is set
Go# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that changes current buffer on BufEnter event.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 20 lines, 678 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:?startstart?,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter Xxx brew
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of
[?25l[?1cstartstart
start of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0c.,/end of/w! Xxx   " write test file Xxx
[?25l[?1c"Xxx" [New] 7L, 124C written[?25h[?0c[?25l[?1c:[?25h[?0cset ai modeline modelines=3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx             " split to Xxx, autocmd will do :brew
[?25l[?1c"Xxx" 7L, 124CTest for autocommand that changes current buffer on BufEnter event.
Check if modelines are interpreted for the correct buffer.STARTTESTo small.vim:set nocompatible viminfo+=nviminfo
:au BufEnter Xxx brew/start of.,/end of/w!" write test file Xxx
:set ai modeline modelines=3:sp Xxx    " split to Xxx, autocmd will do :brew
test4.in                                                                        :set fo+=rssue #57 do not move cursor on <c-o> when autoindent is setGo# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.outqa!ENDTESTstartstart of test file Xxx
test4.in                                                                        test4.in" line 1 of 34 --2%-- col 1[?25h[?0c[?25l[?1c: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[?25h[?0c[?25l[?1c?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --        this should be auto-indented[+][+][?25h[?0c[?25l[?1c
end of test file Xxx[?25h[?0c[?25l[?1c:[?25h[?0c                   " Append text with autoindent to this file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau! BufEnter Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbuf Xxx            " go to Xxx, no autocmd anymore
[?25l[?1c"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         [?25h[?0c[?25l[?1c?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --this should be in column 1[+][?25h[?0c[?25l[?1c:[?25h[?0cwq " append text without autoindent to Xxx
[?25l[?1c"Xxx8L, 151C written: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 aothis should be auto-indented^[
:                   " Append text with autoindent to this file
:au! BufEnter Xxx:buf Xxx            " go to Xxx, no autocmd anymoreG?this is aothis should be in column 1^[:wq " append text without autoindent to XxxG:r Xxx   nclude Xxx in the current file:set fo+=r" issue #57 do not move cursor on <c-o> when autoindent is setGo# abcdef^[2hi^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.out
:qa!ENDTESTstarstart of test file Xxx[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a testthis should be auto-indented
end of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0cr Xxx             " include Xxx in the current file
[?25l[?1c"Xxx" 8L, 151C
start of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0cset fo+=r          " issue #57 do not move cursor on <c-o> when autoindent is 

set
[?25l[?1c:au! BufEnter Xxx[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a test
this should be in column 1
end of test file Xxx
[?25h[?0c[?25l[?1c
-- INSERT --
# abcdef[?25h[?0c[?25l[?1c
-- INSERT --
-- (insert) --
# def[?25h[?0c[?25l[?1cINSERT --defo[?25h[?0cd[?25l[?1c[?25h[?0c[?25l[?1c
-- INSERT --
# abcdef[?25h[?0c[?25l[?1c
-- INSERT --
-- (insert) --[?25h[?0c[?25l[?1c
-- INSERT --def:[?25h[?0cd[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c:[?25h[?0c?startstart?,$w! test.out
[?25l[?1c"test.out" [New] 20L, 330C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test4 = test61; then \
#	  if diff test.out test4.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test4.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test4.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test5.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that deletes the current buffer on BufLeave event.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/os_unix.o os_unix.c
[New File] 16 lines, 664 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufLeave Xxx bwipe
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx               " write test file Xxx
[?25l[?1c"Xxx" [New File] 7 lines, 124 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx                         " split to Xxx
[?25l[?1c"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                                                                             ?start?,$w! test.outWrite current file contentsbwipe test.out      delete alternate bufferau bufleave test5.in bwipebwipe!                         " 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                                                                        [?25h[?0c[?25l[?1c:[?25h[?0cbwipe                          " delete buffer Xxx, now we're back here
[?25l[?1cTest 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 hereG?this is aothis is some more text^[                    Append some text to this file
:?start?,$w! test.outWrite 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 1[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a test
end of test file Xxx[?25h[?0c[?25l[?1c
?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c
this is some more text[?25h[?0c[?25l[?1c
end of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0c                               " Append some text to this file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?start?,$w! test.out           " Write current file contents
[?25l[?1c"test.out" [New File] 8 lines, 147 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe test.out                 " delete alternate buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau bufleave test5.in bwipe
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!                         " delete current buffer, get an empty one
[?25l[?1cError 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[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1cthis is another test line[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 26 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c                               " append an extra line to the output file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test5 = test61; then \
#	  if diff test.out test5.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test5.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test5.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test7.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that changes the buffer list, when doing ":ball".[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 508 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of
[?25l[?1c[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx1   " write test file Xxx1
[?25l[?1c"Xxx1" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx1
[?25l[?1c"Xxx1" 4 lines, 77 charactersstart of test file Xxx1this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx1                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx1
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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 Xxx1[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx2    " write test file Xxx2
[?25l[?1c"Xxx2" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx2
[?25l[?1c"Xxx2" 4 lines, 77 charactersstart of test file Xxx2this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx2                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx2
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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 Xxx2[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx3    " write test file Xxx3
[?25l[?1c"Xxx3" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx3
[?25l[?1c"Xxx3" 4 lines, 77 charactersstart of test file Xxx3this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx3                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx3
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost Xxx2 bwipe
[?25l[?1c[?25h[?0c[?25l[?1c4[?25h[?0c[?25l[?1c:[?25h[?0cball                 " open window for all args, close Xxx2
[?25l[?1c"Xxx1"4 lines, 77 characters

"Xxx2" 4 lines, 77 characters

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c.,$w! test.out          " Write contents of this file
[?25l[?1c"test.out" [New File] 4 lines, 77 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c: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 Xxx4
test7.in [+]                                                                    start of test file Xxx1this is a testthis is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx1                                                                            [?25h[?0c
test7.in [+]                                                                    Xxx1                                                                            [?25l[?1c:[?25h[?0cw >>test.out        " Append contents of second window (Xxx1)
[?25l[?1c"test.out" 4 lines, 77 characters appended[?25h[?0ctest7.in [+]                                                                    Xxx1                                                                            [?25l[?1c:[?25h[?0c/^start of/,$w >>test.out   " Append contents of last window (this file)
[?25l[?1csearch hit BOTTOM, continuing at TOP"test.out" 4 lines, 77 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test7 = test61; then \
#	  if diff test.out test7.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test7.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test7.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test8.in
[?25h[?8c[?25h[?0c[?25l[?1c"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('$')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for BufWritePre autocommand that deletes or unloads the buffer.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1054 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTif 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWritePre Xxx1 bunload
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWritePre Xxx2 bwipe
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of
[?25l[?1c
start of Xxx[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c
:[?25h[?0c.,/end of/w! Xxx1  " write test file Xxx1
[?25l[?1c"Xxx1" [New File] 3 lines, 31 characters written[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx2   " write test file Xxx2
[?25l[?1c"Xxx2" [New File] 3 lines, 31 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! Xxx2                " edit Xxx2
[?25l[?1c"Xxx2" 3 lines, 31 charactersstart of Xxx2
        testend of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbdel test8.in^I^I" delete this file from the buffer list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce Xxx1                 " edit Xxx1
[?25l[?1c"Xxx1" 3 lines, 31 characters1
[?25h[?0c[?25l[?1c:[?25h[?0cw                      " write it, will unload it and give an error msg
[?25l[?1c"Xxx2"3 lines, 31 characters

E203: Autocommands deleted or unloaded buffer to be written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out            " Write contents of this file
[?25l[?1c"test.out" [New File] 3 lines, 31 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! Xxx2                " start editing Xxx2
[?25l[?1c"Xxx2" 3 lines, 31 charactersstart of Xxx2test
end of Xxx"Xxx2" 3 lines, 31 characters[?25h[?0c[?25l[?1c:[?25h[?0cbwipe test.out         " remove test.out from the buffer list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw                      " write it, will delete the buffer and give an error ms

g[?25l[?1c"Xxx1"3 lines, 31 characters
E203: Autocommands deleted or unloaded buffer to be written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out           " Append contents of this file
[?25l[?1c"test.out" 3 lines, 31 characters appended

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau! BufWritePre
[?25l[?1cstart of Xxx1test
end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0cfunc CloseAll()
[?25l[?1c
:  [?25h[?0c  let i = 0

[?25l[?1c:  [?25h[?0c  while i <= bufnr('$')

[?25l[?1c:    [?25h[?0c    if i != bufnr('%') && bufloaded(i)

[?25l[?1c:      [?25h[?0c      exe  i . "bunload"

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let i += 1

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cstart of Xxx1test
end of Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfunc WriteToOut()
[?25l[?1c
:  [?25h[?0c  edit! test.out

[?25l[?1c:  [?25h[?0c  $put ='VimLeave done'

[?25l[?1c:  [?25h[?0c  write

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cstart of Xxx1test
end of Xxx
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset viminfo='100,nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufUnload * call CloseAll()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau VimLeave * call WriteToOut()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce small.vim
[?25l[?1cError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"small.vim" 1 line, 1 character

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0csp mbyte.vim
[?25l[?1c"mbyte.vim" 0 lines, 0 characters~                                                                               ~                                                                               ~                                                                               mbyte.vim                                                                       small.vim                                                                       "mbyte.vim" 0 lines, 0 characters[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1cError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"test.out" 6 lines, 62 characters

"test.out" 7 lines, 76 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test8 = test61; then \
#	  if diff test.out test8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test8.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test9.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Bufleave autocommand that deletes the buffer we are about to edit.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 117 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufLeave test9.in bwipe yy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce yy
[?25l[?1cE143: Autocommands unexpectedly deleted new buffer yy[?25h[?0c[?25l[?1c:[?25h[?0c/^start of/,$w! test.out      " Write contents of this file
[?25l[?1c"test.out" [New File] 2 lines, 42 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test9 = test61; then \
#	  if diff test.out test9.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test9.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test9.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test14.in
[?25h[?8c[?25h[?0c[?25l[?1c"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\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>"
:else
: let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"
:endif
:exe "normal " . tt
:unlet tt
:.w >>test.out[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for "vaBiB", end could be wrong.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 56 lines, 1141 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 */{}}}[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cStart cursor here
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c{ 
                        cmd;    /* <-- Start cursor here */ 
                        { 
                        } 
                [?25h[?0c[?25l[?1c                cmd; 
                }[?25h[?0c[?25l[?1c


6 fewer lines        }Piece of Java{        tt m1 {                t1;e1[?25h[?0c[?25l[?1c:[?25h[?0c?Bug?,/Piece/-2w! test.out
[?25l[?1c"test.out" [New File] 3 lines, 44 characters written[?25h[?0c[?25l[?1c/[?25h[?0c^- Bug
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cs/u/~u~/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cs/i/~u~/
[?25l[?1cuuun "vPPPP" on this text (Webb):
[?25h[?0c[?25l[?1c:[?25h[?0cs/o/~~~/
[?25l[?1cuuuuuuuuun this text (Webb):
[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 48 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cif has("ebcdic")
[?25l[?1c
:  [?25h[?0c: let tt = "o\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>

"
[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:$put =@/
/^substitute
:keeppatterns s/asdf/xyz/
:$put =@/
/^substitute[?25h[?0c[?25l[?1c:[?25h[?0cexe "normal " . tt
[?25l[?1cABC !a^Og^G8[?25h[?0c[?25l[?1c:[?25h[?0cunlet tt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset vb
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Piece
[?25l[?1c[?25h[?0c[?25l[?1c{A[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1ctt m2 {[?25h[?0c[?25l[?1c{B[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1ct2;} e2tt m3 {[?25h[?0c[?25l[?1c{C[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1c{DC[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c{EA[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c{F[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 3 characters appended[?25h[?0c[?25l[?1c}G e1[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c
[?25l[?1cif (x){t3;}} e3[?25h[?0c[?25l[?1c}H e3[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c[?25l[?1c
}[?25h[?0c[?5h[?5l[?25l[?1c}I[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 3 characters appended[?25h[?0c[?25l[?1c}JH e3[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 8 characters appended[?25h[?0c[?25l[?1c}K e2[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c[?25l[?1c{LF[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^foobar
[?25l[?1cfoobar[?25h[?0c[?25l[?1c
:[?25h[?0clet startline = line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall search('foobar', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0ccall search('^$', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall search('^$', 'bc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ctwo
[?25l[?1csubstitute foo asdf

one two[?25h[?0c[?25l[?1c
:[?25h[?0ccall search('.', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), getline('.')[col('.') - 1:])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cs/foo/bar/
[?25l[?1cbar
[?25h[?0c[?25l[?1c:[?25h[?0c$put =@/
[?25l[?1csearch()
0
1
1
two
foo[?25h[?0c[?25l[?1c
/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0ckeeppatterns s/asdf/xyz/
[?25l[?1cxyz[?25h[?0c[?25l[?1c:[?25h[?0c$put =@/
[?25l[?1c
^substitute[?25h[?0c[?25l[?1c
/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c$put =@0
[?25l[?1c
substitute bar xyz[?25h[?0c[?25l[?1c
/[?25h[?0cbar /e
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =@0
[?25l[?1c
substitute bar xyz[?25h[?0c[?25l[?1c

:[?25h[?0ckeeppatterns /xyz
[?25l[?1c[?25h[?0c[?25l[?1c
/bar /exyz[?25h[?0c[?25l[?1c:[?25h[?0c/^search()/,$w >>test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 9 lines, 58 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test14 = test61; then \
#	  if diff test.out test14.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test14.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test14.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test15.in
[?25h[?8c[?25h[?0c[?25l[?1c"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/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :right on text with embedded TAB.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 401 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=65
[?25l[?1c[?25h[?0c[?25l[?1c
test for :left[?25h[?0c[?25l[?1c
:[?25h[?0c/^\s*test for :left/,/^\s*test for :center/ left
[?25l[?1csearch hit BOTTOM, continuing at TOPtest for :left[?25h[?0c[?25l[?1c:[?25h[?0c/^\s*test for :center/,/^\s*test for :right/ center
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^\s*test for :right/,/^xxx/-1 right
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fo+=tcroql tw=72
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cxxxxxxxx$
[?25l[?1casxa;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[?25h[?0c
[?25l[?1c
 xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xxxx xxxxxxx.
xxxx xxxx.xxxxxxx: xxxx xxxxxxx, xx xxxx xxxxxxx~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" undo/redo here to make the next undo only work on the following changes
[?25l[?1c[?25h[?0c[?25l[?1c1 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/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTESTtest for :leftaafaadfaasdfaaasdfaaxasdfaa
asxxdfaatest for :centeraafaafd asdf[?25h[?0c[?25l[?1c1 line less; after #1  0 seconds agotest for :lefta      afa    adfa      asdfaaasdfa           axasdfaa                test for :center  aa  fa        afd asdf[?25h[?0c
[?25l[?1c:[?25h[?0cmap gg :.,.+2s/^/x/<CR>kk:set tw=3<CR>gqq
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^aa
[?25l[?1casxxdfaaxxxoikeasxa;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[?25h[?0c[?25l[?1c


:.,.+2s/^/x/
3 substitutions on 3 linesxaa aa aa aa
xbb bb bb bb
xcc cc cc cc
[?25h[?0c[?25l[?1c:set tw=3
[?25h[?0c[?25l[?1c


3 more lines
aaaaaa3 more lines[?25h[?0c[?25l[?1c
3 fewer lines; before #2  0 seconds agoaa aa aa aa
bb bb bb bb
cc cc cc cc
~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0c?test for :left?,$w! test.out
[?25l[?1c"test.out"[New] 111L, 2304C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test15 = test61; then \
#	  if diff test.out test15.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test15.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test15.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test19.in
[?25h[?8c[?25h[?0c[?25l[?1c"test19.in" 33 lines, 692 charactersTests for "r<Tab>" 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![?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 447 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset smarttab expandtab ts=8 sw=4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure that backspace works, no matter what termcap is used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset t_kD=^^? t_kb=^^H
[?25l[?1cSTARTTEST
: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
[?25h[?0c[?25l[?1c
/[?25h[?0csome
[?25l[?1cstart textsome test text[?25h[?0c[?25l[?1c    ome test text[?25h[?0c[?25l[?1c
:[?25h[?0cset noexpandtab
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cother
[?25l[?1ctest textother test text[?25h[?0c[?25l[?1c    ther test text[?25h[?0c[?25l[?1c
a cde[?25h[?0c[?25l[?1c
:[?25h[?0c" Test replacing with Tabs and then backspacing to undo it
[?25l[?1c[?25h[?0c
    [?25l[?1c[?25h[?0c[?25l[?1c
f ghi[?25h[?0c[?25l[?1c
:[?25h[?0c" Test replacing with Tabs
[?25l[?1c[?25h[?0c
    [?25l[?1c     hi[?25h[?0c[?25l[?1c
test text[?25h[?0c[?25l[?1c
:[?25h[?0c" Test that copyindent works with expandtab set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset expandtab smartindent copyindent ts=8 sw=8 sts=8
[?25l[?1c[?25h[?0c[?25l[?1c{x[?25h[?0c[?25l[?1c
:[?25h[?0cset nosol
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cSecond line/
[?25l[?1c
Second line beginning with whitespace[?25h[?0c[?25l[?1c
  with whitespace[?25h[?0c[?25l[?1c
:[?25h[?0c?^start?,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 121 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test19 = test61; then \
#	  if diff test.out test19.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test19.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test19.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test20.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests Blockwise Visual when there are TABs before the text.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 107 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso tiny.vim
[?25l[?1c[?25h[?0c[?25l[?1csome texttest text
test text

Ox^[jAy^[kdd[?25h[?0c[?25l[?1cx[?25h[?0c
[?25l[?1cy[?25h[?0c[?25l[?1cy
Ox^[jAy^[kdd[?25h[?0c[?25l[?1c

2 changes; before #1  0 seconds ago[?25h[?0c
[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       123456
234567
345678test text test tex start here
                some texttest
test textOx^[jAy^[kdd
test20.in                                                                       [?25h[?0c[?25l[?1cx[+][?25h[?0c
[?25l[?1cy[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c1 line less; before #1  0 seconds ago   [?25h[?0c[?25l[?1c:[?25h[?0cquit!
[?25l[?1c: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[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
Ox^[jAy^[kdd[?25h[?0c[?25l[?1c
/[?25h[?0cstart here$
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cs[?25h[?0c[?25l[?1ce[?25h[?0c[?25l[?1ct t[?25h[?0c[?25l[?1cat [?25h[?0c[?25l[?1crt hereextex[?25h[?0c[?25l[?1c/[?25h[?0c456$
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c4
234[?25h[?0c[?25l[?1c5
345[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cstart here56
234start here67
345start here78[?25h[?0c[?25l[?1c:[?25h[?0c/56$/,$-1w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 10 lines, 106 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test20 = test61; then \
#	  if diff test.out test20.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test20.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test20.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test22.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for file with some lines ending in CTRL-M, some not^M[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 38 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset ta tx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce!
[?25l[?1c"test22.in" 13 lines, 197 characters[?25h[?0c[?25l[?1c:[?25h[?0c$-3,$w! test.out
[?25l[?1c"test.out" [New File] 4 lines, 79 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test22 = test61; then \
#	  if diff test.out test22.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test22.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test22.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test23.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for complicated + argument to :edit command[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 125 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c$-1w! Xfile1
[?25l[?1c"Xfile1" [New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xfile2
[?25l[?1c"Xfile2" [New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0cedit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 12 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce Xfile1
[?25l[?1c"Xfile1" 1 line, 11 charactersfooPIPEbar
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xfile1" 1 line, 11 characters[?25h[?0c[?25l[?1c:[?25h[?0cw >> test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test23 = test61; then \
#	  if diff test.out test23.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test23.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test23.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test24.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with backslash and other special characters inside [][?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 51 lines, 519 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\x]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text[?25h[?0c[?25l[?1c/[?25h[?0c[\t\]]
[?25l[?1c[?25h[?0c[?25l[?1ctext test tex[?25h[?0c[?25l[?1c/[?25h[?0c[]y]
[?25l[?1c[?25h[?0c[?25l[?1ctest text[?25h[?0c[?25l[?1c/[?25h[?0c[\]]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text[?25h[?0c[?25l[?1c/[?25h[?0c[y^]
[?25l[?1c[?25h[?0c[?25l[?1cst text[?25h[?0c[?25l[?1c/[?25h[?0c[$y]
[?25l[?1c[?25h[?0c[?25l[?1cxt test text[?25h[?0c[?25l[?1c/[?25h[?0c[\x61]
[?25l[?1c[?25h[?0c[?25l[?1cext test text  x61[?25h[?0c[?25l[?1c/[?25h[?0c[\x60-\x64]
[?25l[?1c[?25h[?0c[?25l[?1cext test text  x60-x64[?25h[?0c
[?25l[?1c/[?25h[?0c[\x785]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text  x78 5[?25h[?0c[?25l[?1c/[?25h[?0c[\o143]
[?25l[?1c
testc text test text  o143[?25h[?0c[?25l[?1c text test text  o143[?25h[?0c[?25l[?1c
/[?25h[?0c[\o140-\o144]
[?25l[?1c
tesdt text test text  o140-o144[?25h[?0c[?25l[?1ct text test text  o140-o14[?25h[?0c[?25l[?1c
/[?25h[?0c[\o417]
[?25l[?1c
test7 text test text  o41 7[?25h[?0c[?25l[?1c text test text  o41 7[?25h[?0c[?25l[?1c
/[?25h[?0c\%x42
[?25l[?1c
test text tBest text  \%x42[?25h[?0c[?25l[?1cest text  \%x42[?25h[?0c[?25l[?1c
/[?25h[?0c\%o103
[?25l[?1c
test text teCst text  \%o103[?25h[?0c[?25l[?1cst text  \%o103[?25h[?0c[?25l[?1c
/[?25h[?0c[\x00]
[?25l[?1c
test text ^@test text  [\x00][?25h[?0c[?25l[?1ctest text  [\x00][?25h[?0c[?25l[?1c
test te^@xt t^Dest t^Pext  [\x00-\x10][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\x00-\x10]//g
[?25l[?1c3 substitutions on 1 linext test text  [\x00-\x10][?25h[?0c[?25l[?1c
test \xyztext test text  [\x-z][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\x-z]\+//
[?25l[?1ctext test text  [\x-z][?25h[?0c[?25l[?1c
test text tev\uyst text  [\u-z][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\u-z]\{2,}//
[?25l[?1cst text  [\u-z][?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\+//
[?25l[?1c xx [?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a*\)\+//
[?25l[?1c[?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a*\)*//gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/pathdef.o auto/pathdef.c

[?25l[?1c[?25h[?0c[?25l[?1c
xx aaaaa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\{2,3}/A/
[?25l[?1cAaa xx[?25h[?0c[?25l[?1c
xx aaaaa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\{-2,3}/A/
[?25l[?1cAaaa x[?25h[?0c[?25l[?1c
xx aaa12aa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)*\(12\)\@>/A/
[?25l[?1cAaa xx[?25h[?0c[?25l[?1c
xx foobar xbar xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(foo\)\@<!bar/A/
[?25l[?1cA xx[?25h[?0c[?25l[?1c
xx an file xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(an\_s\+\)\@<=file/A/
[?25l[?1cA xx[?25h[?0c[?25l[?1c
x= 9;[?25h[?0c[?25l[?1c
:[?25h[?0cs/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
[?25l[?1cXX
[?25h[?0c[?25l[?1c
hh= 77;[?25h[?0c[?25l[?1c
:[?25h[?0cs/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
[?25l[?1cYY 77;[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0cs/aaa/xyz/
[?25l[?1cxyz
 [?25h[?0c[?25l[?1c
xyz[?25h[?0c[?25l[?1c
:[?25h[?0cs/~/bcd/
[?25l[?1cbcd
 [?25h[?0c[?25l[?1c
bcdbcdbcd[?25h[?0c[?25l[?1c
:[?25h[?0cs/~\+/BB/
[?25l[?1cBB[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?start?,$w! test.out
[?25l[?1c"test.out" [New] 32L, 586C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test24 = test61; then \
#	  if diff test.out test24.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test24.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test24.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test26.in
[?25h[?8c[?25h[?0c[?25l[?1c"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")[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for :execute, :while and :if[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 39 lines, 696 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet i = 0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i < 12
[?25l[?1c
:  [?25h[?0c:  let i = i + 1

[?25l[?1c:  [?25h[?0c:  if has("ebcdic")

[?25l[?1c:    [?25h[?0c:    execute "normal o" . i . "\047"

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    execute "normal o" . i . "\033"

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  if i % 2

[?25l[?1c:    [?25h[?0c:    normal Ax^^[

[?25l[?1c:    [?25h[?0c:    if i == 9

[?25l[?1c:      [?25h[?0c:      break

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if i == 5

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      let j = 9

[?25l[?1c:      [?25h[?0c:      while j > 0

[?25l[?1c:[?25h[?0c:        if has("ebcdic")

[?25l[?1c:[?25h[?0c:          execute "normal" j . "a" . j . "\x27"

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          execute "normal" j . "a" . j . "\x1b"

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:   gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv  -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE  -o objects/if_perl.o auto/if_perl.c
     let j = j - 1

[?25l[?1c:[?25h[?0c:      endwhile

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  if i == 9

[?25l[?1c:    [?25h[?0c:    if has("ebcdic")

[?25l[?1c:      [?25h[?0c:      execute "normal Az\047"

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      execute "normal Az\033"

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endwhile
[?25l[?1c:  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[?25h[?0c[?25l[?1c
:[?25h[?0cunlet i j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c't,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 159 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test26 = test61; then \
#	  if diff test.out test26.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test26.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test26.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test28.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for sourcing a file with CTRL-V's at the end of the line[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 114 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c/firstline/+1,/lastline/-1w! Xtestfile
[?25l[?1c"Xtestfile" [New File] 10 lines, 148 characters written[?25h[?0c[?25l[?1c:[?25h[?0cso Xtestfile
[?25l[?1c[?25h[?0c[?25l[?1c
sd
map __2 asd^[[?25h[?0c[?25l[?1csecond[?25h[?0cd  [?25l[?1csd^[[?25h[?0c^[  [?25l[?1csd^@map __5 asd^@[?25h[?0c[?25l[?1cfifth[?25h[?0c[?25l[?1c
:[?25h[?0c'm,$s/^@/0/g
[?25l[?1c0map __5 asd0fifth[?25h[?0c[?25l[?1c:[?25h[?0c'm,$w! test.out
[?25l[?1c"test.out" [New File] 2 lines, 45 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test28 = test61; then \
#	  if diff test.out test28.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test28.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test28.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test29.in
[?25h[?8c[?25h[?0c[?25l[?1c"test29.in" 230 lines, 4261 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for joining lines and marks in them[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 478 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nojoinspaces
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cfirstline/
[?25l[?1c[?25h[?0c
[?25l[?1c/[?25h[?0c^STARTTEST/-1
[?25l[?1c+-1
37 fewer linesSTARTTEST
/^{/+1[?25h[?0c[?25l[?1cmore linesasdfasdf.
asdf[?25h[?0c[?25l[?1casdf
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c
zx cv[?25l[?1cas dfg?
hjkl iop!
ert[?25h[?0c
hjkl i[?25l[?1c. as dfg? hjkl iop! ert
zx cvn.
as dfg?hjkl iop![?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions+=j
[?25l[?1c[?25h[?0c
zx cv
hjkl i[?25l[?1c. as dfg? hjkl iop! ertSTARTTEST[?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j joinspaces
[?25l[?1c[?25h[?0c
[?25l[?1c

37 more linesasdfasdf.
[?25h[?0c[?25l[?1casdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c  asdf[?25h[?0c[?25l[?1c
asdfasdf. [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c
zx cv[?25l[?1cas dfg?
hjkl iop![?25h[?0c
hjkl i[?25l[?1c.  as dfg?  hjkl iop!  ert
zx cvn.
as dfg?[?25h[?0c  er[?25l[?1ct  e[?25h[?0c
zx cv[?25l[?1cen[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c


:[?25h[?0cset cpoptions+=j
[?25l[?1c[?25h[?0c
zx cv[?25l[?1c
hjkl iop![?25h[?0c
hjkl i[?25l[?1c.  as dfg? hjkl iop! ertSTARTTEST[?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c


:[?25h[?0cset cpoptions-=j nojoinspaces compatible
[?25l[?1c[?25h[?0c
[?25l[?1c

37 more linesasdfasdf.
[?25h[?0c[?25l[?1casdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c  asdf[?25h[?0c[?25l[?1c
asdfasdf. [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c[?25l[?1c.  as dfg? hjkl iop! ert[?25h[?0c[?25l[?1ct  a[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c[?25l[?1c
/[?25h[?0cSTARTTEST/-2
[?25l[?1c+-2
4 fewer lines[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 147 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set comments=s1:/*,mb:*,ex:*/,://
:set nojoinspaces fo=j
:set backspace=eol,start
:.,+3join
j4J
:.,+2join
j3J
:.,+2join
j3J
:.,+2join
jj3J
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{[?25h[?0c[?25l[?1c
:[?25h[?0cset comments=s1:/*,mb:*,ex:*/,://
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nojoinspaces fo=j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace=eol,start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,+3join
[?25l[?1c/* Make sure the previous comment leader is not removed. */
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c/* Make sure the previous comment leader is not removed. */
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1c// Should the next comment leader be left alone? Yes.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c// Should the next comment leader be left alone? Yes.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1cif (condition) // Remove the next comment leader! OK, I will.
[?25h[?0c[?25l[?1c
action();[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cif (condition) // Remove the next comment leader! OK, I will.
[?25h[?0c[?25l[?1c
action();
[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:" Test with backspace set to the non-compatible setting
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 17 lines, 347 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:inoremap <c-u> <left><c-u>
Avim3^U^[
:iunmap <c-u>
Avim4^U^U^[
:" Test with backspace set to the compatible setting
:set backspace= visualbell
A vim5^[A^U^U^[
A vim6^[Azwei^Gu^U^[
:inoremap <c-u> <left><c-u>
A vim7^U^U^[
:set compatible novisualbell
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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" Test with backspace set to the non-compatible setting
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^\d\+ this
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cp bs=2
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0cd    [?25l[?1cvim2[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <c-u> <left><c-u>
[?25l[?1c[?25h[?0c[?25l[?1cd3[?25h[?0c[?25l[?1c:[?25h[?0ciunmap <c-u>
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0c" Test with backspace set to the compatible setting
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace= visualbell
[?25l[?1c[?25h[?0c[?25l[?1cvim5[?25h[?0c[?5h[?5l[?5h[?5l[?25l[?1cd vim6[?25h[?0c6    [?25l[?1czwei[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <c-u> <left><c-u>
[?25l[?1c[?25h[?0c[?5h[?5l[?5h[?5l[?25l[?1cvim7[?25h[?0c
[?25l[?1c:[?25h[?0cset compatible novisualbell
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 21 lines, 356 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/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.
 */[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments=sO:*\ -,mO:*\ \ ,exO:*/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments+=s1:/*,mb:*,ex:*/,://
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments+=s1:>#,mb:#,ex:#<,:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j joinspaces fo=j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace=eol,start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,+3join
[?25l[?1c/* Make sure the previous comment leader is not removed.  *//* List:
 * - item1
 *   foo bar baz[?25h[?0c
[?25l[?1c/* Make sure the previous comment leader is not removed.  */*   foo bar baz
 * - item2
 *   foo bar baz[?25h[?0c
[?25l[?1c:[?25h[?0c.,+8join
[?25l[?1c/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz *//* List:- item1  foo bar baz
 * - item2[?25h[?0c
[?25l[?1c/* 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?[?25h[?0c
[?25l[?1c:[?25h[?0c.,+2join
[?25l[?1cShould the next comment leader be left alone?  Yes.


// Yes.[?25h[?0c
[?25l[?1c// Should the next comment leader be left alone?  Yes.* Here the comment leader should be left intact. */
// And so should this one.[?25h[?0c
[?25l[?1c


:[?25h[?0c.,+2join
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.* Here the comment leader should be left intact. */[?25h[?0c
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.[?25h[?0c
[?25l[?1c:[?25h[?0c.,+2join
[?25l[?1cif (condition) // Remove the next comment leader!  OK, I will.
[?25h[?0c[?25l[?1c
action();[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cif (condition) // Remove the next comment leader!  OK, I will.
[?25h[?0c[?25l[?1c
action();
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1cint i = 7 /* foo *// 3 // comment
[?25h[?0c[?25l[?1c
;[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cint i = 7 /* foo *// 3 // comment
[?25h[?0c[?25l[?1c
;
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+5join
[?25l[?1c># 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.[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c># 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.[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cSome code!
// Make sure backspacing does not remove this comment leader.[?25h[?0c
[?25l[?1c// Make sure backspacing does not remove this comment leader.
}[?25h[?0c
[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 61 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:?firstline?+1,$w! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c74 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.
}[?25h[?0c[?25l[?1c:[?25h[?0c?firstline?+1,$w! test.out
[?25l[?1c"test.out" [New File] 97 lines, 3018 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test29 = test61; then \
#	  if diff test.out test29.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test29.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test29.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test31.in
[?25h[?8c[?25h[?0c[?25l[?1c"test31.in" 95 lines, 1832 charactersTest for commands that close windows and/or buffers:
:quit
:close
:hide
:only
:sall
:all
:ball
:buf
:edit

STARTTEST
:so small.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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for commands that close windows and/or buffers:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 80 lines, 1697 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" test ":q!" and hidden buffer.
:bw! Xtest1 Xtest2 Xtest3 Xtest4
:sp Xtest1
:wincmd w
:bw!
:set modified
:bot sp Xtest2
:set modified
:bot sp Xtest3
:set modified
:wincmd t
:hide
:q!
:w >>test.out
:q!
:w >>test.out
:q!
:call append(line('$'), "Oh, Not finished yet.")
:w >>test.out
:qa!
ENDTEST

testtext[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c
[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest1
[?25l[?1c"Xtest1" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest2
[?25l[?1c"Xtest2" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest3
[?25l[?1c"Xtest3" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0cn! Xtest1 Xtest2
[?25l[?1c"Xtest1" 1 line, 11 characterstesttext 1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for working :n when hidden set; write "testtext 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cn
[?25l[?1c"Xtest2" 1 line, 11 characters2[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" test for failing :rew when hidden not set; write "testtext 2 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0crew
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test for working :rew when hidden set; write "testtext 1 1"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0crew
[?25l[?1c"Xtest1" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)1 1
[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test for :all keeping a buffer when it's modified; write "testtext 1 1 1"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0csp
[?25l[?1cXtest1 [+]                                                                      testtext 1 1 1Xtest1 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cn Xtest2 Xtest3
[?25l[?1c"Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)2 22[?25h[?0c[?25l[?1c:[?25h[?0call
[?25l[?1c"Xtest3" 1 line, 11 characterstesttext 1 1 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1cXtest1 [+]                                                                      Xtest2 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test abandoning changed buffer, should be unloaded even when 'hidden' set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 2 2" twice
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c1 1[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1ctesttext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cunhide
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":hide" hides anyway when 'hidden' not set; write "testtext 3"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0chide
[?25l[?1c3~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":edit" failing in modified buffer when 'hidden' not set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 3 3"
[?25l[?1c[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1

"[?25l[?1ctesttext 3 3[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1c"Xtest1" 1 line, 11 characters1[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":close" not hiding when 'hidden' not set in modified buffer;
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 3 3 3"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest3
[?25l[?1c"Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)3 3Xtest3 [+]                                                                      testtext 1Xtest1                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":close!" does hide when 'hidden' not set in modified buffer;
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 1"
[?25l[?1c[?25h[?0c[?25l[?1c3 3[?25h[?0c[?25l[?1c:[?25h[?0cclose!
[?25l[?1c1~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test ":all!" hides changed buffer; write "testtext 2 2 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest4
[?25l[?1c"Xtest4" [New File]Xtest4                                                                          testtext 1Xtest1                                                                          [?25h[?0c[?25l[?1c 4[+][?25h[?0c[?25l[?1c:[?25h[?0call!
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1ctesttext 2 2 2
~                                                                               Xtest2 [+]                                                                      testtext 3 3 3 3~                                                                               3 [+][?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test ":q!" and hidden buffer.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbw! Xtest1 Xtest2 Xtest3 Xtest4
[?25l[?1c"test31.in"95 lines, 1832 characters

4 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest1
[?25l[?1c"Xtest1" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               Xtest1                                                                          :w >>test.out:q!:w >>test.out:q!:call append(line('$'), "Oh, Not finished yet."):w >>test.out:qa!ENDTESTtesttexttest31.in "Xtest1" 1 line, 11 characters[?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1cXtest1                                                                          test31.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cbw!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbot sp Xtest2
[?25l[?1c"Xtest2" 1 line, 11 charactersXtest1 [+]                                                                      testtext 2Xtest2                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cbot sp Xtest3
[?25l[?1c"Xtest3" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cwincmd t
[?25l[?1cXtest1 [+]                                                                      Xtest3 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0chide
[?25l[?1ctesttext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c3~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1cE37: No write since last change

E162: No write since last change for buffer "Xtest1"

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test31 = test61; then \
#	  if diff test.out test31.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test31.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test31.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test33.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'lisp'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 63 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset lisp
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^(defun
[?25l[?1c[?25h[?0c[?25l[?1c22 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[?25h[?0c[?25l[?1c:[?25h[?0c/^(defun/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 23 lines, 544 characters written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test33 = test61; then \
#	  if diff test.out test33.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test33.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test33.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test34.in
[?25h[?8c[?25h[?0c[?25l[?1c"test34.in" 87 lines, 1833 charactersTest for user functions.
Also test an <expr> 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for user functions.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 78 lines, 1621 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction Table(title, ...)
[?25l[?1c
:  [?25h[?0c:  let ret = a:title

[?25l[?1c:  [?25h[?0c:  let idx = 1

[?25l[?1c:  [?25h[?0c:  while idx <= a:0

[?25l[?1c:    [?25h[?0c:    exe "let ret = ret . a:" . idx

[?25l[?1c:    [?25h[?0c:    let idx = idx + 1

[?25l[?1c:    [?25h[?0c:  endwhile

[?25l[?1c:  [?25h[?0c:  return ret

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c: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[?25h[?0c[?25l[?1c

:[?25h[?0cfunction Compute(n1, n2, divname)
[?25l[?1c
:  [?25h[?0c:  if a:n2 == 0

[?25l[?1c:    [?25h[?0c:    return "fail"

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  exe "let g:" . a:divname . " = ". a:n1 / a:n2

[?25l[?1c:  [?25h[?0c:  return "ok"

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c: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))[?25h[?0c[?25l[?1c

:[?25h[?0cfunc Expr1()
[?25l[?1c
:  [?25h[?0c:  normal! v

[?25l[?1c:  [?25h[?0c:  return "111"

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc Expr2()
[?25l[?1c
:  [?25h[?0c:  call search('XX', 'b')

[?25l[?1c:  [?25h[?0c:  return "222"

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc ListItem()
[?25l[?1c
:  [?25h[?0c:  let g:counter += 1

[?25l[?1c:  [?25h[?0c:  return g:counter . '. '

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc ListReset()
[?25l[?1c
:  [?25h[?0c:  let g:counter = 0

[?25l[?1c:  [?25h[?0c:  return ''

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc FuncWithRef(a)
[?25l[?1c
:  [?25h[?0c:  unlet g:FuncRef

[?25l[?1c:  [?25h[?0c:  return a:a

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0clet g:FuncRef=function("FuncWithRef")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet counter = 0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <expr> ( ListItem()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <expr> [ ListReset()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cimap <expr> + Expr1()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cimap <expr> * Expr2()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet retval = "nop"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^here
[?25l[?1c[?25h[?0c[?25l[?1cher$=[?25h[?0cTable("xxx", 4, "asdf")
[?25l[?1c=[?25h[?0cCompute(45, 0, "retval")
[?25l[?1c=[?25h[?0cretval
[?25l[?1c=[?25h[?0cCompute(45, 5, "retval")
[?25l[?1c=[?25h[?0cretval
[?25l[?1c=[?25h[?0cg:FuncRef(333)

[?25l[?1cError detected while processing function Expr1:

line    1:

E523: Not allowed here

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:    $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. two[?25h[?0c[?25l[?1c1. one again[?25h[?0c[?25l[?1c
:[?25h[?0ccall append(line('$'), max([1, 2, 3]))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall extend(g:, {'max': function('min')})
[?25l[?1cE704: Funcref variable name must start with a capital: max[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), max([1, 2, 3]))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:    " Regression: the first line below used to throw ?E110: Missing ')'?

[?25l[?1c:  [?25h[?0c:    " Second is here just to prove that this line is correct when not skipp

ing

[?25l[?1c:  [?25h[?0c:    " rhs of &&.

[?25l[?1c:  [?25h[?0c:    $put =(0&&(function('tr'))(1, 2, 3))

[?25l[?1c:  [?25h[?0c:    $put =(1&&(function('tr'))(1, 2, 3))

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:    $put ='!!! Unexpected exception:'

[?25l[?1c:  [?25h[?0c:    $put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c:    $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[?25h[?0c[?25l[?1c
:[?25h[?0c$-9,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 81 characters written[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Table
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Compute
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Expr1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Expr2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc ListItem
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc ListReset
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cunlet retval counter
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test34 = test61; then \
#	  if diff test.out test34.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test34.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test34.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test36.in
[?25h[?8c[?25h[?0c[?25l[?1c"test36.in" 108 lines, 2025 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest character classes in regexp using regexpengine 0, 1, 2.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 101 lines, 1850 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTp: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
p:s/\%#=0\%204l^\t...//g
p:s/\%#=1\%205l^\t...//g
p:s/\%#=2\%206l^\t...//g
:/^start-here/+1,$wq! test.out
ENDTEST







:[?25h[?0cs/\%#=0\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\O//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\O//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-7]//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-7]//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c




~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\X//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\X//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=1[^0-9A-Fa-f]//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c





:[?25h[?0cs/\%#=0\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\U//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\U//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Z]//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Z]//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test36 = test61; then \
#	  if diff test.out test36.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test36.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test36.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test37.in
[?25h[?8c[?25h[?0c[?25l[?1c"test37.in" 116 lines, 3262 charactersTest for 'scrollbind'. <eralston@computer.org>   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 --[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below![?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 1498 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt=ver,jump
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrolloff=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nowrap
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noequalalways
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset splitbelow
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST using two windows open to one buffer, one extra empty window
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c^WtH3k^WtHyybp^Wt^Wjyy^Wbp:
:" ***** done with tests *****
:w! test.out    " Write contents of this file
:qa!ENDTESTstart of window 1. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02test37.in                                                                       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!ENDTESTstart of window 11122
test37.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c:w! test.out             " Write contents of this file
:qa!ENDTESTtest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name][?25h[?0ctest37.in                                                                       [No Name]                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cresize 8
[?25l[?1c:" ***** done with tests *****w! test.out             " Write contents of this file
:qa!ENDTESTstart of window 1
. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
test37.in                                                                       :" ***** done with tests *****:w! test.out             " Write contents of this fileqa!ENDTESTstart of window 1[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 1$/
[?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0ctest37.in                                                                       test37.in                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cresize 7
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 2$/
[?25l[?1cend of window 1start of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03[?25h[?0c[?25l[?1c
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" -- start of tests --
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling down
[?25l[?1c[?25h[?0c

[?25l[?1c. 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 09[?25h[?0ctest37.in                                                                       [No Name]                                                                       [?25l[?1c
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[+][?25h[?0c[?25l[?1c0[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?25h[?0c[?25l[?1c1[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   


[?25l[?1c. 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 15[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c2[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling up
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08440505060607070808090900[?25h[?0ctest37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?25h[?0c[?25l[?1c4[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?25h[?0c[?25l[?1c5[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1cstart 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
[?25h[?0ctest37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?25h[?0c[?25l[?1c6[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c7[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST horizontal scrolling
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt+=hor
[?25l[?1c[?25h[?0c[?25l[?1c05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c4 line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
5 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0656789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1cUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415UTSRQPONMLKJIHGREDCBA9876543210 09101112131415[?25h[?0c[?25l[?1c. 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 15[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   
test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt-=hor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" ****** tests using two different buffers *****
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       test37.in                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cstart of window 20000000000[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of window 2$/,/^end of window 2$/y
[?25l[?1c18 lines yanked[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1ctest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name][?25h[?0ctest37.in                                                                       [No Name]                                                                       test37.in                                                                       [No Name]                                                                       [?25l[?1c4 more lines[+][?25h[?0c


[?25l[?1c18 more linesstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c/[?25h[?0c^start of window 1$/
[?25l[?1csearch hit BOTTOM, continuing at TOPENDTESTstart of window 1010102020303[?25h[?0c[?25l[?1c
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 2$/
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" -- start of tests --
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling down
[?25l[?1c[?25h[?0c


[?25l[?1c. 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[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
[?25h[?0c[?25l[?1c0[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
[?25h[?0c[?25l[?1c1[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   

[?25l[?1c. 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 16[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
[?25h[?0c[?25l[?1c2[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling up
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c440505060607070808090900. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?25h[?0c[?25l[?1c4[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?25h[?0c[?25l[?1c5[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1cstart 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
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?25h[?0c[?25l[?1c6[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c7[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST horizontal scrolling
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt+=hor
[?25l[?1c[?25h[?0c[?25l[?1c05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
46 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
56 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06UTSRQPONMLKJIHGREDCBA9876543210 07[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1cUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415

UTSRQPONMLKJIHGREDCBA9876543210 0910111213141516[?25h[?0c[?25l[?1c. 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[?25h[?0c[?25l[?1c[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   
test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt-=hor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST syncbind
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below!
STARTTEST:so small.vim:set noscrollbind:set scrollopt=ver,jump:set scrolloff=2:set nowrap[?25h[?0c


test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cstart of window 201010202[?25h[?0c[?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0c[?25l[?1c. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1czt::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] [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0csyncbind
[?25l[?1c[?25h[?0c[?25l[?1c/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
:set scrollbind
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below!
STARTTEST
:so small.vimset noscrollbindset scrollopt=ver,jump
:set scrolloff=2set nowrap[?25h[?0c


test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0c[?25l[?1c. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1czt::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] [+]                                                                   [?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0csyncbind
[?25l[?1c[?25h[?0c[?25l[?1c/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
:set scrollbind
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1czt:
:set scrollbind
^Wj:
:resize 7. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
^Wj:
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" ***** done with tests *****
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out             " Write contents of this file
[?25l[?1c"test.out" [New File] 33 lines, 1329 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test37 = test61; then \
#	  if diff test.out test37.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test37.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test37.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test38.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 407 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTopq 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure that backspace works, no matter what termcap is used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset t_kD=^^? t_kb=^^H
[?25l[?1c^[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
[?25h[?0c[?25l[?1cTest 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[?25h[?0c[?25l[?1c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c
abcdefghijk      lmn    opq rstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0cset ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bs=2
[?25l[?1c[?25h[?0c[?25l[?1c 1
 A BCDEFGHIJ    KL        MNOPQR[?25h[?0c[?25l[?1c:[?25h[?0cka
[?25l[?1c[?25h[?0c[?25l[?1cabcdefghijk      lmn    opq rstuvwxyz[?25h[?0c
[?25l[?1c 1[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1cab      cdefghi jkl[?25h[?0c
[?25l[?1cAB......CDEFGHI.J[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cabcdefghijklmnopqrst[?25h[?0c
[?25l[?1cAB      IJKLMNO QR[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 13 lines, 107 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test38 = test61; then \
#	  if diff test.out test38.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test38.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test38.in; \
#	  fi \
#	fi"
# 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.
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test39.in
[?25h[?8c[?25h[?0c[?25l[?1c"test39.in" 118 lines, 2435 charactersTest Visual block mode commands
And test "U" in Visual mode, also on German sharp S.

#define BO_ALL      0x0001
#define BO_BS0x0002
#define BO_CRSR     0x0004

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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 75 lines, 2061 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:exe ":norm! 2k\<C-V>$gj\<Esc>"
:let cpos=getpos("'>")
:$put ='col:'.cpos[2].' off:'.cpos[3]
:"
:" block_insert when replacing spaces in front of the block with tabs
:set ts=8 sts=4 sw=4
:4,7y
Gp
:exe ":norm! f0\<C-V>2jI\<tab>\<esc>"
:/^the/,$w >> test.out
:qa!
ENDTESTline1line2line3

aaaaaa
bbbbbb
cccccc
dddddd

xaaa[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This only works when 'encoding' is "latin1", don't depend on the environment
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c:exe ":norm! 2k\<C-V>$gj\<Esc>"
:let cpos=getpos("'>")
:$put ='col:'.cpos[2].' off:'.cpos[3]
:"
:" block_insert when replacing spaces in front of the block with tabs
:set ts=8 sts=4 sw=4
:4,7y
Gp
:exe ":norm! f0\<C-V>2jI\<tab>\<esc>"
:/^the/,$w >> test.out
:qa!
ENDTESTline1line2line3

aaaaaa
bbbbbb
cccccc
dddddd

xaaa[?25h[?0c[?25l[?1c/[?25h[?0c^abcde
[?25l[?1cbbbb
cccc
dddd

yaaa
bbb

A23
4567

B23
4567

C23
4567

abcdefghijklm[?25h[?0c[?25l[?1c
:[?25h[?0c" Test shift-right of a block
[?25l[?1c[?25h[?0c[?25l[?1c
abcdefghijklm[?25h[?0cabcd[?25l[?1c[?25h[?0c[?25l[?1c
e
abcdefghijklm
abcd[?25h[?0c[?25l[?1c
e
abcdefghijklm
abcd[?25h[?0c[?25l[?1c
3 lines >ed 1 time        efghijklm
abcd        efghijklm
abcd        efghijklm[?25h[?0c     ef[?25l[?1c[?25h[?0c[?25l[?1cg[?25h[?0c[?25l[?1chg[?25h[?0c[?25l[?1cih[?25h[?0c[?25l[?1cji[?25h[?0c[?25l[?1c        ghijklm        ghijklm[?25h[?0c[?25l[?1c:[?25h[?0c" Test shift-left of a block
[?25l[?1c[?25h[?0c[?25l[?1c
abcdefghijklm[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci[?25h[?0c[?25l[?1c [?25h[?0c[?25l[?1c


3 lines <ed 1 timeef    efghijklmi[?25h[?0c[?25l[?1c:[?25h[?0c" Test block-insert
[?25l[?1c[?25h[?0c
a[?25l[?1c[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1c
ab
ab
abxyzbcdefghijklm
axyzbcd
axyzbcd
axyzbcd[?25h[?0c
a[?25l[?1c:[?25h[?0c" Test block-replace
[?25l[?1c[?25h[?0c


abcd[?25l[?1c[?25h[?0c[?25l[?1ce[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cbccf[?25h[?0c[?25l[?1ccddg[?25h[?0c[?25l[?1cd  h[?25h[?0c[?25l[?1cqqqq
axyzqqqq
axyzqqqq
abcdqqqq[?25h[?0c
axyz[?25l[?1c:[?25h[?0c" Test block-change
[?25l[?1c[?25h[?0c

[?25l[?1c[?25h[?0c[?25l[?1cj[?25h[?0c[?25l[?1ci[?25h[?0c[?25l[?1c     ghijkl[?25h[?0c[?25l[?1cef  gkl[?25h[?0c[?25l[?1cmnomnomno[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$w! test.out
[?25l[?1c"test.out" [New File] 5 lines, 108 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Test block-insert using cursor keys for movement
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^aaaa/
[?25l[?1csearch hit BOTTOM, continuing at TOPaaaaaa
bbbbbb
cccccc
ddddddsearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>jjjlllI\<Right>\<Right>  \<Esc>"
[?25l[?1c  aaa
bbb  bbb
ccc  ccc
ddd  ddd[?25h[?0c[?25l[?1c:[?25h[?0c/^aa/,/^$/w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 37 characters appended[?25h[?0c[?25l[?1c/[?25h[?0cxaaa$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-V>jjjI<>\<Left>p\<Esc>"
[?25l[?1c<p>xaaa
<p>bbbb
<p>cccc
<p>dddd[?25h[?0c[?25l[?1c:[?25h[?0c/xaaa$/,/^$/w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 33 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the last <C-v>$
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^A23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$Aab\<Esc>"
[?25l[?1cab
4567ab[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 14 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the middle <C-v>$ (1)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^B23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$hAab\<Esc>"
[?25l[?1cab
4567ab[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the middle <C-v>$ (2)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^C23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$hhAab\<Esc>"
[?25l[?1cab
456ab7[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 14 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block insert when virtualedit=all and utf-8 encoding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all enc=utf-8
[?25l[?1caaa  aaa
bbb  bbb
ccc  ccc
ddd  ddd

<p>xaaa
<p>bbbb
<p>cccc
<p>dddd

yaaa
<bf><bf><bf>
bbb

A23ab
4567ab

B23 ab
4567ab

C23ab
456ab7[?25h[?0c[?25l[?1c


:[?25h[?0c/\t\tline
[?25l[?1csearch hit BOTTOM, continuing at TOPline1line2line3search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 07l\<C-V>jjIx\<Esc>"
[?25l[?1cxxx[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 4 lines, 49 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block append when virtualedit=all
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 012l\<C-v>jjAx\<Esc>"
[?25l[?1cx   line1x   line2x   line3[?25h[?0c[?25l[?1c:[?25h[?0cset ve= enc=latin1
[?25l[?1cx     x   line1x     x   line2x     x   line3

aaa  aaa
bbb  bbb
ccc  ccc
ddd  ddd

<p>xaaa
<p>bbbb
<p>cccc
<p>dddd

yaaa
bbb

A23ab
4567ab

B23 ab
456ab7

axyzbcdefghijklm
axyzqqqq   mnoghijklm
axyzqqqqef mnoghijklm
axyzqqqqefgmnoklm
abcdqqqqijklm[?25h[?0c[?25l[?1c
the [?25l[?1c
:[?25h[?0c" VU must uppercase a whole line
[?25l[?1c[?25h[?0c[?25l[?1c
[?25l[?1c
:[?25h[?0c" same, when it's the last line in the buffer
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
[?25l[?1c
:[?25h[?0c" Uppercase two lines
[?25l[?1c[?25h[?0c[?25l[?1c
blah didoh dut[?25h[?0c[?25l[?1c
doh dut [?25h[?0c[?25l[?1cblah di t[?25h[?0c[?25l[?1c
BLAH DIDOH DUT[?25h[?0c[?25l[?1c
:[?25h[?0c" Uppercase part of two lines
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c
333the yo[?25h[?0c[?25l[?1cut[?25h[?0c[?25l[?1cUTUSSEUU END
333THE YOUTU[?25h[?0c[?25l[?1c

:[?25h[?0c" visual replace using Enter or NL
[?25l[?1c[?25h[?0c
[?25l[?1c123456789
123456789
123456789[?25h[?0c
12345[?25l[?1c[?25h[?0c[?25l[?1c66[?25h[?0c[?25l[?1c789[?25h[?0c[?25l[?1c789
12345
789
[?25h[?0c[?25l[?1c98765
98765
98765[?25h[?0c
98[?25l[?1c[?25h[?0c[?25l[?1c7
987
98[?25h[?0c[?25l[?1c^M65
98^M65
98^M65[?25h[?0c
98
[?25l[?1c123456789
123456789
123456789[?25h[?0c
12345[?25l[?1c[?25h[?0c[?25l[?1c66[?25h[?0c[?25l[?1c789[?25h[?0c[?25l[?1c789
12345
789
[?25h[?0c[?25l[?1c98765
98765
98765[?25h[?0c
98[?25l[?1c[?25h[?0c[?25l[?1c7
987
98[?25h[?0c[?25l[?1c^@65
98^@65
98^@65[?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test cursor position. When ve=block and Visual block mode and $gj
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=block
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 2k\<C-V>$gj\<Esc>"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet cpos=getpos("'>")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='col:'.cpos[2].' off:'.cpos[3]
[?25l[?1c
col:4 off:0[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" block_insert when replacing spaces in front of the block with tabs
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ts=8 sts=4 sw=4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c4,7y
[?25l[?1c4 lines yanked[?25h[?0c[?25l[?1c
4 more lines
4 more lines[?25h[?0c[?25l[?1c
#define BO_ALL      0x0001[?25h[?0c[?25l[?1c
:[?25h[?0cexe ":norm! f0\<C-V>2jI\<tab>\<esc>"
[?25l[?1c    0x0001
#define BO_BS0x0002
#define BO_CRSR0x0004[?25h[?0c[?25l[?1c


:[?25h[?0c/^the/,$w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 31 lines, 322 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test39 = test61; then \
#	  if diff test.out test39.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test39.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test39.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test40.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for "*Cmd" autocommands[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o vim objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o  objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/json.o objects/main.o objects/memfile.o objects/message.o        -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
[New File] 55 lines, 1455 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start/,$w! Xxx^I^I" write lines below to Xxx
[?25l[?1c"Xxx" [New File] 3 lines, 32 characters written[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadCmd XtestA 0r Xxx|$del
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce XtestA^I^I^I" will read text of Xxd instead
[?25l[?1c"Xxx" 3 lines, 32 charactersstart of Xxx        test40end of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau BufWriteCmd XtestA call append(line("$"), "write")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw^I^I^I^I" will append a line to the file
[?25l[?1cwrite[?25h[?0c[?25l[?1c:[?25h[?0cr XtestA^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestA[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" now we have:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileReadCmd XtestB '[r Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2r XtestB^I^I^I" will read Xxx below line 2 instead
[?25l[?1c"Xxx" 3 lines, 32 charactersstart of Xxxtest40
end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWriteCmd XtestC '[,']copy $
[?25l[?1c[?25h[?0c[?25l[?1ctest401[?25h[?0c[?25l[?1c:[?25h[?0c4,5w XtestC^I^I^I" will copy lines 4 and 5 to the end
[?25l[?1c        test401end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0cr XtestC^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestC[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 8^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 9^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FILEAppendCmd XtestD '[,']w! test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>XtestD^I^I^I" will write all lines to test.out
[?25l[?1c"test.out" [New File] 9 lines, 91 characters written[?25h[?0c[?25l[?1c:[?25h[?0c$r XtestD^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestD[?25h[?0c[?25l[?1c:[?25h[?0c$w >>test.out^I^I^I" append "end of Xxx" to test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadCmd XtestE 0r test.out|$del
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp XtestE^I^I^I" split window with test.out
[?25l[?1c"test.out" 10 lines, 102 charactersend of XxxXtestE                                                                          end of Xxxwrite        test401end of XxxXtestA                                                                          [?25h[?0c[?25l[?1casdf[+][?25h[?0cXtestE [+]                                                                      XtestA                                                                          [?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWriteCmd XtestE w! test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwall^I^I^I^I" will write other window to test.out
[?25l[?1c"test.out" 11 lines, 107 characters written   [?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iasdf
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 8^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 9^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 10^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 11^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test40 = test61; then \
#	  if diff test.out test40.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test40.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test40.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test41.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for writing and reading a file of over 100 Kbyte[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 13 lines, 196 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cThis is the start
This is the leaderThis is the middleThis is the trailerThis is the end[?25h[?0c[?25l[?1c3000 more linestrailer
This is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailer[?25h[?0c[?25l[?1cleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader[?25h[?0c
[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 6005 lines, 117092 characters written[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest
[?25l[?1c"Xtest" 6005 lines, 117092 charactersThis is the start
This is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leader[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 18 characters written[?25h[?0c[?25l[?1cThis 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[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 19 characters appended[?25h[?0c[?25l[?1cThis 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
[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 16 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test41 = test61; then \
#	  if diff test.out test41.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test41.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test41.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test42.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for writing and reading a file starting with a BOM[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" link.sh: Linked fine
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-nox'
[ yes != "yes" ] || flock debian /usr/bin/make -j1 -C src/vim-nox test
[New File] 111 lines, 2116 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
utf-8
utf-8
utf-8-err
utf-8~@err
ucs-2
ucs-2le
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1c: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
<fe><fe>latin-1
utf-8
<feff>utf-8
utf-8-err
<feff>utf-8<80>err
ucs-2
<fe><ff>^@u^@c^@s^@-^@2^@
ucs-2le
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?25h[?0c[?25l[?1c:[?25h[?0cset fileencodings=ucs-bom,latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix ffs=unix           " This changes the file for DOS and MAC
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Write the test files
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^latin-1$/+1w! Xtest0
[?25l[?1c"Xtest0" [New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^utf-8$/+1w! Xtest1
[?25l[?1c"Xtest1" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^utf-8-err$/+1w! Xtest2
[?25l[?1c"Xtest2" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-2$/+1w! Xtest3
[?25l[?1c"Xtest3" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-2le$/+1w! Xtest4
[?25l[?1c"Xtest4" [New File] 1 line, 17 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Need to add a NUL byte after the NL byte
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest4                      " Ignore change from setting 'ff'
[?25l[?1c"Xtest4" 1 line, 17 characters<ff><fe>u^@c^@s^@-^@2^@l^@e^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c^@[?25h[?0c[?25l[?1c:[?25h[?0cset noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtest4" [Incomplete last line] 2 lines, 18 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset ffs& nobinary              " Allow default test42.in format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce #
[?25l[?1c"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-1utf-8utf-8utf-8-errutf-8<80>errucs-2þÿ^@u^@c^@s^@-^@2^@ucs-2leÿþu^@c^@s^@-^@2^@l^@e^@ucs-4[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix                    " Format for files to write
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-4$/+1w! Xtest5
[?25l[?1c"Xtest5" [converted][New File] 1 line, 30 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-4le$/+1w! Xtest6
[?25l[?1c"Xtest6" [converted][New File] 1 line, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Need to add three NUL bytes after the NL byte
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest6                      " ! for when setting 'ff' is a change
[?25l[?1c"Xtest6" 1 line, 33 characters<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c
~   [?25l[?1c
^@^@^@[?25h[?0c[?25l[?1c:[?25h[?0cset noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtest6" [Incomplete last line] 2 lines, 36 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset nobin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce #
[?25l[?1c"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-1utf-8utf-8utf-8-errutf-8<80>errucs-2þÿ^@u^@c^@s^@-^@2^@ucs-2leÿþu^@c^@s^@-^@2^@l^@e^@ucs-4[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check that editing a latin-1 file doesn't see a BOM
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest0
[?25l[?1c"Xtest0" [converted] 1 line, 12 charactersþþlatin-1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0credir! >test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=latin1

nobomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cþþlatin-1
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 12 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset bomb fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest0x
[?25l[?1c"Xtest0x" [converted][New File] 1 line, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest1
[?25l[?1c"Xtest1" 1 line, 9 charactersutf-8[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-8

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cutf-8
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest1x
[?25l[?1c"Xtest1x" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check utf-8 with an error (will fall back to latin-1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest2
[?25l[?1c"Xtest2" [converted] 1 line, 17 charactersutf-8<80>err
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=latin1

nobomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cutf-8<80>err
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 17 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest2x
[?25l[?1c"Xtest2x" [New File] 1 line, 17 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest3
[?25l[?1c"Xtest3" [converted] 1 line, 8 charactersucs-2[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-16

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-2
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest3x
[?25l[?1c"Xtest3x" [converted][New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-2le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest4
[?25l[?1c"Xtest4" [converted] 1 line, 10 charactersle
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-16le

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-2le
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 8 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-2le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest4x
[?25l[?1c"Xtest4x" [converted][New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest5
[?25l[?1c"Xtest5" [converted] 1 line, 10 characters4[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=ucs-4

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-4
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest5x
[?25l[?1c"Xtest5x" [converted][New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-4le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest6
[?25l[?1c"Xtest6" [converted] 1 line, 12 charactersle
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=ucs-4le

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-4le
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 8 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-4le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest6x
[?25l[?1c"Xtest6x" [converted][New File] 1 line, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check the files written with BOM
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 35 lines, 275 characters  fileencoding=latin1nobomb<fe><fe>latin-1  fileencoding=utf-8  bombutf-8  fileencoding=latin1nobomb<feff>utf-8<80>err  fileencoding=utf-16  bombucs-2  fileencoding=utf-16le[?25h[?0c[?25l[?1c:[?25h[?0c$r Xtest0x
[?25l[?1c"Xtest0x" 1 line, 10 charactersbomb
ucs-2lefileencoding=ucs-4
  bomb
ucs-4fileencoding=ucs-4le
  bomb
ucs-4le
<fe><fe>latin-1[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest1x
[?25l[?1c"Xtest1x" 1 line, 9 characters
<feff>utf-8[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest2x
[?25l[?1c"Xtest2x" 1 line, 17 characters
utf-8<80>err[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest3x
[?25l[?1c"Xtest3x" 1 line, 14 characters
<fe><ff>^@u^@c^@s^@-^@2^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest4x
[?25l[?1c"Xtest4x" [Incomplete last line] 2 lines, 18 characters
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest5x
[?25l[?1c"Xtest5x" 1 line, 28 characters^@
^@^@<fe><ff>^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest6x
[?25l[?1c"Xtest6x" [Incomplete last line] 2 lines, 36 characters
<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?25h[?0c[?25l[?1c
:[?25h[?0cset nobin ff&               " Write the file in default format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" 44 lines, 409 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test42 = test61; then \
#	  if diff test.out test42.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test42.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test42.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test43.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 268 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^1
[?25l[?1c
1 a aa abb abbccc[?25h[?0c[?25l[?1c
/[?25h[?0ca*b\{2}c\+/e
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\Md\*e\{2}f\+/e
[?25l[?1c
2 d dd dee deefff[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cg\*h\{2}i\+/e
[?25l[?1c
3 g gg ghh ghhiii[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\mj*k\{2}l\+/e
[?25l[?1c
4 j jj jkk jkklll[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\vm*n{2}o+/e
[?25l[?1c
5 m mm mnn mnnooo[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\V^aa$
[?25l[?1c
6 x ^aa$ x[?25h[?0c[?25l[?1caa$ x[?25h[?0c[?25l[?1c
:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\v(a)(b)\2\1\1/e
[?25l[?1c
7 (a)(b) abbaa[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\V[ab]\(\[xy]\)\1
[?25l[?1c
8 axx [ab]xx[?25h[?0c[?25l[?1cab]x[?25h[?0c[?25l[?1c
:[?25h[?0c$
[?25l[?1c9 foobar[?25h[?0c[?25l[?1c
:[?25h[?0cset undolevels=100
[?25l[?1c[?25h[?0c[?25l[?1c?[?25h[?0cbar?
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

1 more line; before #2  0 seconds agobar[?25h[?0c[?25l[?1c
9 foo
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?^1?,$w! test.out
[?25l[?1c"test.out" [New] 11L, 137C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test43 = test61; then \
#	  if diff test.out test43.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test43.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test43.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test44.in
[?25h[?8c[?25h[?0c[?25l[?1c"test44.in" 81 lines, 1492 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
f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with multi-byte encoding and various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
:new
:$put =['dog(a', 'cat(']
/(/e+
"ayn:bd!
:$put =''
G"ap
: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
:new
:$put =['dog(a', 'cat(']
/(/e+
"ayn:bd!
:$put =''
G"ap
: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
:[?25h[?0c" Test \%u, [\u] and friends
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" c
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%u20ac
[?25l[?1c
:[?25h[?0c" d
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\u4f7f\u5929]\+
[?25l[?1c
:[?25h[?0c" e
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%U12345678
[?25l[?1c
:[?25h[?0c" f
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\U1234abcd\u1234\uabcd]
[?25l[?1c
:[?25h[?0c" g
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%d21879b
[?25l[?1c
:[?25h[?0c" j Test backwards search from a multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cx
[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" l Test what 7.3.192 fixed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^l
[?25l[?1c
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
g abb
test.out [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0c$put =['dog(a', 'cat(']
[?25l[?1cdog(acat([+][?25h[?0c[?25l[?1c/[?25h[?0c(/e+
[?25l[?1c/(/e+1
[?25h[?0c[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cbd!
[?25l[?1c1 a aa abb abbcc
2 d dd dee deeff
3 g gg ghh ghhii
e y
[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1c
cat(
[?25h[?0c[?25l[?1c
:[?25h[?0cw!
[?25l[?1c"test.out" 25L, 271C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test44 = test61; then \
#	  if diff test.out test44.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test44.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test44.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test45.in
[?25h[?8c[?25h[?0c[?25l[?1c"test45.in" 90 lines, 1953 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("."))[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for folding. vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 73 lines, 1820 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:new
iTest fdm=indent and :move bug END
line2Test fdm=indent STARTline3line4^[
:set fdm=indent
:1m1
2jzc:m0
:%w >> test.out
:qa!
ENDTEST

1 aa
2 bb
3 cc
4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg
8 hh
9 ii
a jj[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" We also need the +syntax feature here.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("syntax")
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   w! test.out

[?25l[?1c:  [?25h[?0c   qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:new
iTest fdm=indent and :move bug END
line2Test fdm=indent START[?25h[?0c[?25l[?1c:[?25h[?0c" basic test if a fold can be created, opened, moving to the end and closed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^1
[?25l[?1c[?25h[?0c[?25l[?1c+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "manual " . getline(foldclosed(".")))
[?25l[?1c[?25h[?0c[?25l[?1c1 aa2 bb3 cc4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg
8 hh
9 ii
a jj[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldclosed("."))
[?25l[?1c[?25h[?0c

[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline(foldclosed(".")))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test folding with markers.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=marker fdl=1 fdc=3
[?25l[?1c   :new
   iTest fdm=indent and :move bug END
   line2
           Test fdm=indent START
           line3
           line4^[
   :set fdm=indent
   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa   2 bb   3 cc-  4 dd {{{
|- 5 ee {{{ }}}
|  6 ff }}}
   7 gg
   8 hh
   9 ii
   a jj[?25h[?0c[?25l[?1c/[?25h[?0c^5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "marker " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c{{ |  6 ff }}}[?25h[?0c[?25l[?1c-{|
|
|
|[?25h[?0c[?25l[?1c


:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c6 ff }}}
 7 gg
 8 hh[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test folding with indent
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=indent sw=2
[?25l[?1c-++---  3 lines: Test fdm=indent START-----------------------------------------:set fdm=indent:1m12jzc:m0%w >> test.out:qa!ENDTEST1 aa2 bb3 cc4 dd {{{5 ee {{{ }}}
 {{{  6 ff }}}  6 ff }}}
  7 gg 8 hh9 iia jj[?25h[?0c[?25l[?1c/[?25h[?0c^2 b
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c
-  2 bb[?25h[?0c[?25l[?1c
|-    3 cc[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "indent " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test syntax folding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=syntax fdl=0
[?25l[?1c          Test fdm=indent START        line3        line4^[:set fdm=indent1m12jzc:m0:%w >> test.out:qa!ENDTEST
   1 aa  2 bb    3 cc4 dd {{{5 ee {{{ }}}{{{6 ff }}}6 ff }}}7 gg8 hh[?25h[?0c[?25l[?1c:[?25h[?0csyn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
[?25l[?1c++--  8 lines: 4 dd ----------------------------------------------------------a jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd1 start="ee" end="ff" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd2 start="gg" end="hh" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd3 start="commentstart" end="commentend" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c   1 aa
   marker 2
   1
   1
   0
   indent 2
   1[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "folding " . getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c
--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[?25h[?0c[?25l[?1c commentend- 
|-

| 
  
  
  
  
  
  [?25h[?0c[?25l[?1c:[?25h[?0cset fdl=1
[?25l[?1c++---  3 lines: 5 ee --------------------------------------------------------- 6 ff }}}++---  2 lines: 7 gg----------------------------------------------------------9 ii  a jj
  b kk
 lastmanual 1 aa-13 cc1 aamarker 21[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdl=0
[?25l[?1c++--  8 lines: 4 dd commentstart  commentend----------------------------------  a jj b kk  last manual 1 aa-13 cc1 aarker 2110indent[?25h[?0c[?25l[?1c
-4 dd {{{commentstart  commentend|-5 ee {{{ }}}
||{{{||6 ff }}}
|6 ff }}}|-7 gg
||8 hh
|9 iia jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c   :1m1
   2jzc:m0
   :%w >> test.out
   :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[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test expression folding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun Flvl()
[?25l[?1c
:  [?25h[?0c  let l = getline(v:lnum)

[?25l[?1c:  [?25h[?0c  if l =~ "bb$"

[?25l[?1c:    [?25h[?0c    return 2

[?25l[?1c:    [?25h[?0c  elseif l =~ "gg$"

[?25l[?1c:    [?25h[?0c    return "s1"

[?25l[?1c:    [?25h[?0c  elseif l =~ "ii$"

[?25l[?1c:    [?25h[?0c    return ">2"

[?25l[?1c:    [?25h[?0c  elseif l =~ "kk$"

[?25l[?1c:    [?25h[?0c    return "0"

[?25l[?1c:    [?25h[?0c  endif

[?25l[?1c:  [?25h[?0c  return "="

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa
     2 bb
       3 cc
-  4 dd {{{commentstart  commentend
|- 5 ee {{{ }}}
|| {{{[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=expr fde=Flvl()
[?25l[?1c++-- 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---------------------------------------------------~                                                                            ~                                                                            [?25h[?0c[?25l[?1c/[?25h[?0cbb$
[?25l[?1csearch 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[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "expr " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0chh$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cii$
[?25l[?1c-9 ii||a jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ckk$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^last/+1,$w! test.out
[?25l[?1c"test.out" [New File] 18 lines, 96 characters written[?25h[?0c[?25l[?1c:[?25h[?0cdelfun Flvl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c  
  
  
  ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            [No Name]                                                                       5 ee {{{ }}}{{{6 ff }}}|6 ff }}}|7 gg 8 hh
|-9 ii
||a jjb kklast
test45.in [+]                                                                   [?25h[?0c[?25l[?1cTest fdm=indent and :move bug ENDline2        Test fdm=indent START        line3        line4[+][?25h[?0c[?25l[?1c:[?25h[?0cset fdm=indent
[?25l[?1c++--  3 lines: Test fdm=indent START------------------------------------------~                                                                            ~                                                                            [?25h[?0c[?25l[?1c:[?25h[?0c1m1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cm0
[?25l[?1c3 lines moved++--  3 lines: Test fdm=indent START------------------------------------------Test fdm=indent and :move bug END
 line2[?25h[?0c[?25l[?1c:[?25h[?0c%w >> test.out
[?25l[?1c"test.out" 5 lines, 77 characters appendedtest.out [+] [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test45 = test61; then \
#	  if diff test.out test45.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test45.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test45.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test48.in
[?25h[?8c[?25h[?0c[?25l[?1c"test48.in" 83 lines, 1658 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 <CR> 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cThis is a test of 'virtualedit'.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 61 lines, 1442 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set display=
:"
:"   Test for ^Y/^E due to bad w_virtcol value, reported by
:"   Roy <royl@netropolis.net>.
^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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswf
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c65 fewer linesthis is a test
"r"
"r"
a^Vb^Msd
abcv6efi.him0kl


~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               65 fewer lines[?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Insert "keyword keyw", ESC, C CTRL-N, shows "keyword ykeyword".
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    Repeating CTRL-N fixes it. (Mary Ellen Foster)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cw
[?25l[?1c[?25h[?0c[?25l[?1c$Scanning tags.
The only matchword[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Using "C" then then <CR> moves the last remaining character to the next
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    line.  (Mary Ellen Foster)
[?25l[?1c[?25h[?0c
[?25l[?1c/[?25h[?0care
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c$are belong to vim
1 2 3 4 5 6
'i
'C
'a
'A
'D'this is a test

"r"     
a^Vb^Msdabcv6efi.him0kl[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   When past the end of a line that ends in a single character "b" skips
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    that word.
[?25l[?1c[?25h[?0c
[?25l[?1c$7[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'i' works
[?25l[?1c[?25h[?0c
'i'   [?25l[?1c<-- should be 3 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'C' works
[?25l[?1c[?25h[?0c
'C'   [?25l[?1c$<-- should be 3 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'a' works
[?25l[?1c[?25h[?0c
'a'   [?25l[?1c <-- should be 4 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'A' works
[?25l[?1c[?25h[?0c
'A'   [?25l[?1c<-- should be 0 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'D' works
[?25l[?1c[?25h[?0c
'D'   [?25l[?1c<-- 'D' should be intact[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test for yank bug reported by Mark Waggoner.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=block
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1caaablock of 4 lines yanked[?25h[?0c[?25l[?1c3 more linesa
aa [?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test "r" beyond the end of the line
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^"r"
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c"r"    [?25l[?1cx[?25h[?0c[?25l[?1cx<-- should be 'x'[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test "r" on a tab
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Note that for this test, 'ts' must be 8 (the default).
[?25l[?1c[?25h[?0c
"r"  [?25l[?1cx[?25h[?0c[?25l[?1cx  <-- should be '  x  '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test to make sure 'x' can delete control characters
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset display=uhex
[?25l[?1c<16>b<0d>sd[?25h[?0c
[?25l[?1c<16>b<0d>sd[?25h[?0c[?25l[?1cb<0d>sd[?25h[?0c[?25l[?1c<0d>sd[?25h[?0c[?25l[?1csd[?25h[?0c[?25l[?1cd[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[This line should contain only the text between the brackets.][?25h[?0c[?25l[?1c:[?25h[?0cset display=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test for ^Y/^E due to bad w_virtcol value, reported by
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Roy <royl@netropolis.net>.
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c   [?25l[?1cv[?25h[?0cv   [?25l[?1ci[?25h[?0ci   [?25l[?1cm   <-- should show the name of a noted text editor[?25h[?0c
[?25l[?1c[?25h[?0c    [?25l[?1c6[?25h[?0c6   [?25l[?1c.[?25h[?0c.   [?25l[?1c0   <-- and its version number[?25h[?0c[?25l[?1c
[?25h[?0c
    [?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for yanking and pasting using the small delete register
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^foo
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c, bar[?25h[?0c, [?25l[?1c[?25h[?0c[?25l[?1cba[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cfoo[?25h[?0c
keyw[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 23 lines, 479 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test48 = test61; then \
#	  if diff test.out test48.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test48.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test48.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test51.in
[?25h[?8c[?25h[?0c[?25l[?1c"test51.in" 36 lines, 809 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for ":highlight". vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 31 lines, 747 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" basic test if ":highlight" doesn't crash
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chighlight
[?25l[?1c
SpecialKey     xxx term=bold cterm=bold ctermfg=4 guifg=Cyan

EndOfBuffer    xxx links to NonText

NonTextxxx term=bold cterm=bold ctermfg=4 gui=bold guifg=Blue

Directory      xxx term=bold cterm=bold ctermfg=6 guifg=Cyan

ErrorMsgxxx term=standout cterm=bold ctermfg=7 ctermbg=1 guifg=White

guibg=Red

IncSearch      xxx term=reverse cterm=reverse gui=reverse

Searchxxx term=reverse ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

MoreMsgxxx term=bold cterm=bold ctermfg=2 gui=bold guifg=SeaGreen

ModeMsgxxx term=bold cterm=bold gui=bold

LineNrxxx term=underline cterm=bold ctermfg=3 guifg=Yellow

CursorLineNr   xxx term=bold cterm=bold ctermfg=3 gui=bold guifg=Yellow

Questionxxx term=standout cterm=bold ctermfg=2 gui=bold guifg=Green

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 cterm=bold ctermfg=5 gui=bold guifg=Magenta

Visualxxx term=reverse cterm=reverse guibg=DarkGrey

VisualNOS      xxx term=bold,underline cterm=bold,underline gui=bold,underline

WarningMsg     xxx term=standout cterm=bold ctermfg=1 guifg=Red

WildMenuxxx term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

Foldedxxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=DarkGrey

FoldColumn     xxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=Grey

DiffAddxxx term=bold ctermbg=4 guibg=DarkBlue

DiffChange     xxx term=bold ctermbg=5 guibg=DarkMagenta

DiffDelete     xxx term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=Blue

guibg=DarkCyan

DiffTextxxx term=reverse cterm=bold ctermbg=1 gui=bold guibg=Red

SignColumn     xxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=Grey

Concealxxx ctermfg=7 ctermbg=0 guifg=LightGrey guibg=DarkGrey

SpellBadxxx term=reverse ctermbg=1 gui=undercurl guisp=Red

SpellCapxxx term=reverse ctermbg=4 gui=undercurl guisp=Blue

SpellRare      xxx term=reverse ctermbg=5 gui=undercurl guisp=Magenta

SpellLocal     xxx term=underline ctermbg=6 gui=undercurl guisp=Cyan

Pmenuxxx ctermfg=0 ctermbg=5 guibg=Magenta

PmenuSelxxx cterm=bold ctermfg=0 ctermbg=0 guibg=DarkGrey

PmenuSbar      xxx ctermbg=7 guibg=Grey

PmenuThumb     xxx ctermbg=7 guibg=White

TabLinexxx term=underline cterm=bold,underline ctermfg=7 ctermbg=0

gui=underline guibg=DarkGrey

TabLineSel     xxx term=bold cterm=bold gui=bold

TabLineFill    xxx term=reverse cterm=reverse gui=reverse

CursorColumn   xxx term=reverse ctermbg=0 guibg=Grey40

CursorLine     xxx term=underline cterm=underline guibg=Grey40

ColorColumn    xxx term=reverse ctermbg=1 guibg=DarkRed

Cursorxxx guifg=bg guibg=fg

lCursorxxx guifg=bg guibg=fg

MatchParen     xxx term=reverse ctermbg=6 guibg=DarkCyan

Normalxxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Search
[?25l[?1c
Searchxxx term=reverse ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c" test setting colors.
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0c" test clearing one color and all doesn't generate error or warning
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi NewGroup term=bold cterm=italic ctermfg=DarkBlue ctermbg=Grey gui= guifg=#0

0ff00 guibg=Cyan
[?25l[?1cE418: Illegal value: guifg=#00ff00Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2 term= cterm=
[?25l[?1cE418: Illegal value: cterm=

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group3 term=underline cterm=bold
[?25l[?1c:hi NewGroup
:hi Group2[?25h[?0c[?25l[?1c
:[?25h[?0credir! >test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi NewGroup
[?25l[?1c
NewGroupxxx term=bold cterm=italic ctermfg=4 ctermbg=7

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group3
[?25l[?1c
Group3xxx term=underline cterm=bold

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi clear NewGroup
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup
:hi NewGroup
:hi Group2[?25h[?0c[?25l[?1c
:[?25h[?0chi NewGroup
[?25l[?1c
NewGroupxxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2 NONE
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup[?25h[?0c[?25l[?1c
:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi clear
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0chi Group3
[?25l[?1c
Group3xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Crash term='asdf
[?25l[?1cE475: Invalid argument: term='asdf

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3[?25h[?0c[?25l[?1c
:[?25h[?0c" filter ctermfg and ctermbg, the numbers depend on the terminal
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 20 lines, 289 charactersNewGroup       xxx term=bold cterm=italic ctermfg=4 ctermbg=7Group2         xxx clearedGroup3         xxx term=underline cterm=boldNewGroup       xxx clearedGroup2         xxx clearedGroup2         xxx clearedGroup3         xxx clearedE475: Invalid argument: term='asdf
~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c%s/ctermfg=\d*/ctermfg=2/
[?25l[?1c2
[?25h[?0c[?25l[?1c:[?25h[?0c%s/ctermbg=\d*/ctermbg=3/
[?25l[?1c3
[?25h[?0c[?25l[?1c:[?25h[?0c" filter out possibly translated error message
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c%s/E475: [^:]*:/E475:/
[?25l[?1cterm='asdf[?25h[?0c[?25l[?1c:[?25h[?0c" fix the fileformat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq!
[?25l[?1c"test.out" 20 lines, 271 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test51 = test61; then \
#	  if diff test.out test51.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test51.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test51.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test53.in
[?25h[?8c[?25h[?0c[?25l[?1c"test53.in" 75 lines, 1763 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()

STARTTEST
:so small.vim
/^start:/
da"
0va'a'rx
02f`da`
0fXdi"
03f'vi'ry
:set quoteescape=+*-
di`
$F"va"oha"i"rz
:"
/^<begin
jfXdit
0fXdit
fXdat
0fXdat[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for string and html text objects. vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1237 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:put =match('abc', '$', 4, 1) " -1
:put =match('abc', '\zs', 0, 1) " 0
:put =match('abc', '\zs', 0, 2) " 1
:put =match('abc', '\zs', 0, 3) " 2
:put =match('abc', '\zs', 0, 4) " 3
:put =match('abc', '\zs', 0, 5) " -1
:put =match('abc', '\zs', 1, 1) " 1
:put =match('abc', '\zs', 2, 1) " 2
:put =match('abc', '\zs', 3, 1) " 3
:put =match('abc', '\zs', 4, 1) " -1
:/^start:/,/^end:/wq! test.out
ENDTEST

start: "wo\"rd\\" foo
'foo' 'bar' 'piep'
bla bla `quote` blah
out " in "noXno"
"'" 'blah' rep 'buh'
bla `s*`d-`+++`l**` b`la
voo "nah" sdf " asdf" sdf " sdf" sd

<begin>
-<b>asdf<i>Xasdf</i>asdf</b>-[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c[?25h[?0c[?25l[?1cfo[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c'foo'[?25h[?0c[?25l[?1c 'bar'[?25h[?0c[?25l[?1c
xxxxxxxxxxxx
[?25h[?0c
[?25l[?1cblah[?25h[?0c
[?25l[?1c"[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c' rep[?25h[?0c[?25l[?1cyyyyy[?25h[?0c[?25l[?1c:[?25h[?0cset quoteescape=+*-
[?25l[?1c[?25h[?0c[?25l[?1c` b`la[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c" sdf"[?25h[?0c[?25l[?1c" [?25h[?0c[?25l[?1c"[?25h[?0c[?25l[?1c asdf" sdf [?25h[?0c[?25l[?1cah" sdf "
voo "[?25h[?0c[?25l[?1czzzzzzzzzzzzzzzzzzzzzzzzzzzz
voo "[?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^<begin
[?25l[?1c[?25h[?0c
[?25l[?1c</i>asdf</b>-[?25h[?0c[?25l[?1c
-<b>asdX<i>a<i />sdf</i>asdf</b>-[?25h[?0c
[?25l[?1c</b>-[?25h[?0c[?25l[?1c
-<b>asdf<i>Xasdf</i>asdf</b>-
-<b>[?25h[?0c[?25l[?1casdf</b>-[?25h[?0c[?25l[?1c
-<b>asdX<i>as<b />df</i>asdf</b>-[?25h[?0c
[?25l[?1c
--[?25h[?0c[?25l[?1c
-<b>
-[?25h[?0c[?25l[?1c<b></b>[?25h[?0c[?25l[?1c
</begin>[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =matchstr(\"abcd\", \".\", 0, 2) " b
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \"..\", 0, 2) " bc
[?25l[?1c
bc[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)
[?25l[?1c
c[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \".\", 0, -1) " a
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0cput =match(\"abcd\", \".\", 0, 5) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match(\"abcd\", \".\", 0, -1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 2) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 3) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 4) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 1, 1) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 2, 1) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 3, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 0, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 0, 2) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 1, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 2, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 3, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 4, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 2) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 3) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 4) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 5) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 1, 1) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 2, 1) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 3, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 4, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0c/^start:/,/^end:/wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 45 lines, 284 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test53 = test61; then \
#	  if diff test.out test53.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test53.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test53.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test55.in
[?25h[?8c[?25h[?0c[?25l[?1c"test55.in" 586 lines, 12256 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])
:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for List and Dictionary types.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 580 lines, 12170 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =string(l)
: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:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun Test(...)
[?25l[?1c
:  [?25h[?0c:lang C

[?25l[?1c:  [?25h[?0c:" Creating List directly with different types

[?25l[?1c:  [?25h[?0c:let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:$put =string(l[-1])

[?25l[?1c:  [?25h[?0c:$put =string(l[-4])

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =string(l[-5])

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:" List slices

[?25l[?1c:  [?25h[?0c:$put =string(l[:])

[?25l[?1c:  [?25h[?0c:$put =string(l[1:])

[?25l[?1c:  [?25h[?0c:$put =string(l[:-2])

[?25l[?1c:  [?25h[?0c:$put =string(l[0:8])

[?25l[?1c:  [?25h[?0c:$put =string(l[8:-1])

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" List identity

[?25l[?1c:  [?25h[?0c:let ll = l

[?25l[?1c:  [?25h[?0c:let lx = copy(l)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =(l == ll) . (l isnot ll) . (l is ll) . (l == lx) . (l is lx) . (l

isnot lx)

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Creating Dictionary directly with different types

[?25l[?1c:  [?25h[?0c:let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},}

[?25l[?1c:  [?25h[?0c:$put =string(d) . d.1

[?25l[?1c:  [?25h[?0c:$put =string(sort(keys(d)))

[?25l[?1c:  [?25h[?0c:$put =string (values(d))

[?25l[?1c:  [?25h[?0c:for [key, val] in items(d)

[?25l[?1c:    [?25h[?0c:  $put =key . ':' . string(val)

[?25l[?1c:    [?25h[?0c:  unlet key val

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c:call extend  (d, {3:33, 1:99})

[?25l[?1c:  [?25h[?0c:call extend(d, {'b':'bbb', 'c':'ccc'}, "keep")

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  call extend(d, {3:333,4:444}, "error")

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:call filter(d, 'v:key =~ ''[ac391]''')

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Dictionary identity

[?25l[?1c:  [?25h[?0c:let dd = d

[?25l[?1c:  [?25h[?0c:let dx = copy(d)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =(d == dd) . (d isnot dd) . (d is dd) . (d == dx) . (d is dx) . (d

isnot dx)

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" removing items with :unlet

[?25l[?1c:  [?25h[?0c:unlet l[2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:let l = range(8)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:unlet l[:3]

[?25l[?1c:    [?25h[?0c:unlet l[1:]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:$put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:unlet d.c

[?25l[?1c:  [?25h[?0c:unlet d[-1]

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" removing items out of range: silently skip items that don't exist

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:1]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:3]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:4]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:5]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-1:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-2:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-3:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-4:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-5:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-6:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" assignment to a list

[?25l[?1c:  [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:let [va, vb] = l[2:3]

[?25l[?1c:  [?25h[?0c:$put =va

[?25l[?1c:  [?25h[?0c:$put =vb

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let [va, vb] = l

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let [va, vb] = l[1:1]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" manipulating a big Dictionary (hashtable.c has a border of 1000 entries)

[?25l[?1c:  [?25h[?0c:let d = {}

[?25l[?1c:  [?25h[?0c:for i in range(1500)

[?25l[?1c:    [?25h[?0c: let d[i] = 3000 - i

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c:$put =d[0] . ' ' . d[100] . ' ' . d[999] . ' ' . d[1400] . ' ' . d[1499]

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let n = d[1500]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =substitute(v:exception, '\v(.{14}).*( \d{4}).*', '\1\2', '')

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:" lookup each items

[?25l[?1c:  [?25h[?0c:for i in range(1500)

[?25l[?1c:    [?25h[?0c: if d[i] != 3000 - i

[?25l[?1c:      [?25h[?0c:  $put =d[i]

[?25l[?1c:      [?25h[?0c: endif

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c: let i += 1

[?25l[?1c:  [?25h[?0c:" delete even items

[?25l[?1c:  [?25h[?0c:while i >= 2

[?25l[?1c:    [?25h[?0c: let i -= 2

[?25l[?1c:    [?25h[?0c: unlet d[i]

[?25l[?1c:    [?25h[?0c:endwhile

[?25l[?1c:  [?25h[?0c:$put =get(d, 1500 - 100, 'NONE') . ' ' . d[1]

[?25l[?1c:  [?25h[?0c:" delete odd items, checking value, one intentionally wrong

[?25l[?1c:  [?25h[?0c:let d[33] = 999

[?25l[?1c:  [?25h[?0c:let i = 1

[?25l[?1c:  [?25h[?0c:while i < 1500

[?25l[?1c:    [?25h[?0c: if d[i] != 3000 - i

[?25l[?1c:      [?25h[?0c:  $put =i . '=' . d[i]

[?25l[?1c:      [?25h[?0c: else

[?25l[?1c:      [?25h[?0c:  unlet d[i]

[?25l[?1c:      [?25h[?0c: endif

[?25l[?1c:    [?25h[?0c: let i += 2

[?25l[?1c:    [?25h[?0c:endwhile

[?25l[?1c:  [?25h[?0c:$put =string(d)  " must be almost empty now

[?25l[?1c:  [?25h[?0c:unlet d

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Dictionary function

[?25l[?1c:  [?25h[?0c:let dict = {}

[?25l[?1c:  [?25h[?0c:func dict.func(a) dict

[?25l[?1c:    [?25h[?0c:  $put =a:a . len(self.data)

[?25l[?1c:    [?25h[?0c:endfunc

[?25l[?1c:    [?25h[?0c:let dict.data = [1,2,3]

[?25l[?1c:    [?25h[?0c:call dict.func("len: ")

[?25l[?1c:    [?25h[?0c:let x = dict.func("again: ")

[?25l[?1c:    [?25h[?0c:let Fn = dict.func

[?25l[?1c:    [?25h[?0c:call Fn('xxx')

[?25l[?1c:    [?25h[?0c:" 

[?25l[?1c:    [?25h[?0c:" Function in script-local List or Dict

[?25l[?1c:    [?25h[?0c:let g:dict = {}

[?25l[?1c:    [?25h[?0c:function g:dict.func() dict

[?25l[?1c:      [?25h[?0c:  $put ='g:dict.func'.self.foo[1].self.foo[0]('asdf')

[?25l[?1c:      [?25h[?0c:endfunc

[?25l[?1c:      [?25h[?0c:let g:dict.foo = ['-', 2, 3]

[?25l[?1c:      [?25h[?0c:call insert(g:dict.foo, function('strlen'))

[?25l[?1c:      [?25h[?0c:call g:dict.func()

[?25l[?1c:      [?25h[?0c:" 

[?25l[?1c:      [?25h[?0c:" Nasty: remove func from Dict that's being called (works)

[?25l[?1c:      [?25h[?0c:let d = {1:1}

[?25l[?1c:      [?25h[?0c:func d.func(a)

[?25l[?1c:[?25h[?0c:  return "a:". a:a

[?25l[?1c:[?25h[?0c:endfunc

[?25l[?1c:[?25h[?0c:$put =d.func(string(remove(d, 'func')))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Nasty: deepcopy() dict that refers to itself (fails when noref used

)
[?25l[?1c:[?25h[?0c:let d = {1:1, 2:2}

[?25l[?1c:[?25h[?0c:let l = [4, d, 6]

[?25l[?1c:[?25h[?0c:let d[3] = l

[?25l[?1c:[?25h[?0c:let dc = deepcopy(d)

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let dc = deepcopy(d, 1)

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:let l2 = [0, l, l, 3]

[?25l[?1c:[?25h[?0c:let l[1] = l2

[?25l[?1c:[?25h[?0c:let l3 = deepcopy(l2)

[?25l[?1c:[?25h[?0c:$put ='same list: ' . (l3[1] is l3[2])

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Locked variables

[?25l[?1c:[?25h[?0c:for depth in range(5)

[?25l[?1c:[?25h[?0c:  $put ='depth is ' . depth

[?25l[?1c:[?25h[?0c:  for u in range(3)

[?25l[?1c:[?25h[?0c:    unlet l

[?25l[?1c:[?25h[?0c:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l[?1c:[?25h[?0c:    exe "lockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    if u == 1

[?25l[?1c:[?25h[?0c:      exe "unlockvar l"

[?25l[?1c:[?25h[?0c:    elseif u == 2

[?25l[?1c:[?25h[?0c:      exe "unlockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    endif

[?25l[?1c:[?25h[?0c:    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]")

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:    let ps = ''

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1][1][0] = 99

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1][1] = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1] = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2]['6'][7] = 99

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2][6] = {99: 99}

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2] = {99: 99}

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:  endfor

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Unletting locked variables

[?25l[?1c:[?25h[?0c:$put ='Unletting:'

[?25l[?1c:[?25h[?0c:for depth in range(5)

[?25l[?1c:[?25h[?0c:  $put ='depth is ' . depth

[?25l[?1c:[?25h[?0c:  for u in range(3)

[?25l[?1c:[?25h[?0c:    unlet l

[?25l[?1c:[?25h[?0c:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l[?1c:[?25h[?0c:    exe "lockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    if u == 1

[?25l[?1c:[?25h[?0c:      exe "unlockvar l"

[?25l[?1c:[?25h[?0c:    elseif u == 2

[?25l[?1c:[?25h[?0c:      exe "unlockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    endif

[?25l[?1c:[?25h[?0c:    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]")

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:    let ps = ''

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2]['6'][7]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2][6]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1][1][0]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1][1]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:  endfor

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Locked variables and :unlet or list / dict functions

[?25l[?1c:[?25h[?0c:$put ='Locks and commands or functions:'

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :unlet after lock on dict:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar 1 d

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet d.a

[?25l[?1c:[?25h[?0c:  $put ='did :unlet'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put =':unlet after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet d.a

[?25l[?1c:[?25h[?0c:  $put ='did :unlet'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='filter() after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call filter(d, 'v:key != "a"')

[?25l[?1c:[?25h[?0c:  $put ='did filter()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='map() after lock on dict:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar 1 d

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call map(d, 'v:val + 200')

[?25l[?1c:[?25h[?0c:  $put ='did map()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No extend() after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  $put =string(extend(d, {'a': 123}))

[?25l[?1c:[?25h[?0c:  $put ='did extend()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No remove() of write-protected scope-level variable:'

[?25l[?1c:[?25h[?0c:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l[?1c:[?25h[?0c:  try

[?25l[?1c:[?25h[?0c:    $put =string(remove(a:, 'this_is_a_loooooooooong_parameter_na

me'))

[?25l[?1c:[?25h[?0c:    $put ='did remove()'

[?25l[?1c:[?25h[?0c:  catch

[?25l[?1c:[?25h[?0c:    $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:  endtry

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:call Tfunc('testval')

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No extend() of write-protected scope-level variable:'

[?25l[?1c:[?25h[?0c:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l[?1c:[?25h[?0c:  try

[?25l[?1c:[?25h[?0c:    $put =string(extend(a:, {'this_is_a_loooooooooong_parameter

_name': 1234}))

[?25l[?1c:[?25h[?0c:    $put ='did extend()'

[?25l[?1c:[?25h[?0c:  catch

[?25l[?1c:[?25h[?0c:    $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:  endtry

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:call Tfunc('testval')

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :unlet of variable in locked scope:'

[?25l[?1c:[?25h[?0c:let b:testvar = 123

[?25l[?1c:[?25h[?0c:lockvar 1 b:

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet b:testvar

[?25l[?1c:[?25h[?0c:  $put ='b:testvar was :unlet: '. (!exists('b:testvar'))

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:unlockvar 1 b:

[?25l[?1c:[?25h[?0c:unlet! b:testvar

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :let += of locked list variable:'

[?25l[?1c:[?25h[?0c:let l = ['a', 'b', 3]

[?25l[?1c:[?25h[?0c:lockvar 1 l

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let l += ['x']

[?25l[?1c:[?25h[?0c:  $put ='did :let +='

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:unlet l

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4]

[?25l[?1c:[?25h[?0c:lockvar! l

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlockvar l[1]

[?25l[?1c:[?25h[?0c:unlet l[0:1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlet l[1:2]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlockvar l[1]

[?25l[?1c:[?25h[?0c:let l[0:1] = [0, 1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:let l[1:2] = [0, 1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlet l

[?25l[?1c:[?25h[?0c:" :lockvar/islocked() triggering script autoloading

[?25l[?1c:[?25h[?0c:set rtp+=./sautest

[?25l[?1c:[?25h[?0c:lockvar g:footest#x

[?25l[?1c:[?25h[?0c:unlockvar g:footest#x

[?25l[?1c:[?25h[?0c:$put ='locked g:footest#x:'.islocked('g:footest#x')

[?25l[?1c:[?25h[?0c:$put ='exists g:footest#x:'.exists('g:footest#x')

[?25l[?1c:[?25h[?0c:$put ='g:footest#x: '.g:footest#x

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" a:000 function argument

[?25l[?1c:[?25h[?0c:" first the tests that should fail

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000 = [1, 2]

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[0] = 9

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[0]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[2] = [9, 10]

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[2]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[3] = {9: 10}

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[3]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:" now the tests that should pass

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[2][1] = 9

[?25l[?1c:[?25h[?0c:  call extend(a:000[2], [5, 6])

[?25l[?1c:[?25h[?0c:  let a:000[3][5] = 8

[?25l[?1c:[?25h[?0c:  let a:000[3]['a'] = 12

[?25l[?1c:[?25h[?0c:  $put =string(a:000)

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught ' . v:exception

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" reverse(), sort(), uniq()

[?25l[?1c:[?25h[?0c:let l = ['-0', 'A11', 2, 2, 'xaaa', 4, 'foo', 'foo6', 'foo', [0, 

1, 2], 'x8', [0, 1, 2], 1.5]

[?25l[?1c:[?25h[?0c:$put =string(uniq(copy(l)))

[?25l[?1c:[?25h[?0c:$put =string(reverse(l))

[?25l[?1c:[?25h[?0c:$put =string(reverse(reverse(l)))

[?25l[?1c:[?25h[?0c:$put =string(sort(l))

[?25l[?1c:[?25h[?0c:$put =string(reverse(sort(l)))

[?25l[?1c:[?25h[?0c:$put =string(sort(reverse(sort(l))))

[?25l[?1c:[?25h[?0c:$put =string(uniq(sort(l)))

[?25l[?1c:[?25h[?0c:let l=[7, 9, 'one', 18, 12, 22, 'two', 10.0e-16, -1, 'three', 0xf

f, 0.22, 'four']

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 'n'))

[?25l[?1c:[?25h[?0c:let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'bar', 

'BAR', 'Bar', 'Foo', 'FOO', 'foo', 'FOOBAR', {}, []]

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 1))

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 'i'))

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l)))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" splitting a string to a List

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb '))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W\+', 0))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W\+', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W', 1))

[?25l[?1c:[?25h[?0c:$put =string(split(':aa::bb:', ':', 0))

[?25l[?1c:[?25h[?0c:$put =string(split(':aa::bb:', ':', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('aa,,bb, cc,', ',\s*', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('abc', '\zs'))

[?25l[?1c:[?25h[?0c:$put =string(split('abc', '\zs', 1))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" compare recursively linked list and dict

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4]

[?25l[?1c:[?25h[?0c:let d = {'1': 1, '2': l, '3': 3}

[?25l[?1c:[?25h[?0c:let l[1] = d

[?25l[?1c:[?25h[?0c:$put =(l == l)

[?25l[?1c:[?25h[?0c:$put =(d == d)

[?25l[?1c:[?25h[?0c:$put =(l != deepcopy(l))

[?25l[?1c:[?25h[?0c:$put =(d != deepcopy(d))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" compare complex recursively linked list and dict

[?25l[?1c:[?25h[?0c:let l = []

[?25l[?1c:[?25h[?0c:call add(l, l)

[?25l[?1c:[?25h[?0c:let dict4 = {"l": l}

[?25l[?1c:[?25h[?0c:call add(dict4.l, dict4)

[?25l[?1c:[?25h[?0c:let lcopy = deepcopy(l)

[?25l[?1c:[?25h[?0c:let dict4copy = deepcopy(dict4)

[?25l[?1c:[?25h[?0c:$put =(l == lcopy)

[?25l[?1c:[?25h[?0c:$put =(dict4 == dict4copy)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same List to extend()

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4, 5]

[?25l[?1c:[?25h[?0c:call extend(l, l)

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same Dict to extend()

[?25l[?1c:[?25h[?0c:let d = { 'a': {'b': 'B'}}

[?25l[?1c:[?25h[?0c:call extend(d, d)

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same Dict to extend() with "error"

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call extend(d, d, "error")

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" test for range assign

[?25l[?1c:[?25h[?0c:let l = [0]

[?25l[?1c:[?25h[?0c:let l[:] = [1, 2]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:endfun
[?25l[?1c:$put =string(l)
: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:[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Test(1, 2, [3, 4], {5: 6})  " This may take a while
[?25l[?1cError detected while processing function Test:
line   76:

E684: list index out of range: 1

line   91:

E684: list index out of range: 2

line  271:

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

line  441:

E741: Value is locked: l[0:1]

line  443:

E741: Value is locked: l[1:2]

line  446:

E741: Value is locked: l[0:1] = [0, 1]

line  448:

E741: Value is locked: l[1:2] = [0, 1]

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb']
['aa', 'bb']
['', 'aa', 'bb', '']
['', '', 'aa', '', 'bb', '', '']
['aa', '', 'bb']
['', 'aa', '', 'bb', '']
['aa', '', 'bb', 'cc', '']
['a', 'b', 'c']
['', 'a', '', 'b', '', 'c', '']
1
1
0
0
1
1
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
{'a': {'b': 'B'}}
Vim(call):E737: a
{'a': {'b': 'B'}}
[1, 2]
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cdelfunc Test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cunlet dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for patch 7.3.637
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a = 'No error caught'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?1c[?25h[?0c[?25l[?1c=[?25h[?0ca
[?25l[?1cVim(foldopen):E490:[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?1cError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'

)|endtry

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb'][?25h[?0c[?25l[?1c
=[?25h[?0ca
[?25l[?1cError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 197 lines, 3821 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test55 = test61; then \
#	  if diff test.out test55.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test55.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test55.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test56.in
[?25h[?8c[?25h[?0c[?25l[?1c"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 <SID>DoLast()
  call append(line('$'), "last line")
endfun
fun s:DoNothing()
  call append(line('$'), "nothing line")
endfun
nnoremap <buffer> _x    :call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
end:
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for script-local function.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 120 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/+1,/^end:/-1w! Xtest.vim
[?25l[?1c"Xtest.vim" [New] 7L, 251C written[?25h[?0c[?25l[?1c:[?25h[?0csource Xtest.vim
[?25l[?1c[?25h[?0c[?25l[?1c:call <SNR>4_DoNothing()|call <SNR>4_DoLast()|delfunc <SNR>4_DoNothing|delfunc 

<SNR>4_DoLast
Press ENTER or type command to continue[?25h[?0c[?25l[?1cTest for script-local function.     vim: set ft=vim :nothing line[?25h[?0c[?25l[?1c:[?25h[?0c$-1,$wq! test.out
[?25l[?1c"test.out" [New] 2L, 23C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test56 = test61; then \
#	  if diff test.out test56.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test56.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test56.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test57.in
[?25h[?8c[?25h[?0c[?25l[?1c"test57.in" 545 lines, 4110 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :sort command.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 33 lines, 920 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:/^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
:/^t28:/+1,/^t29/-1sort b
:/^t29:/+1,/^t30/-1sort b
:/^t30:/+1,/^t31/-1sort f
:/^t01:/,$wq! test.out
ENDTEST

t01: alphebetical
abc
ab
a
a321
a123
a122
b321
b123
c123d[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^t01:/+1,/^t02/-1sort
[?25l[?1c 123b2
a123
a
ababc[?25h[?0c[?25l[?1c:[?25h[?0c/^t02:/+1,/^t03/-1sort n
[?25l[?1cb123
b321
b321
b321b
b322b
c123d
c321d
t02: numeric
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t03:/+1,/^t04/-1sort x
[?25l[?1ca123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t03: hexadecimal


a
ab
abc
 123b
a122
a123
a321
b123
b321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t04:/+1,/^t05/-1sort u
[?25l[?1cb321b
b322b
c123d
c321d
t04: alpha, unique[?25h[?0c[?25l[?1c
:[?25h[?0c/^t05:/+1,/^t06/-1sort!
[?25l[?1ca123
a321
ab
abc
b123
b321
b321b
b322b
c123d
c321d
t05: alpha, reverse
c321d
c123d
b322b
b321b
b321
b321
b123
abc
ab
a321
a123
a122[?25h[?0c[?25l[?1c:[?25h[?0c/^t06:/+1,/^t07/-1sort! n        
[?25l[?1ca
 123b


t06: numeric, reverse
b322b[?25h[?0c[?25l[?1c
:[?25h[?0c/^t07:/+1,/^t08/-1sort! u
[?25l[?1c123b
c123d
b123
a123
a122


a
ab
abc
t07: unique, reverse
c321d
c123d
b322b
b321b
b321
b123
abc
ab
a321
a123
a122
a[?25h[?0c[?25l[?1c:[?25h[?0c/^t08:/+1,/^t09/-1sort o         
[?25l[?1c123b

t08: octal
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t09:/+1,/^t10/-1sort! x        
[?25l[?1ca123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t09: reverse, hexadecimal
c321d
c123d
b322b
b321b
b321
b321
b123
a321
a123
a122
 123b
abc[?25h[?0c[?25l[?1c:[?25h[?0c/^t10:/+1,/^t11/-1sort/./        
[?25l[?1cab
a


t10: alpha, skip first character
a[?25h[?0c[?25l[?1c
:[?25h[?0c/^t11:/+1,/^t12/-1sort/../       
[?25l[?1c123b
c123d
a321
b321
b321
b321b
c321d
b322b
ab
abc
t11: alpha, skip first 2 characters
ab
a


a321
b321
b321
b321b
c321d
a122
b322b
a123[?25h[?0c[?25l[?1c:[?25h[?0c/^t12:/+1,/^t13/-1sort/../u
[?25l[?1cb123
 123b
c123d
abc
t12: alpha, unique, skip first 2 characters
ab[?25h[?0c[?25l[?1c
:[?25h[?0c/^t13:/+1,/^t14/-1sort/./n
[?25l[?1cb321
b321b
c321d
a122
b322b
a123
b123
 123b
c123d
abc
t13: numeric, skip first character
abc
ab
a


a122
a123
b123
c123d
 123b
a321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t14:/+1,/^t15/-1sort/./r
[?25l[?1cc321d
b321
b321b
b322b
t14: alpha, sort on first character[?25h[?0c[?25l[?1c
:[?25h[?0c/^t15:/+1,/^t16/-1sort/../r
[?25l[?1ca321
a123
a122
b321
b123
b322b
b321
b321b
c123d
c321d
t15: alpha, sort on first 2 characters
a123b
a123
a122
a321
abc
ab
b123
b321
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t16:/+1,/^t17/-1sort/./rn
[?25l[?1cb321
b321b
c123d
c321d
t16: numeric, sort on first character
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t17:/+1,/^t18/-1sort/\d/
[?25l[?1cb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t17: alpha, skip past first digit
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t18:/+1,/^t19/-1sort/\d/r
[?25l[?1ca123
b123
 123b
c123d
t18: alpha, sort on first digit
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t19:/+1,/^t20/-1sort/\d/n
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t19: numeric, skip past first digit
abc
ab
a


a321
b321
c321d
b321
b321b
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t20:/+1,/^t21/-1sort/\d/rn
[?25l[?1ca123
b123
c123d
 123b
t20: numeric, sort on first digit
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t21:/+1,/^t22/-1sort/\d\d/
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t21: alpha, skip past first 2 digits
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t22:/+1,/^t23/-1sort/\d\d/n
[?25l[?1ca123
b123
 123b
c123d
t22: numeric, skip past first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t23:/+1,/^t24/-1sort/\d\d/x
[?25l[?1cb321
c321d
b321
b321b
a122
b322b
a123
b123
c123d
 123b
t23: hexadecimal, skip past first 2 digits
abc
ab
a


a321
b321
b321
a122
a123
b123
b321b[?25h[?0c[?25l[?1c:[?25h[?0c/^t24:/+1,/^t25/-1sort/\d\d/r
[?25l[?1cc321d
b322b
 123b
c123d
t24: alpha, sort on first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t25:/+1,/^t26/-1sort/\d\d/rn
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t25: numeric, sort on first 2 digits
abc
ab
a


a123
a122
b123
c123d
 123b
a321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t26:/+1,/^t27/-1sort/\d\d/rx
[?25l[?1cc321d
b322b
b321
b321b
t26: hexadecimal, sort on first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t27:/+1,/^t28/-1sort no
[?25l[?1cE474: Invalid argument[?25h[?0c[?25l[?1c:[?25h[?0c/^t28:/+1,/^t29/-1sort b
[?25l[?1cb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t28: binary


0b000000
0b001000
0b010000
0b100000
0b100010
0b100010
0b100100
0b101000
0b101000
0b101001[?25h[?0c[?25l[?1c:[?25h[?0c/^t29:/+1,/^t30/-1sort b
[?25l[?1c0b101001
0b101010
0b101100
0b111000
t29: binary with leading characters[?25h[?0c[?25l[?1c
:[?25h[?0c/^t30:/+1,/^t31/-1sort f
[?25l[?1ca0b001000
0b010000
ab0b100000
0b100010
0b100010
 0b100100
0b101000
0b101000
 0b101001
a0b101001
0b101010
b0b101100
b0b111000
t30: float


-1.1e3
-1.01e3
1.15e-6
0.88
1.234
123.456
t31: done[?25h[?0c[?25l[?1c:[?25h[?0c/^t01:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 501 lines, 3105 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test57 = test61; then \
#	  if diff test.out test57.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test57.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test57.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test60.in
[?25h[?8c[?25h[?0c[?25l[?1c"test60.in" 601 lines, 13116 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for the exists() and has() functions.  vim: set ft=vim ts=8 sw=2 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 596 lines, 13023 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! RunTest(str, result)
[?25l[?1c
:  [?25h[?0c    if exists(a:str) == a:result

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED: Checking for " . a:str

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0cendfunction
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x[?25h[?0c[?25l[?1c
:[?25h[?0cfunction! TestExists()
[?25l[?1c
:  [?25h[?0c    augroup myagroup

[?25l[?1c:  [?25h[?0c^Iautocmd! BufEnter       *.my     echo "myfile edited"

[?25l[?1c:  [?25h[?0c^Iautocmd! FuncUndefined  UndefFun exec "fu UndefFun()\nendfu"

[?25l[?1c:  [?25h[?0c    augroup END

[?25l[?1c:  [?25h[?0c    set rtp+=./sautest

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    let test_cases = []

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " valid autocmd group

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup', 1]]

[?25l[?1c:  [?25h[?0c    " valid autocmd group with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup+b', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group, event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter#*.my', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter#*.my', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd group or event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#xyzagroup', 0]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd group and valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#xyzagroup#BufEnter', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event with no matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#CmdwinEnter', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and non-existing autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#xyzacmd', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event and non-matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter#xyzpat', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event and non-matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter#xyzpat', 0]]

[?25l[?1c:  [?25h[?0c    " Empty autocmd group, event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['###', 0]]

[?25l[?1c:  [?25h[?0c    " Empty autocmd group and event or empty event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['##', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['##FileReadCmd', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['##MySpecialCmd', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&textwidth', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&tw', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['&tw-', 0]]

[?25l[?1c:  [?25h[?0c    " Global option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&g:errorformat', 1]]

[?25l[?1c:  [?25h[?0c    " Local option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&l:errorformat', 1]]

[?25l[?1c:  [?25h[?0c    " Negative form of existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&nojoinspaces', 0]]

[?25l[?1c:  [?25h[?0c    " Negative form of existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&nojs', 0]]

[?25l[?1c:  [?25h[?0c    " Non-existing option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&myxyzoption', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['+incsearch', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['+incsearch!1', 0]]

[?25l[?1c:  [?25h[?0c    " Existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['+is', 1]]

[?25l[?1c:  [?25h[?0c    " Existing option that is hidden.

[?25l[?1c:  [?25h[?0c    let test_cases += [['+autoprint', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing environment variable

[?25l[?1c:  [?25h[?0c    let $EDITOR_NAME = 'Vim Editor'

[?25l[?1c:  [?25h[?0c    let test_cases += [['$EDITOR_NAME', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing environment variable

[?25l[?1c:  [?25h[?0c    let test_cases += [['$NON_ENV_VAR', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr', 1]]

[?25l[?1c:  [?25h[?0c    " Valid internal function with ()

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr()', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing internal function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*myxyzfunc', 0]]

[?25l[?1c:  [?25h[?0c    " Valid internal function with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr&6', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid user defined function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*TestExists', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing user defined function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*MyxyzFunc', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Function that may be created by FuncUndefined event

[?25l[?1c:  [?25h[?0c    let test_cases += [['*UndefFun', 0]]

[?25l[?1c:  [?25h[?0c    " Function that may be created by script autoloading

[?25l[?1c:  [?25h[?0c    let test_cases += [['*footest#F', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    redir! > test.out

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    for [test_case, result] in test_cases

[?25l[?1c:    [?25h[?0c        echo test_case . ": " . result

[?25l[?1c:    [?25h[?0c        call RunTest(test_case, result)

[?25l[?1c:    [?25h[?0c    endfor

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (full match)

[?25l[?1c:  [?25h[?0c    echo ':edit: 2'

[?25l[?1c:  [?25h[?0c    if exists(':edit') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (full match) with garbage

[?25l[?1c:  [?25h[?0c    echo ':edit/a: 0'

[?25l[?1c:  [?25h[?0c    if exists(':edit/a') == 0

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (partial match)

[?25l[?1c:  [?25h[?0c    echo ':q: 1'

[?25l[?1c:  [?25h[?0c    if exists(':q') == 1

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing internal command

[?25l[?1c:  [?25h[?0c    echo ':invalidcmd: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':invalidcmd')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " User defined command (full match)

[?25l[?1c:  [?25h[?0c    command! MyCmd :echo 'My command'

[?25l[?1c:  [?25h[?0c    echo ':MyCmd: 2'

[?25l[?1c:  [?25h[?0c    if exists(':MyCmd') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " User defined command (partial match)

[?25l[?1c:  [?25h[?0c    command! MyOtherCmd :echo 'Another command'

[?25l[?1c:  [?25h[?0c    echo ':My: 3'

[?25l[?1c:  [?25h[?0c    if exists(':My') == 3

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Command modifier

[?25l[?1c:  [?25h[?0c    echo ':rightbelow: 2'

[?25l[?1c:  [?25h[?0c    if exists(':rightbelow') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing user defined command (full match)

[?25l[?1c:  [?25h[?0c    delcommand MyCmd

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    echo ':MyCmd: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':MyCmd')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing user defined command (partial match)

[?25l[?1c:  [?25h[?0c    delcommand MyOtherCmd

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    echo ':My: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':My')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local variable

[?25l[?1c:  [?25h[?0c    let local_var = 1

[?25l[?1c:  [?25h[?0c    echo 'local_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local variable with garbage

[?25l[?1c:  [?25h[?0c    let local_var = 1

[?25l[?1c:  [?25h[?0c    echo 'local_var%n: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_var%n')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local variable

[?25l[?1c:  [?25h[?0c    unlet local_var

[?25l[?1c:  [?25h[?0c    echo 'local_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing autoload variable that may be autoloaded

[?25l[?1c:  [?25h[?0c    echo 'footest#x: 0'

[?25l[?1c:  [?25h[?0c    if !exists('footest#x')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list

[?25l[?1c:  [?25h[?0c    let local_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'local_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list item

[?25l[?1c:  [?25h[?0c    echo 'local_list[1]: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_list[1]')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list item with garbage

[?25l[?1c:  [?25h[?0c    echo 'local_list[1]+5: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list[1]+5')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Invalid local list item

[?25l[?1c:  [?25h[?0c    echo 'local_list[2]: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list[2]')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local list

[?25l[?1c:  [?25h[?0c    unlet local_list

[?25l[?1c:  [?25h[?0c    echo 'local_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local dictionary

[?25l[?1c:  [?25h[?0c    let local_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'local_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local dictionary

[?25l[?1c:  [?25h[?0c    unlet local_dict

[?25l[?1c:  [?25h[?0c    echo 'local_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing local curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "local"

[?25l[?1c:  [?25h[?0c    let curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global variable

[?25l[?1c:  [?25h[?0c    let g:global_var = 1

[?25l[?1c:  [?25h[?0c    echo 'g:global_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global variable with garbage

[?25l[?1c:  [?25h[?0c    echo 'g:global_var-n: 1'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_var-n')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global variable

[?25l[?1c:  [?25h[?0c    unlet g:global_var

[?25l[?1c:  [?25h[?0c    echo 'g:global_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global list

[?25l[?1c:  [?25h[?0c    let g:global_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'g:global_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global list

[?25l[?1c:  [?25h[?0c    unlet g:global_list

[?25l[?1c:  [?25h[?0c    echo 'g:global_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global dictionary

[?25l[?1c:  [?25h[?0c    let g:global_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'g:global_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global dictionary

[?25l[?1c:  [?25h[?0c    unlet g:global_dict

[?25l[?1c:  [?25h[?0c    echo 'g:global_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "global"

[?25l[?1c:  [?25h[?0c    let g:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'g:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet g:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'g:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window variable

[?25l[?1c:  [?25h[?0c    echo 'w:window_var: 1'

[?25l[?1c:  [?25h[?0c    let w:window_var = 1

[?25l[?1c:  [?25h[?0c    if exists('w:window_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window variable

[?25l[?1c:  [?25h[?0c    unlet w:window_var

[?25l[?1c:  [?25h[?0c    echo 'w:window_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window list

[?25l[?1c:  [?25h[?0c    let w:window_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'w:window_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:window_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window list

[?25l[?1c:  [?25h[?0c    unlet w:window_list

[?25l[?1c:  [?25h[?0c    echo 'w:window_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window dictionary

[?25l[?1c:  [?25h[?0c    let w:window_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'w:window_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:window_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window dictionary

[?25l[?1c:  [?25h[?0c    unlet w:window_dict

[?25l[?1c:  [?25h[?0c    echo 'w:window_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "window"

[?25l[?1c:  [?25h[?0c    let w:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'w:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet w:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'w:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer variable

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_var: 1'

[?25l[?1c:  [?25h[?0c    let b:buffer_var = 1

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer variable

[?25l[?1c:  [?25h[?0c    unlet b:buffer_var

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer list

[?25l[?1c:  [?25h[?0c    let b:buffer_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer list

[?25l[?1c:  [?25h[?0c    unlet b:buffer_list

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer dictionary

[?25l[?1c:  [?25h[?0c    let b:buffer_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer dictionary

[?25l[?1c:  [?25h[?0c    unlet b:buffer_dict

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "buffer"

[?25l[?1c:  [?25h[?0c    let b:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'b:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet b:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'b:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Script-local tests

[?25l[?1c:  [?25h[?0c    source test60.vim

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing Vim internal variable

[?25l[?1c:  [?25h[?0c    echo 'v:version: 1'

[?25l[?1c:  [?25h[?0c    if exists('v:version')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing Vim internal variable

[?25l[?1c:  [?25h[?0c    echo 'v:non_exists_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('v:non_exists_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Function arguments

[?25l[?1c:  [?25h[?0c    function TestFuncArg(func_arg, ...)

[?25l[?1c:    [?25h[?0c        echo 'a:func_arg: 1'

[?25l[?1c:    [?25h[?0c        if exists('a:func_arg')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:non_exists_arg: 0'

[?25l[?1c:    [?25h[?0c        if !exists('a:non_exists_arg')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:1: 1'

[?25l[?1c:    [?25h[?0c        if exists('a:1')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:2: 0'

[?25l[?1c:    [?25h[?0c        if !exists('a:2')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c    endfunction

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    call TestFuncArg("arg1", "arg2")

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    echo ' g:footest#x =' g:footest#x

[?25l[?1c:    [?25h[?0c    echo '   footest#F()' footest#F()

[?25l[?1c:    [?25h[?0c    echo 'UndefFun()' UndefFun()

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    redir END

[?25l[?1c:    [?25h[?0cendfunction
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0ccall TestExists()
[?25l[?1c#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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0cdelfunc TestExists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc RunTest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestFuncArg
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit! test.out
[?25l[?1c"test.out" [Incomplete last line] 206 lines, 1940 characters#myagroup: 1OK
#myagroup+b: 0OK
#myagroup#BufEnter: 1OK#myagroup#BufEnter#*.my: 1OK
#BufEnter: 1OK#BufEnter#*.my: 1OK
#xyzagroup: 0OK#xyzagroup#BufEnter: 0
OK#myagroup#CmdwinEnter: 0
OK
#myagroup#xyzacmd: 0
OK#myagroup#BufEnter#xyzpat: 0
OK[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 206 lines, 1941 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test60 = test61; then \
#	  if diff test.out test60.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test60.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test60.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test64.in
[?25h[?8c[?25h[?0c[?25l[?1c"test64.in" 654 lines, 27565 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for regexp patterns without multi-byte support.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 621 lines, 27090 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:for pat in [' \ze*', ' \zs*']
:  try
:    let l = matchlist('x x', pat)
:    $put ='E888 NOT detected for ' . pat
:  catch
:    $put ='E888 detected for ' . pat
:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="">Ta 5</Title>
<T="">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" tl is a List of Lists with:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp engine
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp pattern
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    text to test the pattern on
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected match (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 1 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 2 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    etc.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  When there is no match use only the first two items.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Previously written tests """"""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b', 'abcdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abbdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c*', 'ccc', 'ccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c*', 'abdef', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\+', 'abdef']) "no match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"operator \|
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c\?', 'ccb', 'c'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\?', 'abd', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\?', 'abccd', 'bc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1}', 'ab', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'caad', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aba'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'abaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vb{1}', 'abca', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vba{2}', 'abaa', 'baa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vba{3}', 'aabaac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'dabc', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'acb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){0,2}', 'acb', "", ""])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){0,2}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1,2}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1,2}', 'ababc', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2,4}', 'ababcab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2,4}', 'abcababa', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'cdababe', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abacabab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'daaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'daaac', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'aaa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})+', 'adaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})+', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'aa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){2}', 'aaaa', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+){2}', 'dadaac', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){2}', 'daaac', 'aaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){3}', 'daac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){2}', 'dac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)+', 'daac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)+', 'aaa', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+){1,2}', 'aaa', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{3})+', 'daaaac', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b|c)+', 'aacb', 'aacb', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b|c){2}', 'abcb', 'ab', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc){2}', 'abcabd', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc){2}', 'abdabcabc','abcabc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a*', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+)+', 'ab', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{0,2})+', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((a*)+)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)*)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1,3}', 'aab', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2,3}', 'abaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}|b{2}', 'abab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}c', 'aabbccccccccccccc', 'abbc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va(bc){2}d', 'aabcbfbc' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'a', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'aa', 'aa' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'aaa', 'aaa' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'bbbabcc', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*b*|a*c*', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1}b{1}|a{1}b{1}', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"submatches
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)', 'ab', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)(b)', 'ab', 'ab', 'a', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)|(b)', 'ab', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', 'aaaa', 'aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x', 'abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" Simple tests """""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Search single groups
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'baced'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', '                    ab           ', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Search multi-modifiers
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'xcd', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'xxxxxxxxxxxxxxxxsofijiojgf', 'xxxxxxxxxxxxxxxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'abcdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" no match here
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abcdoin'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abcdeoijdfxxiuhfij', 'xx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'xxxxx', 'xxxxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abc x siufhiush xxxxxxxxx', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'x sdfoij', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'abc sfoij', '']) " empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'xxxxxxxxx c', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'x sdfoij', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'abc sfoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'xxxxxxxxxx c', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,0}', 'abcdfdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a?'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,1}', 'asiubid axxxaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a\{0,1}'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{1,0}', 'asiubid axxxaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aa siofuh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aaaaa asfoij afaa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aaaaaaaa', 'aaaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0}', 'asoiuj', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'iuash fiusahfliusah fiushfilushfi uhsaifuh askfj na

sfvius afg aaaa sfiuhuhiushf', 'aa'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,}', 'oij sdigfusnf', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,}', 'aaaaa aa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,}', 'sdfiougjdsafg'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,}', 'aaaaasfoij ', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{5,}', 'xxaaaaxxx '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{5,}', 'xxaaaaaxxx ', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,5}', 'abcd', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,5}', 'aaaaaaaaaa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" leading star as normal char when \{} follows
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '***'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '****', '****'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '*****', '*****'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{}', 'bbbcddiuhfcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{}', 'aaaaioudfh coisf jda', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,0}', 'abcdfdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" anti-greedy version of 'a?'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,1}', 'asiubid axxxaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aa siofuh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aaaaa asfoij afaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aaaaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0}', 'asoiuj', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2}', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,}', 'oij sdigfusnf', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,}', 'aaaaa aa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,}', 'sdfiougjdsafg'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,}', 'aaaaasfoij ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,5}', 'abcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,5}', 'aaaaaaaaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" anti-greedy version of 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-}', 'bbbcddiuhfcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-}', 'aaaaioudfh coisf jda', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test groups of characters and submatches
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(abc\)*', 'abcabcabc', 'abcabcabc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(ab\)\+', 'abababaaaaa', 'ababab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(abaaaaa\)*cd', 'cd', 'cd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(test1\)\? \(test2\)\?', 'test1 test3', 'test1 ', 'test1', 

''])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(test1\)\= \(test2\) \(test4443\)\=', ' test2 test4443 yupi

iiiiiiiiii', ' test2 test4443', '', 'test2', 'test4443'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\(sub1\) hello \(sub 2\)\)', 'asterix sub1 hello sub 2 obe

lix', 'sub1 hello sub 2', 'sub1 hello sub 2', 'sub1', 'sub 2'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\(\(yyxxzz\)\)\)', 'abcdddsfiusfyyzzxxyyxxzz', 'yyxxzz', '

yyxxzz', 'yyxxzz', 'yyxxzz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+|c+)+', 'abcccaba', 'abcccab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a(c*)+b)+', 'acbababaaa', 'acbabab', 'ab', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b*)+', 'aaaa', 'aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p*', 'aá ^I', 'aá '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test greedy-ness and lazy-ness
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,7}','aaaaaaaaaaaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,7}','aaaaaaaaaaaaaaaaaaaa', 'aaaaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vx(.{-,8})yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz','ayxa

','xayzxayz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vx(.*)yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz', 'ayxayzx

ayzxa',''])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){-2,3}','aaaaaaa','aaaa','aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{-1,3})+', 'aa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\zs\( x\|x$\)', ' x', ' x', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\zs\(x\| x$\)', ' x', ' x', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\ze\(x\| x$\)', ' x', '', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(\s\{-}\)\(x\| x$\)', ' x', ' x', '', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test Character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\d\+e\d\d','test 10e23 fd','10e23'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test collections and character range []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v[a]', 'abcd', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a[bcd]', 'abcd', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a[b-d]', 'acbd', 'ac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-d][e-f][x-x]d', 'cexdxx', 'cexd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v[[:alpha:]]+', 'abcdefghijklmnopqrstuvwxyz6','abcdefghijkl

mnopqrstuvwxyz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:]\+]', '6x8','x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]\+','abcabcabc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]','defghiasijvoinasoiunbvb','d'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]\+','ddddddda','ddddddd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-d]\+','aaaAAAZIHFNCddd','AAAZIHFNC'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*','iiiiiiii',''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*','abcdefgh','abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-f]\+','abcdefgh','gh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-c]\{-3,6}','abcabc','abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^[:alpha:]]\+','abcccadfoij7787ysf287yrnccdu','7787'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[-a]', '-', '-'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-]', '-', '-'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*\c','ABCDEFGH','ABCDEF'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[abc][xyz]\c','-af-AF-BY--','BY'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" filename regexp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[-./[:alnum:]_~]\+', 'log13.file', 'log13.file'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" special chars
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[\]\^\-\\]\+', '\^\\\-\---^', '\^\\\-\---^'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" collation elem
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[.a.]]\+', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" middle of regexp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc[0-9]*ddd', 'siuhabc ii'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc[0-9]*ddd', 'adf abc44482ddd oijs', 'abc44482ddd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[0-9]\+', 'asfi9888u', '9888'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9\n]\+', 'asfi9888u', '9888'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[0-9]\+', "asfi\n9888u", "\n9888"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_f', "  \na ", "\n"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_f\+', "  \na ", "\na"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9A-Za-z-_.]\+', " @0_a.A-{ ", "0_a.A-"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test start/end of line, start/end of file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^a.', "a_\nb ", "a_"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^a.', "b a \na_"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a$', " a\n "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a$', " a b\n_a", "_a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%^a.', "a a\na", "a "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%^a', " a \na "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a\%$', " a\n "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a\%$', " a\n_a", "_a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test recognition of character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Tests for \z features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" match ends at \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'xx \ze test', 'xx '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\zeend', 'oij abcend', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaxx', ' aabb ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaxx', ' aaxx ', 'aaxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aabb\|aa\zebb', ' aabb ', 'aabb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaebb', ' aabb ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" match starts at \zs
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\zsdd', 'ddabcddxyzt', 'dd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa \zsax', ' ax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if 

last'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\>\zs.', 'aword. ', '.'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is   [a t', '  '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Tests for \@= and \& features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=', 'abc', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=cd', 'abcd', 'abcd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=', 'ababc', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" will never match, no matter the input text
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abcd\@=e', 'abcd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" will never match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abcd\@=e', 'any text in here ... '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc)@=..', 'xabcd', 'ab', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(.*John\)\@=.*Bob', 'here is John, and here is B'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(John.*\)\@=.*Bob', 'John is Bobs friend', 'John is Bob', '

John is Bobs friend'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<\S\+\())\)\@=', '$((i=i+1))', 'i=i+1', '))'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.*John\&.*Bob', 'here is John, and here is B'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.*John\&.*Bob', 'John is Bobs friend', 'John is Bob'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(test1)@=.*yep', 'this is a test1, yep it is', 'test1, yep

', 'test1'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\(bar\)\@!', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\(bar\)\@!', 'foo bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if then else'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if else ', 'if else ', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@!bar', 'foobar', 'bar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@!...bar', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' bar foo '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo bar '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo xxx ', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ ]\@!\p\%([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:']

)[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ ]\@!\p\([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:', 

's'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'm\k\+_\@=\%(_\@!\k\)\@<=\k\+e', 'mx__xe', 'mx__xe'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%(\U\@<=S\k*\|S\l\)R', 'SuR', 'SuR'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Combining different tests and features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:]]\{-2,6}', '787abcdiuhsasiuhb4', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '', 'abcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(())', 'any possible text', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v%(ab(xyz)c)', '   abxyzc ', 'abxyzc', 'xyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(test|)empty', 'tesempty', 'empty', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|aa)(a|aa)', 'aaa', 'aa', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" \%u and friends
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%d32', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%o40', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%x20', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%u0020', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%U00000020', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%d0', "yes\x0ano", "\x0a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" \%[abc]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'fobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobar', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'fooxx', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobxx', 'foob'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobaxx', 'fooba'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobarxx', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]x', 'foobxx', 'foobx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]x', 'foobarxx', 'foobarx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'barxx', 'barx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'bxx', 'bx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'xxx', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b\%[[ao]r]', 'bar bor', 'bar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b\%[[]]r]', 'b]r bor', 'b]r'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '@\%[\w\-]*', '<http://john.net/pandoc/>[@pandoc]', '@pandoc'

])[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Alternatives, must use first longest match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'goo\|go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<goo\|\<go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<goo\|go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Back references
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\i\+\) \1', ' abc abc', 'abc abc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\i\+\) \1', 'xgoo goox', 'goo goo', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a\)\(b\)\(c\)\(dd\)\(e\)\(f\)\(g\)\(h\)\(i\)\1\2\3\4\5\6\7

\8\9', 'xabcddefghiabcddefghix', 'abcddefghiabcddefghi', 'a', 'b', 'c', 'dd', 'e

', 'f', 'g', 'h', 'i'])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\d*\)a \1b', ' a b ', 'a b', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.\(.\).\_..\1.', "aaa\naaa\nb", "aaa\naaa", 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.com', 'foo.bat/foo

.com', 'bat'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.bat'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<=$', 'foo.bat/foo.bat', 'foo.bat/foo

.bat', 'bat', 'bat'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}', '2013-06-27${0}', '$

{0}', '0'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(a*\)\1$', 'aaaaaaaa', 'aaaaaaaa', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(a\{-2,}\)\1\+$', 'aaaaaaaaa', 'aaaaaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Look-behind with limit
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@1<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@2<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<<

'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@1<=span.', 'xxspanxxxx<spanxx<<spanyyy'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@2<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<

<'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<!bar.', 'xx foobar1 xbar2 xx', 'bar2'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" look-behind match in front of a zero-width item
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" test header'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" Last Changed: 1970', '19

70'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=\>', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" complicated look-behind match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^[a-z]\+\ze \&\(asdf\)\@<!', 'foo bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" \@>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a*\)\@>a', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(.\{-}b\)\@>.', '  abcbd', '  abc', '  ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TODO: BT engine does not restore submatch after failure
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" "\_" prepended negated collection matches EOL
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Requiring lots of states.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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-"])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Skip adding state twice
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=', "#if FOO", 

"#if", ' FOO'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""" Test \%V atom
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%>70vGesamt', 'Jean-Michel Charlier & Victor Hubinon\Gesamt

ausgabe [Salleck]    Buck Danny {Jean-Michel Charlier & Victor Hubinon}\Gesamtau

sgabe', 'Gesamt'])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let text = t[2]

[?25l[?1c:  [?25h[?0c:  let matchidx = 3

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    try

[?25l[?1c:      [?25h[?0c:      let l = matchlist(text, pat)

[?25l[?1c:      [?25h[?0c:    catch

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l[?1c:      [?25h[?0c:    endtry

[?25l[?1c:    [?25h[?0c:" check the match itself

[?25l[?1c:    [?25h[?0c:    if len(l) == 0 && len(t) > matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    elseif len(l) > 0 && len(t) == matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l[?1c:      [?25h[?0c:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if len(l) > 0

[?25l[?1c:      [?25h[?0c:"   check all the nine submatches

[?25l[?1c:      [?25h[?0c:      for i in range(1, 9)

[?25l[?1c:[?25h[?0c:        if len(t) <= matchidx + i

[?25l[?1c:[?25h[?0c:          let e = ''

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          let e = t[matchidx + i]

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:        if l[i] != e

[?25l[?1c:[?25h[?0c:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:      endfor

[?25l[?1c:      [?25h[?0c:      unlet i

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 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.*$\)\@=
OK 0 - \%>70vGesamt
OK 1 - \%>70vGesamt
OK 2 - \%>70vGesamt
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl e l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""""" multi-line tests """"""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" back references
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.\(.\).\_..\1.', ['aaa', 'aaa', 'b'], ['XX', 'b']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" line breaks
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\S.*\nx', ['abc', 'def', 'ghi', 'xjk', 'lmn'], ['abc', 'def'

, 'XXjk', 'lmn']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check that \_[0-9] matching EOL does not break a following \>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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', '']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check a pattern with a line break and ^ and $
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(^.\+\n\)\1', [' dog', ' dog', 'asdf'], ['XXasdf']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the multi-line tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='multi-line tests'
[?25l[?1c
multi-line tests[?25h[?0c[?25l[?1c
:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let before = t[2]

[?25l[?1c:  [?25h[?0c:  let after = t[3]

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re ==1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    new

[?25l[?1c:    [?25h[?0c:    call setline(1, before)

[?25l[?1c:    [?25h[?0c:    exe '%s/' . pat . '/XX/'

[?25l[?1c:    [?25h[?0c:    let result = getline(1, '$')

[?25l[?1c:    [?25h[?0c:    q!

[?25l[?1c:    [?25h[?0c:    if result != after

[?25l[?1c:      [?25h[?0c:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . string(before) . 

'\", expected: \"' . string(after) . '\", got: \"' . string(result) . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 2 - \%>70vGesamt
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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check that using a pattern on two lines doesn't get messed up by using
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" matchstr() with \ze in between.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset re=0
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Substitute here
[?25l[?1csearch hit BOTTOM, continuing at TOP:    let l = matchlist('x x', pat)
:    $put ='E888 NOT detected for ' . pat
:  catch
:    $put ='E888 detected for ' . pat
:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="">Ta 5</Title>
<T="">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c.+1,.+2s/""/\='"'.matchstr(getline("."), '\d\+\ze<').'"'
[?25l[?1c5">Ta 5</Title>
<T="7">Ac 7</Title>
[?25h[?0c[?25l[?1c/[?25h[?0c^Substitute here
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c.+1,.+2yank
[?25l[?1c[?25h[?0c[?25l[?1cOK 2 - \%>70vGesamt
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
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
<T="5">Ta 5</Title>
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check a pattern with a look beind crossing a line boundary
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Behind:
[?25l[?1csearch hit BOTTOM, continuing at TOP:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexe the thexethe
andaxand andaxand
oooxofor foroxooo
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/[?25h[?0c\(<\_[xy]\+\)\@3<=start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.yank
[?25l[?1c[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
xxstart3
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check matching Visual area
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Visual:
[?25l[?1csearch hit BOTTOM, continuing at TOP<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexe the thexethe
andaxand andaxand
oooxofor foroxooo
oooxofor foroxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf

Results of test64:
search hit BOTTOM, continuing at TOP[?25h[?0c
the[?25l[?1c[?25h[?0c[?25l[?1cxe the the[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Ve/E/g
[?25l[?1c3 substitutions on 1 linexE thE thE
[?25h[?0c
[?25l[?1candaxand andaxand 
[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Va/A/g
[?25l[?1c6 substitutions on 1 lineAndAxAnd AndAxAnd[?25h[?0c
ooo[?25l[?1c[?25h[?0c[?25l[?1cxofor foro[?25h[?0c[?25l[?1cx
oooxofor foro[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Vo/O/g
[?25l[?1c8 substitutions on 2 linesxOfOr fOrOx
oooxOfOr fOrO
[?25h[?0c[?25l[?1c:[?25h[?0c/^Visual/+1,/^Visual/+4yank
[?25l[?1csearch hit BOTTOM, continuing at TOP
4 lines yanked[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
4 more lines
thexE thE thExethe4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check matching marks
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Marks:
[?25l[?1csearch hit BOTTOM, continuing at TOPasdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf

Results of test64:
OK 0 - ab
OK 1 - ab
OK 2 - ab
OK 0 - b
OK 1 - b
OK 2 - b
search hit BOTTOM, continuing at TOP[?25h[?0c
asdf[?25l[?1c:[?25h[?0c.-4,.+6s/.\%>'s.*\%<'e../here/
[?25l[?1chereasdf[?25h[?0c
asdf
dfsa
dfsadf[?25l[?1c:[?25h[?0c.-4,.+6s/.\%>'s\_.*\%<'e../again/
[?25l[?1c
asdfagainasdfOK 0 - bc*[?25h[?0c[?25l[?1c:[?25h[?0c/^Marks:/+1,/^Marks:/+3yank
[?25l[?1csearch hit BOTTOM, continuing at TOP
3 lines yanked[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
3 more linesasdfhereasdf
asdfagainasdf3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check patterns matching cursor position.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc! Postest()
[?25l[?1c
:  [?25h[?0c new

[?25l[?1c:  [?25h[?0c call setline(1, ['ffooooo', 'boboooo', 'zoooooo', 'koooooo', 'moooooo', "\t

\t\tfoo", 'abababababababfoo', 'bababababababafoo', '********_', '        xxxxxx

xxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx

xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxx

xxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxx

x xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx xxxxxxxxx xxxx

xxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xx

xxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx xxxxxxxxxxxx x

xxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxx

xxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx'])

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 1, 0, 0])

[?25l[?1c:  [?25h[?0c s/\%>3c.//g

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 2, 4, 0])

[?25l[?1c:  [?25h[?0c s/\%#.*$//g

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 3, 0, 0])

[?25l[?1c:  [?25h[?0c s/\%<3c./_/g

[?25l[?1c:  [?25h[?0c %s/\%4l\%>5c./_/g

[?25l[?1c:  [?25h[?0c %s/\%6l\%>25v./_/g

[?25l[?1c:  [?25h[?0c %s/\%>6l\%3c./!/g

[?25l[?1c:  [?25h[?0c %s/\%>7l\%12c./?/g

[?25l[?1c:  [?25h[?0c %s/\%>7l\%<9l\%>5v\%<8v./#/g

[?25l[?1c:  [?25h[?0c $s/\%(|\u.*\)\@<=[^|\t]\+$//ge

[?25l[?1c:  [?25h[?0c 1,$yank

[?25l[?1c:  [?25h[?0c quit!

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

asdfhereasdf
asdfagainasdf[?25h[?0c[?25l[?1c20 - a\n^b$\n^cOK 1 - a\n^b$\n^c2
OK 0 - \(^.\+\n\)\1
OK 1 - \(^.\+\n\)\1
OK 2<T="5">Ta 5</Title>
<T="7">Ac 7</Title>xxstart3thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooooooxOfOr fOrOxoooasdfhereasdfasdfagainasdf~                                                                               [?25h[?0c[?25l[?1c
-0-[?25h[?0c[?25l[?1c
:[?25h[?0cset re=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1coooxOfOr fOrOxooo

asdfhereasdf
asdfagainasdf-0-ffobob__ooooo
koooo__moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx[?25h[?0c[?25l[?1c
-1-[?25h[?0c[?25l[?1c
:[?25h[?0cset re=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c-1-
ffo
bob
__ooooo
koooo__
moooooo
   f__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxx
xxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx x xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxxxxxxxx
xxxxxx  xxx xxxx xx xxxxxxxx xxx xxxxxxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-2-[?25h[?0c[?25l[?1c:[?25h[?0cset re=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c-2-
ffo
bob~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" start and end of buffer
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%^
[?25l[?1csearch 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTest[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cOK 2 - \v(a*)+
OK 0 - \v((ab)+)+
OK 1 - \v((ab)+)+
OK 2 - \v((ab)+)+
OK 0 - \v(((ab)+)+)+
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}[?25h[?0c[?25l[?1c/[?25h[?0c\%^..
[?25l[?1csearch 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTest[?25h[?0c[?25l[?1ct END[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cOK 0 - \v((ab)+)+
OK 1 - \v((ab)+)+
OK 2 - \v((ab)+)+
OK 0 - \v(((ab)+)+)+
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}[?25h[?0c[?25l[?1c/[?25h[?0c\%$
[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:" tl is a List of Lists with:
:"    regexp engine
:"    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'])[?25h[?0c[?25l[?1c/[?25h[?0c..\%$
[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1cEN[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cE[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check for detecting error
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset regexpengine=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor pat in [' \ze*', ' \zs*']
[?25l[?1c
:  [?25h[?0c:  try

[?25l[?1c:    [?25h[?0c:    let l = matchlist('x x', pat)

[?25l[?1c:    [?25h[?0c:    $put ='E888 NOT detected for ' . pat

[?25l[?1c:    [?25h[?0c:  catch

[?25l[?1c:    [?25h[?0c:    $put ='E888 detected for ' . pat

[?25l[?1c:    [?25h[?0c:  endtry

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?ba
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxxxxxxx xxx xxxxxxx xxxxxxxxx  xxx
xxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxx xxxx xxx xxxx xxx xxx 
xx x xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx xxxxxxx xxxxxxx x x xx xxxxxx xxxxxxx  xxxxxxxxxx xxxxx xxx xxx xxxxxxxx   xxxx xxx xxxxxx xxxxx xxxxx xx  xxxxxxxxx xxxx xxxxxxxxx xxxxx xxxxx xx xxxxxxxxx xxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxTestEND
EN888 detected for  \ze*
E888 detected for  \zs*[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" Write the results """""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/\%#=1^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1107 lines, 22167 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test64 = test61; then \
#	  if diff test.out test64.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test64.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test64.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test65.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for floating point and logical operators.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 89 lines, 2067 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("float")
[?25l[?1c
:  [?25h[?0c:  e! test.ok

[?25l[?1c:  [?25h[?0c:  wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:$put =float2nr(123.456)
:$put =float2nr(-123.456)
:$put ='AND'[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%f', 123.456)
[?25l[?1c
123.456000[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%e', 123.456)
[?25l[?1c
1.234560e+02[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 123.456)
[?25l[?1c
123.456[?25h[?0c[?25l[?1c
:[?25h[?0c" check we don't crash on division by zero
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cecho 1.0 / 0.0
[?25l[?1cinf[?25h[?0c[?25l[?1c:[?25h[?0c$put ='+='
[?25l[?1c
+=[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v += 6.543
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%g', v)
[?25l[?1c
7.777[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v += 5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%g', v)
[?25l[?1c
6.234[?25h[?0c[?25l[?1c
:[?25h[?0clet a = 5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a += 3.333
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(a)
[?25l[?1c
8.333[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='=='
[?25l[?1c
==[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =v == 1.234
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =v == 1.2341
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='add-subtract'
[?25l[?1c
add-subtract[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4 + 1.234)
[?25l[?1c
5.234[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 1.234 - 8)
[?25l[?1c
-6.766[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='mult-div'
[?25l[?1c
mult-div[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4 * 1.234)
[?25l[?1c
4.936[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4.0 / 1234)
[?25l[?1c
0.003241[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='dict'
[?25l[?1c
dict[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string({'x': 1.234, 'y': -2.0e20})
[?25l[?1c
{'x': 1.234, 'y': -2.0e20}[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='list'
[?25l[?1c
list[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string([-123.4, 2.0e-20])
[?25l[?1c
[-123.4, 2.0e-20][?25h[?0c[?25l[?1c
:[?25h[?0c$put ='abs'
[?25l[?1c
abs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs(1456))
[?25l[?1c
1456[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs(-4))
[?25l[?1c
4[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs([1, 2, 3]))
[?25l[?1cE745: Using a List as a Number
-1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', abs(14.56))
[?25l[?1c
14.56[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', abs(-54.32))
[?25l[?1c
54.32[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ceil'
[?25l[?1c
ceil[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(1.456))
[?25l[?1c
2.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(-5.456))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(-4.000))
[?25l[?1c
-4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='floor'
[?25l[?1c
floor[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(1.856))
[?25l[?1c
1.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(-5.456))
[?25l[?1c
-6.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(4.0))
[?25l[?1c
4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='log10'
[?25l[?1c
log10[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', log10(1000))
[?25l[?1c
3.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', log10(0.01000))
[?25l[?1c
-2.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='pow'
[?25l[?1c
pow[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', pow(3, 3.0))
[?25l[?1c
27.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', pow(2, 16))
[?25l[?1c
65536.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='round'
[?25l[?1c
round[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(0.456))
[?25l[?1c
0.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(4.5))
[?25l[?1c
5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(-4.50))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='sqrt'
[?25l[?1c
sqrt[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', sqrt(100))
[?25l[?1c
10.0[?25h[?0c[?25l[?1c
:[?25h[?0cecho sqrt(-4.01)
[?25l[?1cnan[?25h[?0c[?25l[?1c:[?25h[?0c$put ='str2float'
[?25l[?1c
str2float[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', str2float('1e40'))
[?25l[?1c
1.0e40[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='trunc'
[?25l[?1c
trunc[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(1.456))
[?25l[?1c
1.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(-5.456))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(4.000))
[?25l[?1c
4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='float2nr'
[?25l[?1c
float2nr[?25h[?0c[?25l[?1c
:[?25h[?0c$put =float2nr(123.456)
[?25l[?1c
123[?25h[?0c[?25l[?1c
:[?25h[?0c$put =float2nr(-123.456)
[?25l[?1c
-123[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='AND'
[?25l[?1c
AND[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 127)
[?25l[?1c
127[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 16)
[?25l[?1c
16[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 128)
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='OR'
[?25l[?1c
OR[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(16, 7)
[?25l[?1c
23[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(8, 7)
[?25l[?1c
15[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(0, 123)
[?25l[?1c
123[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='XOR'
[?25l[?1c
XOR[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 127)
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 16)
[?25l[?1c
111[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 128)
[?25l[?1c
255[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='invert'
[?25l[?1c
invert[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(127), 65535)
[?25l[?1c
65408[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(16), 65535)
[?25l[?1c
65519[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(128), 65535)
[?25l[?1c
65407[?25h[?0c[?25l[?1c
:[?25h[?0c$put =invert(1.0)
[?25l[?1cE805: Using a Float as a Number
0[?25h[?0c[?25l[?1c
:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 73 lines, 430 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test65 = test61; then \
#	  if diff test.out test65.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test65.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test65.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test66.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 234 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^one
[?25l[?1c[?25h[?0con[?25l[?1c[?25h[?0c[?25l[?1ce
one two three
one two three
one two three
one two three[?25h[?0c[?25l[?1c
4 fewer linesabcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cmore lines; before #1  0 seconds agoone two three
one two three
one two threeone two threeone two three[?25h[?0c[?25l[?1ce
one
one
one
on[?25h[?0c[?25l[?1c1
on1
on1
on1
on1[?25h[?0c[?25l[?1c:[?25h[?0c'<,'>w! test.out
[?25l[?1c"test.out" [New File] 5 lines, 70 characters written[?25h[?0c[?25l[?1c/[?25h[?0c^abcdefgh
[?25l[?1cabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
[?25h[?0c[?25l[?1ca
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?25h[?0c
[?25l[?1cabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc            defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci  [?25h[?0c[?25l[?1c
5 lines <ed 1 timeidefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0c$-5,$w >> test.out
[?25l[?1c"test.out"6 lines, 151 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$s/\s\+//g
[?25l[?1c7 substitutions on 4 linesabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
a
a
a[?25h[?0c[?25l[?1c
a
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghij
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?25h[?0c
[?25l[?1cabcdefghij[?25h[?0c
    ab[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc                       defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc                 defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci  [?25h[?0c[?25l[?1c
5 lines <ed 3 timesidefghijklmnopqrstuvwxyz    defghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$w >> test.out
[?25l[?1c"test.out"5 lines, 147 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test66 = test61; then \
#	  if diff test.out test66.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test66.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test66.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test67.in
[?25h[?8c[?25h[?0c[?25l[?1c"test67.in" 33 lines, 1110 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#<buffer>: " . exists("#BufEnter#<buffer>"))
:au BufEnter <buffer> let g:entered=1[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest that groups and patterns are tested correctly when calling exists() for[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 999 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
:edit testfile2.test
:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
:e! test.out
:call append(0, results)
:$d
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet results=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup auexists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "##BufEnter: " . exists("##BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter * let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup auexists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter * let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter *.test let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit testfile.test
[?25l[?1c"testfile.test" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter <buffer> let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit testfile2.test
[?25l[?1c"testfile2.test" [New File][?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File][?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, results)
[?25l[?1c##BufEnter: 1
#BufEnter: 0
#BufEnter: 1
#auexists#BufEnter: 0
#auexists#BufEnter: 1
#BufEnter#*.test: 0
#BufEnter#*.test: 1
#BufEnter#<buffer>: 0
#BufEnter#<buffer>: 1
#BufEnter#<buffer>: 0[?25h[?0c[?25l[?1c:[?25h[?0c$d
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 10 lines, 190 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test67 = test61; then \
#	  if diff test.out test67.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test67.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test67.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test68.in
[?25h[?8c[?25h[?0c[?25l[?1c"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

{[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for text formatting.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 48 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noai tw=2 fo=t
[?25l[?1c[?25h[?0c[?25l[?1ca
b[?25h[?0c
[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 38 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c
a  b[?25h[?0c[?25l[?1c
:[?25h[?0cset ai tw=2 fo=tw
[?25l[?1c[?25h[?0c[?25l[?1c
b[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
a[?25h[?0ca [?25l[?1c
b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=3 fo=t
gqgqo
a ^V^A^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
a ^A[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=3 fo=t
[?25l[?1c[?25h[?0c[?25l[?1c
^A[?25h[?0c[?25l[?1ca
^A
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=2 fo=tcq1 comments=:#
gqgqjgqgqo
a b
#a b^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
a b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=2 fo=tcq1 comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
#a b[?25h[?0c[?25l[?1ca b
#a b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 46 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=tcn comments=:#
A b^[jA b^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  1 a[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=tcn comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
b[?25h[?0c[?25l[?1c
# 1 a[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+3
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 35 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=t2a si
i  ^[A_^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+3
[?25l[?1c{

  x a
  b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=t2a si
[?25l[?1c[?25h[?0c[?25l[?1c    b[?25h[?0c[?25l[?1c b_[?25h[?0c[?25l[?1c
c[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=qn comments=:#
gwap
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
# 1 a b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=qn comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=q2 comments=:#
gwap
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
# x[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=q2 comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c# x a
[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+2
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 26 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw& fo=a
I^^^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+2
[?25l[?1c{
   1aa
   2bb[?25h[?0c[?25l[?1c
:[?25h[?0cset tw& fo=a
[?25l[?1c[?25h[?0c[?25l[?1c1aa ^^2bb }STARTTEST[?25h[?0c
[?25l[?1c/^STARTTEST
[?25h[?0c[?25l[?1c
/mno pqr/[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 69 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
A vwx yz^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0cmno pqr/
[?25l[?1c/* abc def ghi jkl
 *    mno pqr stu[?25h[?0c[?25l[?1c
:[?25h[?0csetl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1c
*    vwx yz[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^#/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 47 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:setl tw=12 fo=tqnc comments=:#
A foobar^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^#/
[?25l[?1c
# 1 xxxxx[?25h[?0c[?25l[?1c
:[?25h[?0csetl tw=12 fo=tqnc comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
#   foobar[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:1;/^Results/,$wq! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c63 fewer lines# 1 a#   b}{
# x a#   b}{ 1aa ^^2bb }/* abc def ghi jkl
 *    mno pqr stu
 *    vwx yz
 */# 1 xxxxx
#   foobar[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 77 lines, 281 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test68 = test61; then \
#	  if diff test.out test68.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test68.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test68.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test69.in
[?25h[?8c[?25h[?0c[?25l[?1c"test69.in" 192 lines, 2185 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for multi-byte text formatting.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 2 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest 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[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=t
[?25l[?1c[?25h[?0c
[?25l[?1c
XYZ[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1c
Z
abc [?25h[?0c[?25l[?1c
X[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cZ[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=1 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
X[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=1 fo=tm
[?25l[?1c[?25h[?0c[?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c
X a
[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c
XY
[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
X Y
[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 140 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y
aX
abX
abcX
abX c
abXY^[
ENDTEST

{
X
Xa
X a
XY
X Y
aX
abX
abcX
abX c[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=tm
[?25l[?1c[?25h[?0c
[?25l[?1ca[?25h[?0c
[?25l[?1ca[?25h[?0c
[?25l[?1cY
[?25h[?0c
[?25l[?1cY 
[?25h[?0c[?25l[?1c
aX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abcX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abX c
[?25h[?0c[?25l[?1cX
c[?25h[?0c[?25l[?1c
abXY
[?25h[?0c[?25l[?1cX
Y
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1cY
a[?25h[?0c[?25l[?1cX
ab[?25h[?0c[?25l[?1cX
abc[?25h[?0c[?25l[?1cX
ab[?25h[?0c[?25l[?1cX
c
ab[?25h[?0c[?25l[?1c
X[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 47 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set ai tw=2 fo=tm
gqgqjgqgqo
X
Xa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  X[?25h[?0c[?25l[?1c
:[?25h[?0cset ai tw=2 fo=tm
[?25l[?1c[?25h[?0c  [?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
  [?25h[?0c[?25l[?1c
X
  a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 53 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set noai tw=2 fo=tm
gqgqjgqgqo
  X
  Xa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  X[?25h[?0c[?25l[?1c
:[?25h[?0cset noai tw=2 fo=tm
[?25l[?1c[?25h[?0c  [?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
  [?25h[?0c[?25l[?1c
X
a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 169 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
XaY
XY
XYZ
X Y
X YZ
XX
XXa
XXY^[
ENDTEST

{
X
Xa
XaY
XY
XYZ
X Y
X YZ
XX
XXa[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=cqm comments=n:X
[?25l[?1c[?25h[?0c

[?25l[?1cXY[?25h[?0c

[?25l[?1cXZ
[?25h[?0c

[?25l[?1c
X Z
[?25h[?0c[?25l[?1c
XX
[?25h[?0c[?25l[?1c
XXa
[?25h[?0c[?25l[?1c
XXY
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
Xa
[?25h[?0c[?25l[?1cXa[?25h[?0c[?25l[?1cXY
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cXZ
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cX Z
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
Xa
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 30 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=2 fo=tm
RXa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=2 fo=tm
[?25l[?1c[?25h[?0c[?25l[?1c
X
a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set mps+=^Vu2018:^Vu2019
d%
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
‘two three ’four[?25h[?0c[?25l[?1c
:[?25h[?0cset mps+=^‘:^’
[?25l[?1c[?25h[?0c[?25l[?1c four[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
/^ra test
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 16 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTjVjra
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^ra test
[?25l[?1c
ra test[?25h[?0c[?25l[?1c
abba
[?25h[?0c[?25l[?1cbba 
[?25h[?0c[?25l[?1c
a
aab 
[?25h[?0c[?25l[?1caaaaaaa [?25h[?0c
[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set whichwrap+=h
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 43 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/^x
dh
:set whichwrap-=h
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset whichwrap+=h
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^x
[?25l[?1cáx[?25h[?0c[?25l[?1cx[?25h[?0c
[?25l[?1c
:[?25h[?0cset whichwrap-=h
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:let a = '.é.' " one char of two bytes
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 548 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:let b = '.é.' " 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 = '.é.'
:put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet a = '.é.' " one char of two bytes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b = '.eé.' " normal e with composing char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^byteidx
[?25l[?1c
byteidx[?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), bytei

dx(a, 4)])
[?25l[?1c:set whichwrap-=h
ENDTESTáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), bytei

dx(b, 4)])
[?25l[?1cENDTESTáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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[?25h[?0c[?25l[?1c
/[?25h[?0c^byteidxcomp
[?25l[?1c
byteidxcomp[?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxc

omp(a, 3), byteidxcomp(a, 4)])
[?25l[?1cáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
:[?25h[?0clet b = '.eé.'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxc

omp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
[?25l[?1cSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^substitute
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 75 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:let y = substitute('123', '\zs', 'a', 'g')    | put =y
ENDTEST[?25h[?0c[?25l[?1csubstitute[?25h[?0c[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^substitute
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('123', '\zs', 'a', 'g')    | put =y
[?25l[?1ca1a2a3a[?25h[?0c[?25l[?1c

/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out[?25h[?0c[?25l[?1c

:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c

/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c104 fewer lines{ four}ra test
aaaaaaaáxbyteidx[0, 1, 3, 4, -1]
[0, 1, 4, 5, -1]byteidxcomp
[0, 1, 3, 4, -1]
[0, 1, 2, 4, 5, -1]substitute
a1a2a3a[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 166 lines, 730 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test69 = test61; then \
#	  if diff test.out test69.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test69.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test69.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test70.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cSmoke test for MzScheme interface and mzeval() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1398 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mzscheme.vim
[?25l[?1c"test.ok" 6 lines, 94 characters

"test.out" [New File] 6 lines, 94 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test70 = test61; then \
#	  if diff test.out test70.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test70.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test70.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test73.in
[?25h[?8c[?25h[?0c[?25l[?1c"test73.in" 169 lines, 3647 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
:"
:" On windows a stale "Xfind" directory may exist, remove it so that
:" we start from a clean state.
:call delete("Xfind", "rf")
:new
:let cwd=getcwd()
:let test_out = cwd . '/test.out'
:call mkdir('Xfind')
:cd Xfind
:set path=
:find
:exec "w! " . test_out
:close[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for find completion.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 164 lines, 3600 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 delete("Xfind", "rf")
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Do all test in a separate window to avoid E211 when we recursively
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" delete the Xfind directory during cleanup
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This will cause a few errors, do it silently.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" On windows a stale "Xfind" directory may exist, remove it so that
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" we start from a clean state.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xfind", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTESTtest73.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet test_out = cwd . '/test.out'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xfind')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xfind
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test73.in[?25h[?0c[?25l[?1c:[?25h[?0cset path=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE345: Can't find file "" in path[?25h[?0c[?25l[?1c:[?25h[?0cexec "w! " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out"
<ild/vim-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test.out" [New] 0L, 0C written/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test73.in                    [?25h[?0c[?25l[?1c:[?25h[?0cset path=.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test73.in                    [?25h[?0c[?25l[?1c:[?25h[?0cset path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test73.in                    [?25h[?0c[?25l[?1c:[?25h[?0cset path=./**
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test73.in                    [?25h[?0c[?25l[?1c:[?25h[?0c" We shouldn't find any file at this point, test.out must be empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('in')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd in
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/in[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('path')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdirtest73.in                                                   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/file.txt
[?25l[?1c"Xfind/file.txt" [New File]Xfind/file.txt[?25h[?0c[?25l[?1c-- INSERT --Holy Grail[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/file.txt" [New] 1L, 11C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/file.txt
[?25l[?1c"Xfind/in/file.txt" [New File]in/file.txt[?25h[?0c[?25l[?1c-- INSERT --Jimmy Hoffa[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/file.txt" [New] 1L, 12C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/stuff.txt
[?25l[?1c"Xfind/in/stuff.txt" [New File]stuff.txt[?25h[?0c[?25l[?1c-- INSERT --Another Holy Grail[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/stuff.txt" [New] 1L, 19C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/path/file.txt
[?25l[?1c"Xfind/in/path/file.txt" [New File]path/file.txt[?25h[?0c[?25l[?1c-- INSERT --E.T.[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/path/file.txt" [New] 1L, 5C written   [?25h[?0c[?25l[?1c:[?25h[?0cset path=Xfind/**
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Rerun the previous three find completions, using fullpath in 'path'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "set path=" . cwd . "/Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Same steps again, using relative and fullpath items that point to the same
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" recursive location.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This is to test that there are no duplicates in the completion list.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "set path+=Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffafile.txt     [?25h[?0c[?25l[?1c:[?25h[?0c" Test find completion for directory of current buffer, which at this point
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" is Xfind/in/file.txt.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset path=.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind st...[?25l[?1cuff.txt[?25h[?0c
[?25l[?1c"Xfind/in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 19C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test find completion for empty path item ",," which is the current directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xfind
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfindin/stuff.txt      /<<PKGBUILDDIR>>/src/vim-gtk/testdir/test73.in[?25h[?0c[?25l[?1c:[?25h[?0cset path=,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind f...[?25l[?1cile.txt[?25h[?0c...[?25l[?1c[?25h[?0c
[?25l[?1c"file.txt" 1L, 11CHoly Grailfile.txt    [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test shortening of
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    foo/x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    foo/y/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" When current directory is above foo/ they should be shortened to (in order
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" of appearance):
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    y/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('foo')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd foo
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/file.txt[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('x')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('y')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd x
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/x[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('bar')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo[?25h[?0c[?25l[?1c:[?25h[?0ccd y
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/y[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('bar')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfindfile.txt                                                         [?25h[?0c[?25l[?1c:[?25h[?0c" We should now be in the Xfind directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce foo/x/bar/voyager.txt
[?25l[?1c"foo/x/bar/voyager.txt" [New File]oo/x/bar/voyager.txt[?25h[?0c[?25l[?1c-- INSERT --Voyager 1[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"foo/x/bar/voyager.txt" [New] 1L, 10C written   [?25h[?0c[?25l[?1c:[?25h[?0ce foo/y/bar/voyager.txt
[?25l[?1c"foo/y/bar/voyager.txt" [New File]y[?25h[?0c[?25l[?1c-- INSERT --Voyager 2[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"foo/y/bar/voyager.txt" [New] 1L, 10C written   [?25h[?0c[?25l[?1c:[?25h[?0cexec "set path=" . cwd . "/Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1cx/bar/voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"foo/x/bar/voyager.txt" 1L, 10C1x[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1cx/bar/voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cy[?25h[?0c
[?25l[?1c"foo/y/bar/voyager.txt" 1L, 10C2y[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" When current directory is .../foo/y/bar they should be shortened to (in
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" order of appearance):
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    ./voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd foo
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/fooy/bar/voyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0ccd y
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/ybar/voyager.txt  [?25h[?0c[?25l[?1c:[?25h[?0ccd bar
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/y/barvoyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"voyager.txt" 1L, 10C[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cx/bar/voyager.txt[?25h[?0c
[?25l[?1c<uild/vim-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/Xfind/foo/x/bar/voyager.txt"
<m-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/Xfind/foo/x/bar/voyager.txt" 1L, 10C1/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/x/bar/voyager.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Check the opposite too:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/y[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foox/bar/voyager.txt                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccd x
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/xbar/voyager.txt  [?25h[?0c[?25l[?1c:[?25h[?0ccd bar
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/x/barvoyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"voyager.txt" 1L, 10C[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cy/bar/voyager.txt[?25h[?0c
[?25l[?1c<uild/vim-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/Xfind/foo/y/bar/voyager.txt"
<m-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/Xfind/foo/y/bar/voyager.txt" 1L, 10C2/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/foo/y/bar/voyager.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Check for correct handling of shorten_fname()'s behavior on windows
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd . "/Xfind/in"
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfind/in[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"file.txt" 1L, 12CJimmy Hoffafile.txt                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for relative to current buffer 'path' item
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd . "/Xfind/"
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xfindin/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cset path=./path
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open the file where Jimmy Hoffa is found
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce in/file.txt
[?25l[?1c"in/file.txt" 1L, 12C[?25h[?0c[?25l[?1c:[?25h[?0c" Find the file containing 'E.T.' in the Xfind/in/path directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1ctxt[?25h[?0c
[?25l[?1c"in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test that completion works when path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open Jimmy Hoffa file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce in/file.txt
[?25l[?1c"in/file.txt" 1L, 12CJimmy Hoffafile.txt     [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Search for the file containing Holy Grail in same directory as in/path.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind stu...[?25l[?1cff.txt[?25h[?0c
[?25l[?1c"in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test.out" 1L, 19C appended[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xfind", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test73 = test61; then \
#	  if diff test.out test73.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test73.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test73.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test75.in
[?25h[?8c[?25h[?0c[?25l[?1c"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<C-V> is<F4>foo
:vnoremap <script> <buffer> <expr> <silent> bar isbar
:call append('$', maparg('foo<C-V>'))
:call append('$', string(maparg('foo<C-V>', '', 0, 1)))
:call append('$', string(maparg('bar', '', 0, 1)))
:map <buffer> <nowait> foo bar
:call append('$', string(maparg('foo', '', 0, 1)))
:"
:map abc x<char-114>x
:call append('$', maparg('abc'))
:map abc y<S-char-114>y
:call append('$', maparg('abc'))
:"
Go^[:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for maparg().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 34 lines, 919 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" Outside of the range, minimum
:inoremap <Char-0x1040> a
:execute "normal a\u1040\<Esc>"
:" Inside of the range, minimum
:inoremap <Char-0x103f> b
:execute "normal a\u103f\<Esc>"
:" Inside of the range, maximum
:inoremap <Char-0xf03f> c
:execute "normal a\uf03f\<Esc>"
:" Outside of the range, maximum
:inoremap <Char-0xf040> d
:execute "normal a\uf040\<Esc>"
:"
:/^eof/+1,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf8
[?25l[?1c:map abc x<char-114>x
:call append('$', maparg('abc'))
:map abc y<S-char-114>y
:call append('$', maparg('abc'))
:"
Go^[:"
:" Outside of the range, minimum
:inoremap <Char-0x1040> a
:execute "normal a\u1040\<Esc>"
:" Inside of the range, minimum
:inoremap <Char-0x103f> b
:execute "normal a\u103f\<Esc>"
:" Inside of the range, maximum
:inoremap <Char-0xf03f> c
:execute "normal a\uf03f\<Esc>"
:" Outside of the range, maximum
:inoremap <Char-0xf040> d
:execute "normal a\uf040\<Esc>"
:"
:/^eof/+1,$w! test.out
:qa!
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0c" Test maparg() with a string result
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap foo<C-V> is<F4>foo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap <script> <buffer> <expr> <silent> bar isbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('foo<C-V>'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('foo<C-V>', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('bar', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap <buffer> <nowait> foo bar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('foo', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap abc x<char-114>x
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('abc'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap abc y<S-char-114>y
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('abc'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1ceof
is<F4>foo
{'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'nowait': 0, 'expr':0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
{'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'nowait': 0, 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
{'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ', 'nowait': 1, 'expr': 0, 'sid': 0, 'rhs': 'bar', 'buffer': 1}
xrx
yRy[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Outside of the range, minimum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0x1040> a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\u1040\<Esc>"
[?25l[?1ca[?25h[?0c[?25l[?1c:[?25h[?0c" Inside of the range, minimum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0x103f> b
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\u103f\<Esc>"
[?25l[?1cb[?25h[?0c[?25l[?1c:[?25h[?0c" Inside of the range, maximum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0xf03f> c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\uf03f\<Esc>"
[?25l[?1cc[?25h[?0c[?25l[?1c:[?25h[?0c" Outside of the range, maximum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0xf040> d
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\uf040\<Esc>"
[?25l[?1cd[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^eof/+1,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 7 lines, 384 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test75 = test61; then \
#	  if diff test.out test75.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test75.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test75.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test77.failed test.ok test.out X* viminfo
cp test77.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test77.in
[?25h[?8c[?25h[?0c[?25l[?1c"test77.in" 30 lines, 719 charactersInserts 2 million lines with consecutive integers starting from 1
(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
and writes its cksum to test.out.

We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
up the lines the checksum would differ.

cksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST
:so small.vim
:if !executable("cksum")
: e! test.ok
: w! test.out
: qa!
:endif
:set fileformat=unix undolevels=-1
ggdG
:let i = 1
:while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhileggdd
:w! Xtest[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cInserts 2 million lines with consecutive integers starting from 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 288 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:r !cksum Xtest
:s/\s/ /g
:set fileformat&
:.w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !executable("cksum")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1ccksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST[?25h[?0c[?25l[?1c
:[?25h[?0cset fileformat=unix undolevels=-1
[?25l[?1c[?25h[?0c[?25l[?1cInserts 2 million lines with consecutive integers starting from 1
(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
and writes its cksum to test.out.

We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
up the lines the checksum would differ.[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhil

e[?25l[?1c12345678910111213141516171819202122[?25h[?0c[?25l[?1c
23[?25h[?0c
[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 2000000 lines, 14888896 characters written[?25h[?0c[?25l[?1c:[?25h[?0cr !cksum Xtest
[?25l[?1c[?25h[?0c[?25l[?1c1
2
3678979763 14888896 Xtest
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22[?25h[?0c[?25l[?1c:[?25h[?0cs/\s/ /g
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 26 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test77 = test61; then \
#	  if diff test.out test77.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test77.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test77.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test79.failed test.ok test.out X* viminfo
cp test79.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test79.in
[?25h[?8c[?25h[?0c[?25l[?1c"test79.in" 255 lines, 3381 charactersTest for *sub-replace-special* and *sub-replace-expression* on :substitute.
Test for submatch() on :substitue.
Test for *:s%* on :substitute.
Test for :s replacing \n with  line break.

STARTTEST
:so small.vim
ENDTEST

Results of test71:

STARTTEST
:set magic
:set cpo&
/^TEST/
j:s/A/&&/
j:s/B/\&/
j:s/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
j:s/D/d/
j:s/E/~/
j:s/F/\~/
j:s/G/\ugg/
j:s/H/\Uh\Eh/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for *sub-replace-special* and *sub-replace-expression* on :substitute.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 347 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTj:s/L/^V^M/
j:s/M/\r/
j:s/N/\^V^M/
j:s/O/\n/
j:s/P/\b/
j:s/Q/\t/
j:s/R/\\/
j:s/S/\c/
j:s/T/^V^@/
j:s/U/\L\uuUu\l\EU/
j:s/V/\U\lVvV\u\Ev/
ENDTEST

TEST_1:
A
B
C123456789
D
E
F
G
H
I[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/&&/
[?25l[?1cA
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\&/
[?25l[?1c&[?25h[?0c
[?25l[?1c:[?25h[?0cs/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l[?1c987654321
[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/d/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/E/~/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/G/\ugg/
[?25l[?1cg
[?25h[?0c
[?25l[?1c:[?25h[?0cs/H/\Uh\Eh/
[?25l[?1ch
[?25h[?0c
[?25l[?1c:[?25h[?0cs/I/\lII/
[?25l[?1ciI
[?25h[?0c[?25l[?1c
J[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\LJ\EJ/
[?25l[?1cjJ
[?25h[?0c[?25l[?1c
K[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\Uk\ek/
[?25l[?1ck
[?25h[?0c[?25l[?1c
lLl[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/^^M/
[?25l[?1c
l[?25h[?0c[?25l[?1c
mMm
[?25h[?0c[?25l[?1c
:[?25h[?0cs/M/\r/
[?25l[?1c
m[?25h[?0c[?25l[?1c
nNn
[?25h[?0c[?25l[?1c
:[?25h[?0cs/N/\^^M/
[?25l[?1c^Mn
[?25h[?0c[?25l[?1c
oOo[?25h[?0c[?25l[?1c
:[?25h[?0cs/O/\n/
[?25l[?1c^@o
[?25h[?0c[?25l[?1c
pPp[?25h[?0c[?25l[?1c
:[?25h[?0cs/P/\b/
[?25l[?1c^Hp
[?25h[?0c[?25l[?1c
qQq[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q/\t/
[?25l[?1c       q
[?25h[?0c[?25l[?1c
rRr[?25h[?0c[?25l[?1c
:[?25h[?0cs/R/\\/
[?25l[?1c\
[?25h[?0c[?25l[?1c
sSs[?25h[?0c[?25l[?1c
:[?25h[?0cs/S/\c/
[?25l[?1cc
[?25h[?0c[?25l[?1c
tTt[?25h[?0c[?25l[?1c
:[?25h[?0cs/T/^^@/
[?25l[?1c^@t
[?25h[?0c[?25l[?1c
U[?25h[?0c[?25l[?1c
:[?25h[?0cs/U/\L\uuUu\l\EU/
[?25l[?1cuuU
[?25h[?0c[?25l[?1c
V[?25h[?0c[?25l[?1c
:[?25h[?0cs/V/\U\lVvV\u\Ev/
[?25l[?1cvVVv
[?25h[?0c[?25l[?1c/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set nomagic
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 351 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/L/^V^M/
j:s/M/\r/
j:s/N/\^V^M/
j:s/O/\n/
j:s/P/\b/
j:s/Q/\t/
j:s/R/\\/
j:s/S/\c/
j:s/T/^V^@/
j:s/U/\L\uuUu\l\EU/
j:s/V/\U\lVvV\u\Ev/
ENDTEST

TEST_2:
A
B
C123456789
D
E
F
G
H
I[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/&&/
[?25l[?1c&&
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\&/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l[?1c987654321
[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/d/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/E/~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/G/\ugg/
[?25l[?1cg
[?25h[?0c
[?25l[?1c:[?25h[?0cs/H/\Uh\Eh/
[?25l[?1ch
[?25h[?0c
[?25l[?1c:[?25h[?0cs/I/\lII/
[?25l[?1ciI
[?25h[?0c[?25l[?1c
J[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\LJ\EJ/
[?25l[?1cjJ
[?25h[?0c[?25l[?1c
K[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\Uk\ek/
[?25l[?1ck
[?25h[?0c[?25l[?1c
lLl[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/^^M/
[?25l[?1c
l[?25h[?0c[?25l[?1c
mMm
[?25h[?0c[?25l[?1c
:[?25h[?0cs/M/\r/
[?25l[?1c
m[?25h[?0c[?25l[?1c
nNn
[?25h[?0c[?25l[?1c
:[?25h[?0cs/N/\^^M/
[?25l[?1c^Mn
[?25h[?0c[?25l[?1c
oOo[?25h[?0c[?25l[?1c
:[?25h[?0cs/O/\n/
[?25l[?1c^@o
[?25h[?0c[?25l[?1c
pPp[?25h[?0c[?25l[?1c
:[?25h[?0cs/P/\b/
[?25l[?1c^Hp
[?25h[?0c[?25l[?1c
qQq[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q/\t/
[?25l[?1c       q
[?25h[?0c[?25l[?1c
rRr[?25h[?0c[?25l[?1c
:[?25h[?0cs/R/\\/
[?25l[?1c\
[?25h[?0c[?25l[?1c
sSs[?25h[?0c[?25l[?1c
:[?25h[?0cs/S/\c/
[?25l[?1cc
[?25h[?0c[?25l[?1c
tTt[?25h[?0c[?25l[?1c
:[?25h[?0cs/T/^^@/
[?25l[?1c^@t
[?25h[?0c[?25l[?1c
U[?25h[?0c[?25l[?1c
:[?25h[?0cs/U/\L\uuUu\l\EU/
[?25l[?1cuuU
[?25h[?0c[?25l[?1c
V[?25h[?0c[?25l[?1c
:[?25h[?0cs/V/\U\lVvV\u\Ev/
[?25l[?1cvVVv
[?25h[?0c[?25l[?1c/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 203 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/B/\='\\'/
j:s/C/\='^V^M'/
j:s/D/\='\^V^M'/
j:s/E/\='\\^V^M'/
j:s/F/\='\r'/
j:s/G/\='^V^@'/
j:s/H/\='\^V^@'/
j:s/I/\='\\^V^@'/
j:s/J/\='\n'/
j:s/K/\="\r"/
j:s/L/\="\n"/
ENDTEST

TEST_3:
aAa
bBb
cCc
dDd
eEe
fFf
gGg
hHh
iIi[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/\='\'/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\='\\'/
[?25l[?1c\\b
[?25h[?0c
[?25l[?1c:[?25h[?0cs/C/\='^^M'/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/\='\^^M'/
[?25l[?1c\d[?25h[?0c
[?25l[?1c


:[?25h[?0cs/E/\='\\^^M'/
[?25l[?1c\\
efFf[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\='\r'/
[?25l[?1c\rf
[?25h[?0c[?25l[?1c
gGg[?25h[?0c[?25l[?1c
:[?25h[?0cs/G/\='^^@'/
[?25l[?1c
g[?25h[?0c[?25l[?1c
hHh
[?25h[?0c[?25l[?1c
:[?25h[?0cs/H/\='\^^@'/
[?25l[?1c
\h[?25h[?0c[?25l[?1c
iIi
[?25h[?0c[?25l[?1c
:[?25h[?0cs/I/\='\\^^@'/
[?25l[?1c
\\
i[?25h[?0c[?25l[?1c
jJj
[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\='\n'/
[?25l[?1c\nj
[?25h[?0c[?25l[?1c
kKk[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\="\r"/
[?25l[?1c
k[?25h[?0c[?25l[?1c
lLl
[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/\="\n"/
[?25l[?1c
l[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 611 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/B/\=substitute(submatch(0), '.', '\\', '')/
j:s/C/\=substitute(submatch(0), '.', '^V^M', '')/
j:s/D/\=substitute(submatch(0), '.', '\^V^M', '')/
j:s/E/\=substitute(submatch(0), '.', '\\^V^M', '')/
j:s/F/\=substitute(submatch(0), '.', '\r', '')/
j:s/G/\=substitute(submatch(0), '.', '^V^@', '')/
j:s/H/\=substitute(submatch(0), '.', '\^V^@', '')/
j:s/I/\=substitute(submatch(0), '.', '\\^V^@', '')/
j:s/J/\=substitute(submatch(0), '.', '\n', '')/
j:s/K/\=substitute(submatch(0), '.', "\r", '')/
j:s/L/\=substitute(submatch(0), '.', "\n", '')/
ENDTEST

TEST_4:
aAa
bBb
cCc
dDd
eEe
fFf
gGg
hHh
iIi[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/\=substitute(submatch(0), '.', '\', '')/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\=substitute(submatch(0), '.', '\\', '')/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/C/\=substitute(submatch(0), '.', '^^M', '')/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/\=substitute(submatch(0), '.', '\^^M', '')/
[?25l[?1cd[?25h[?0c
[?25l[?1c


:[?25h[?0cs/E/\=substitute(submatch(0), '.', '\\^^M', '')/
[?25l[?1c\efFf[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\=substitute(submatch(0), '.', '\r', '')/
[?25l[?1c
f[?25h[?0c[?25l[?1c
gGg
[?25h[?0c[?25l[?1c
:[?25h[?0cs/G/\=substitute(submatch(0), '.', '^^@', '')/
[?25l[?1c
g[?25h[?0c[?25l[?1c
hHh
[?25h[?0c[?25l[?1c
:[?25h[?0cs/H/\=substitute(submatch(0), '.', '\^^@', '')/
[?25l[?1c
h[?25h[?0c[?25l[?1c
iIi
[?25h[?0c[?25l[?1c
:[?25h[?0cs/I/\=substitute(submatch(0), '.', '\\^^@', '')/
[?25l[?1c
\i[?25h[?0c[?25l[?1c
jJj
[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\=substitute(submatch(0), '.', '\n', '')/
[?25l[?1c
j[?25h[?0c[?25l[?1c
kKk
[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\=substitute(submatch(0), '.', "\r", '')/
[?25l[?1c
k[?25h[?0c[?25l[?1c
lLl
[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/\=substitute(submatch(0), '.', "\n", '')/
[?25l[?1c
l[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 445 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set cpo&
/^TEST/
j:s/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)/
j:s/B\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c
TEST_5:[?25h[?0c[?25l[?1c
A123456789
[?25h[?0c[?25l[?1c
:[?25h[?0cs/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .

submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(

3) . submatch(2) . submatch(1)/
[?25l[?1ci\
i987654321[?25h[?0c[?25l[?1c
B123456789
[?25h[?0c[?25l[?1c
:[?25h[?0cs/B\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=string([submatch(0, 1), sub

match(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), sub

match(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
[?25l[?1ci
j[['B123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/^TEST/
:set cpo+=/
j:s/A/a/
j:s/B/%/
:set cpo-=/
j:s/C/c/
j:s/D/%/
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1cTEST_6:
A
B[?25h[?0c[?25l[?1c


:[?25h[?0cset cpo+=/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/a/
[?25l[?1ca[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/%/
[?25l[?1ca[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=/
[?25l[?1c[?25h[?0c[?25l[?1cC
D[?25h[?0c[?25l[?1c


:[?25h[?0cs/C/c/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/%/
[?25l[?1c%[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 11 lines, 303 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set cpo&
/^TEST_7/
j:s/A./\=submatch(0)/
j:s/B./\=submatch(0)/
j:s/C./\=strtrans(string(submatch(0, 1)))/
j:s/D.\nD/\=strtrans(string(submatch(0, 1)))/
j:s/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
/^Q$
:s/Q[^\n]Q/\=submatch(0)."foobar"/
:" Avoid :s error breaks dotest map on Windows.
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST_7/
[?25l[?1c
TEST_7:[?25h[?0c[?25l[?1c
A^MA
[?25h[?0c[?25l[?1c
:[?25h[?0cs/A./\=submatch(0)/
[?25l[?1c
A[?25h[?0c[?25l[?1c
B^@B
[?25h[?0c[?25l[?1c
:[?25h[?0cs/B./\=submatch(0)/
[?25l[?1c
B[?25h[?0c[?25l[?1c
C^@C
[?25h[?0c[?25l[?1c
:[?25h[?0cs/C./\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['C^@']C
[?25h[?0c[?25l[?1c
D^@[?25h[?0c[?25l[?1c
:[?25h[?0cs/D.\nD/\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['D^@', 'D']
[?25h[?0c[?25l[?1c
E^@[?25h[?0c[?25l[?1c
:[?25h[?0cs/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['E^@', '^@', '^@', '^@', '^@E']
[?25h[?0c[?25l[?1c/[?25h[?0c^Q$
[?25l[?1c
Q[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q[^\n]Q/\=submatch(0)."foobar"/
[?25l[?1cE486: Pattern not found: Q[^\n]Q[?25h[?0c[?25l[?1c:[?25h[?0c" Avoid :s error breaks dotest map on Windows.
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
Q

STARTTEST[?25h[?0c[?25l[?1c
:function! TitleString()
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 177 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTlet check = 'foo' =~ 'bar'
  return ""
endfunction
:set titlestring=%{TitleString()}
:/^test_one/s/.*/\="foo\nbar"/
:/^test_two/s/.*/\="foo\nbar"/c
y
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cfunction! TitleString()
[?25l[?1c
:  [?25h[?0c  let check = 'foo' =~ 'bar'

[?25l[?1c:  [?25h[?0c  return ""

[?25l[?1c:  [?25h[?0cendfunction
[?25l[?1cTEST_7:
A[?25h[?0c[?25l[?1c
:[?25h[?0cset titlestring=%{TitleString()}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^test_one/s/.*/\="foo\nbar"/
[?25l[?1cfoo
bar[?25h[?0c[?25l[?1c
:[?25h[?0c/^test_two/s/.*/\="foo\nbar"/c
[?25l[?1c
test_tworeplace with \="foo\nbar" (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c
foobar
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 72 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:1;/^Results/,$wq! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c136 fewer linesaa
c
%TEST_7:AABB['C^@']C['D^@', 'D']
['E^@', '^@', '^@', '^@', '^@E']
Q
Qfoo
bar
foobar[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 134 lines, 574 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test79 = test61; then \
#	  if diff test.out test79.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test79.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test79.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test80.failed test.ok test.out X* viminfo
cp test80.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test80.in
[?25h[?8c[?25h[?0c[?25l[?1c"test80.in" 201 lines, 6298 charactersTest for *sub-replace-special* and *sub-replace-expression* on substitute().
Test for submatch() on substitute().
Test for *:s%* on :substitute.

STARTTEST
:so small.vim
ENDTEST

TEST_1:

STARTTEST
:set magic
:set cpo&
:$put =\"\n\nTEST_1:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
:$put =substitute('D', 'D', 'd', '')
:$put =substitute('E', 'E', '~', '')
:$put =substitute('F', 'F', '\~', '')
:$put =substitute('G', 'G', '\ugg', '')
:$put =substitute('H', 'H', '\Uh\Eh', '')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for *sub-replace-special* and *sub-replace-expression* on substitute().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1142 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =substitute('pPp', 'P', '\b', '')
:$put =substitute('qQq', 'Q', '\t', '')
:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('xXx', 'X', \"\r\", '')
:$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
:$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
/^TEST_2
ENDTEST

TEST_2:

STARTTEST
:set nomagic
:set cpo&
:$put =\"\n\nTEST_2:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_1:\"
[?25l[?1c3 more lines:set cpo&
:$put =\"\n\nTEST_10:\"
:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST

TEST_11:

STARTTEST
:/^Results/,$wq! test.out
ENDTEST

Results of test72:


TEST_1:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', '&&', '')
[?25l[?1c
AA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '\&', '')
[?25l[?1c
&[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l[?1c:let y = substitute('123', '\zs.', 'a', 'g')| $put =y.\zs\ze', 'a', 'g') .', 'a', 'g').\ze1\|\ze', 'a', 'g')zs\|[23]', 'a', 'g')
/^TEST_11ENDTESTTEST_11:STARTTEST
:/^Results/,$wq! test.out
ENDTESTResults of test72:TEST_1:
AA&C123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', 'd', '')
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('E', 'E', '~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('F', 'F', '\~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('G', 'G', '\ugg', '')
[?25l[?1c
Gg[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l[?1c
Hh[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('I', 'I', '\lII', '')
[?25l[?1c
iI[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l[?1c
jJ[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('K', 'K', '\Uk\ek', '')
[?25l[?1c
Kk[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('lLl', 'L', '^^M', '')
[?25l[?1c
l^Ml[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('mMm', 'M', '\r', '')
[?25l[?1c
m^Mm[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('nNn', 'N', '\^^M', '')
[?25l[?1c
n^Mn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('oOo', 'O', '\n', '')
[?25l[?1co
o[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('pPp', 'P', '\b', '')
[?25l[?1c
p^Hp[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('qQq', 'Q', '\t', '')
[?25l[?1c
qq[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('rRr', 'R', '\\', '')
[?25l[?1c
r\r[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('sSs', 'S', '\c', '')
[?25l[?1c
scs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('uUu', 'U', \"\n\", '')
[?25l[?1cu
u[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('vVv', 'V', \"\b\", '')
[?25l[?1c
v^Hv[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('wWw', 'W', \"\\\", '')
[?25l[?1c
w\w[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('xXx', 'X', \"\r\", '')
[?25l[?1c
x^Mx[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
[?25l[?1c
YyyY[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
[?25l[?1c
zZZz[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_2
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('xXx', 'X', \"\r\", '')
:$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
:$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
/^TEST_2
ENDTEST

TEST_2:

STARTTEST
:set nomagic
:set cpo&
:$put =\"\n\nTEST_2:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
:$put =substitute('D', 'D', 'd', '')
:$put =substitute('E', 'E', '~', '')
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1144 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =substitute('pPp', 'P', '\b', '')
:$put =substitute('qQq', 'Q', '\t', '')
:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('tTt', 'T', \"\r\", '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
:$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
/^TEST_3
ENDTEST

TEST_3:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_3:\"
:let y = substitute('aAa', 'A', '\="\\"', '')| $put =y
:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_2:\"
[?25l[?1c3 more linesHh
iI
jJ
Kk
l^Ml
m^Mm
n^Mn
o
o
p^Hp
qq
r\r
scs
u
u
v^Hv
w\w
x^Mx
YyyY
zZZz


TEST_2:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', '&&', '')
[?25l[?1c
AA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '\&', '')
[?25l[?1c
&[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l[?1cKk
l^Ml
mm
nn
op^Hp
q       q
r\rscs
uv^Hv
w\wx^Mx
YyyY
zZZzTEST_2:
AA&C123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', 'd', '')
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('E', 'E', '~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('F', 'F', '\~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('G', 'G', '\ugg', '')
[?25l[?1c
Gg[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l[?1c
Hh[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('I', 'I', '\lII', '')
[?25l[?1c
iI[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l[?1c
jJ[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('K', 'K', '\Uk\ek', '')
[?25l[?1c
Kk[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('lLl', 'L', '^^M', '')
[?25l[?1c
l^Ml[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('mMm', 'M', '\r', '')
[?25l[?1c
m^Mm[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('nNn', 'N', '\^^M', '')
[?25l[?1c
n^Mn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('oOo', 'O', '\n', '')
[?25l[?1co
o[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('pPp', 'P', '\b', '')
[?25l[?1c
p^Hp[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('qQq', 'Q', '\t', '')
[?25l[?1c
qq[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('rRr', 'R', '\\', '')
[?25l[?1c
r\r[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('sSs', 'S', '\c', '')
[?25l[?1c
scs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('tTt', 'T', \"\r\", '')
[?25l[?1c
t^Mt[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('uUu', 'U', \"\n\", '')
[?25l[?1cu
u[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('vVv', 'V', \"\b\", '')
[?25l[?1c
v^Hv[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('wWw', 'W', \"\\\", '')
[?25l[?1c
w\w[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
[?25l[?1c
XxxX[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
[?25l[?1c
yYYy[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_3
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('tTt', 'T', \"\r\", '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
:$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
/^TEST_3
ENDTEST

TEST_3:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_3:\"
:let y = substitute('aAa', 'A', '\="\\"', '')| $put =y
:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y
:let y = substitute('eEe', 'E', '\="\\\\^V^M"', '')     | $put =y
:let y = substitute('fFf', 'F', '\="\\r"', '')| $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 642 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('jJj', 'J', '\="\\n"', '')| $put =y
:let y = substitute('kKk', 'K', '\="\r"', '')| $put =y
:let y = substitute('lLl', 'L', '\="\n"', '')| $put =y
/^TEST_4
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_3:\"
[?25l[?1c3 more linesHh
iI
jJ
Kk
l^Ml
m^Mm
n^Mn
o
o
p^Hp
qq
r\r
scs
t^Mt
u
u
v^Hv
w\w
XxxX
yYYy


TEST_3:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('aAa', 'A', '\="\\"', '')           | $put =y
[?25l[?1c
a\a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('bBb', 'B', '\="\\\\"', '')         | $put =y
[?25l[?1c
b\\b[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('cCc', 'C', '\="^^M"', '')         | $put =y
[?25l[?1c
c^Mc[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('dDd', 'D', '\="\\^^M"', '')       | $put =y
[?25l[?1c
d\^Md[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('eEe', 'E', '\="\\\\^^M"', '')     | $put =y
[?25l[?1c
e\\^Me[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('fFf', 'F', '\="\\r"', '')          | $put =y
[?25l[?1c
f\rf[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('jJj', 'J', '\="\\n"', '')          | $put =y
[?25l[?1c
j\nj[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('kKk', 'K', '\="\r"', '')           | $put =y
[?25l[?1c
k^Mk[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('lLl', 'L', '\="\n"', '')           | $put =y
[?25l[?1cl
l[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_4
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y
:let y = substitute('eEe', 'E', '\="\\\\^V^M"', '')     | $put =y
:let y = substitute('fFf', 'F', '\="\\r"', '')| $put =y
:let y = substitute('jJj', 'J', '\="\\n"', '')| $put =y
:let y = substitute('kKk', 'K', '\="\r"', '')| $put =y
:let y = substitute('lLl', 'L', '\="\n"', '')| $put =y
/^TEST_4
ENDTEST

TEST_4:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_4:\"
:let y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')| $put =y
:let y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '')     | $put =y
:let y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^V^M", "")', '')     | $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 912 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^V^M", "")',
'')   | $put =y
:let y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^V^M", "")', '') | $put =y
:let y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', '')| $put =y
:let y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '')| $put =y
:let y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')| $put =y
:let y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')| $put =y
/^TEST_5
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_4:\"
[?25l[?1c3 more linest^Mt
u
u
v^Hv
w\w
XxxX
yYYy


TEST_3:
a\a
b\\b
c^Mc
d\^Md
e\\^Me
f\rf
j\nj
k^Mk
l
l


TEST_4:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')

      | $put =y
[?25l[?1cu

v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '

')     | $put =y
[?25l[?1cu
v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^^M", "")', '')

    | $put =y
[?25l[?1cv^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^^M", "")', '

')   | $put =y
[?25l[?1cw\w
XxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^^M", "")',

'') | $put =y
[?25l[?1cXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', ''

)      | $put =y
[?25l[?1cyYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mf[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', ''

)      | $put =y
[?25l[?1cTEST_3:
a\a
b\\bc^Mc
d\^Md
e\\^Me
f\rfj\njk^Mk
llTEST_4:
a\a
b\bc^Mc
d^Md
e\^Me
ff
jj[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')

      | $put =y
[?25l[?1cTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')

      | $put =y
[?25l[?1cb\\b
c^Mc
d\^Md
e\\^Me
f\rfj\njk^Mk
llTEST_4:
a\a
b\bc^Mc
d^Md
e\^Me
ff
jjk^Mk
l
l[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_5
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '')| $put =y
:let y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')| $put =y
:let y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')| $put =y
/^TEST_5
ENDTEST

TEST_5:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])', '')
/^TEST_6
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 543 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTENDTEST[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_5:\"
[?25l[?1c3 more linese\\^Me
f\rf
j\nj
k^Mk
l
l


TEST_4:
a\a
b\b
c^Mc
d^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . subm

atch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
[?25l[?1cf\rf
j\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), su

bmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), su

bmatch(1, 1)])', '')
[?25l[?1cj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_6
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])', '')
/^TEST_6
ENDTEST

TEST_6:

STARTTEST
:set magic&
:$put =\"\n\nTEST_6:\"
:set cpo+=/
:$put =substitute('A', 'A', 'a', '')
:$put =substitute('B', 'B', '%', '')
:set cpo-=/
:$put =substitute('C', 'C', 'c', '')
:$put =substitute('D', 'D', '%', '')
/^TEST_7
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 216 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1cTEST_7:[?25h[?0c[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_6:\"
[?25l[?1c3 more linesl


TEST_4:
a\a
b\b
c^Mc
d^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0cset cpo+=/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', 'a', '')
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '%', '')
[?25l[?1c
%[?25h[?0c[?25l[?1c
:[?25h[?0cset cpo-=/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('C', 'C', 'c', '')
[?25l[?1c
c[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', '%', '')
[?25l[?1c
%[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_7
[?25l[?1csearch hit BOTTOM, continuing at TOP:set magic&
:$put =\"\n\nTEST_6:\"
:set cpo+=/
:$put =substitute('A', 'A', 'a', '')
:$put =substitute('B', 'B', '%', '')
:set cpo-=/
:$put =substitute('C', 'C', 'c', '')
:$put =substitute('D', 'D', '%', '')
/^TEST_7
ENDTEST

TEST_7:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A^V^MA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
:$put =substitute('-bb', '\zeb', 'a', 'g')
:$put =substitute('-bb', '\ze', 'c', 'g')
/^TEST_8
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 313 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_7:\"
[?25l[?1c3 more linesd^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
a
%
c
%


TEST_7:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A^^MA', 'A.', '\=submatch(0)', '')
[?25l[?1c
A^MA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
[?25l[?1cB
B[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
[?25l[?1c['B
']B[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('-bb', '\zeb', 'a', 'g')
[?25l[?1c
-abab[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('-bb', '\ze', 'c', 'g')
[?25l[?1c
c-cbcbc[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_8
[?25l[?1csearch hit BOTTOM, continuing at TOP:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A^V^MA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
:$put =substitute('-bb', '\zeb', 'a', 'g')
:$put =substitute('-bb', '\ze', 'c', 'g')
/^TEST_8
ENDTEST

TEST_8:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 10 lines, 186 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTyy/^TEST_9:
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_8:\"
[?25l[?1c3 more linesTEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
a
%
c
%


TEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =',,X'
[?25l[?1c
,,X[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|X\)/\1N/g
[?25l[?1cN,,NX
[?25h[?0c[?25l[?1c:[?25h[?0c$put =',,Y'
[?25l[?1c
,,Y[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|Y\)/\1N/gc
[?25l[?1c,
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cN,,NY
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =',,Z'
[?25l[?1c
,,Z[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|Z\)/\1N/gc
[?25l[?1c,
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cN,,Z
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c,NZ
[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_9:
[?25l[?1csearch hit BOTTOM, continuing at TOP:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
yy/^TEST_9:
ENDTEST

TEST_9:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
ENDTEST

TEST_10:
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 82 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_9:\"
[?25l[?1c3 more linesa
%
c
%


TEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
N,,NX
N,,NY
N,,NZ


TEST_9:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put ='xxx'
[?25l[?1c
xxx[?25h[?0c[?25l[?1c
:[?25h[?0cs/x/X/gc
[?25l[?1cx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cXx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cXx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cx[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_10:
[?25l[?1csearch hit BOTTOM, continuing at TOPTEST_9:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
ENDTEST

TEST_10:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_10:\"
:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 584 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_10:\"
[?25l[?1c3 more linesTEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
N,,NX
N,,NY
N,,NZ


TEST_9:
XXx


TEST_10:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('123', '\zs', 'a', 'g')             | $put =y
[?25l[?1c
a1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\zs.', 'a', 'g')            | $put =y
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '.\zs', 'a', 'g')            | $put =y
[?25l[?1c
1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\ze', 'a', 'g')             | $put =y
[?25l[?1c
a1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\ze.', 'a', 'g')            | $put =y
[?25l[?1c
a1a2a3[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '.\ze', 'a', 'g')            | $put =y
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '1\|\ze', 'a', 'g')          | $put =y
[?25l[?1c
aa2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
[?25l[?1c
1aaa[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_11
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST

TEST_11:

STARTTEST
:/^Results/,$wq! test.out
ENDTEST

Results of test72:


TEST_1:
AA
&
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 26 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 131 lines, 617 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test80 = test61; then \
#	  if diff test.out test80.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test80.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test80.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test82.failed test.ok test.out X* viminfo
cp test82.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test82.in
[?25h[?8c[?25h[?0c[?25l[?1c"test82.in" 103 lines, 3166 charactersTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
Also test "g~ap".

STARTTEST
:so small.vim
:if !has("multi_byte")
: e! test.ok
: w! test.out
: qa!
:endif
:set enc=utf8
ggdG:
:
:function! Ch(a, op, b, expected)
:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 97 lines, 3055 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:call append(0, printf('%d checks passed', b:passed))
:"
:" test that g~ap changes one paragraph only.
:new
iabcd

defg^[gg0g~ap:let lns = getline(1,3)
:q!
:call append(line('$'), lns)
:"
:wq! test.out
ENDTEST

~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("multi_byte")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor[?25h[?0c[?25l[?1c


:[?25h[?0cset enc=utf8
[?25l[?1c:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:call append(0, printf('%d checks passed', b:passed))
:"
:" test that g~ap changes one paragraph only.
:new
iabcd

defg^[gg0g~ap:let lns = getline(1,3)
:q!
:call append(line('$'), lns)
:"
:wq! test.out
ENDTEST

~                                                                               ~                                                                               [?25h[?0c[?25l[?1cTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
Also test "g~ap".

STARTTEST
:so small.vim
:if !has("multi_byte")
: e! test.ok
: w! test.out
: qa!
:endif
:set enc=utf8
ggdG:
:
:function! Ch(a, op, b, expected)
:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Ch(a, op, b, expected)
[?25l[?1c
:  [?25h[?0c:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected

[?25l[?1c:    [?25h[?0c:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a

:op, a:b, a:expected))

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    let b:passed += 1

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Chk(a, b, result)
[?25l[?1c
:  [?25h[?0c:  if a:result == 0

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 0)

[?25l[?1c:    [?25h[?0c:  elseif a:result > 0

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 1)

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 0)

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Check(a, b, result)
[?25l[?1c
:  [?25h[?0c:  call Chk(a:a, a:b, a:result)

[?25l[?1c:  [?25h[?0c:  call Chk(a:b, a:a, -a:result)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! LT(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, -1)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! GT(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, 1)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! EQ(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, 0)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:passed=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('', '')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('', 'a')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('abc', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('Abc', 'abC')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('ab', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('AB', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('ab', 'aBc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xb9\xd0\xa6\

xd0\xa3\xd0\xba\xd0\x95\xd0\xbd')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xaf\xd1\x86\

xd1\x83\xd0\xba\xd0\xb5\xd0\xbd')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa', 'k')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xe2\x84\xaa', 'kkkkkk')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\x

aakk\xe2\x84\xa6')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('Abc\x80', 'AbC\x80')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('Abc\x80', 'AbC\x81')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('Abc', 'AbC\x80')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('abc\x80DEF', 'abc\x80def')  " case folding stops at the first bad cha

racter
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xc3XYZ', '\xc3xyz')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xef\xbc\xba', '\xef\xbd\x9a')  " FF3A (upper), FF5A (lower)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall GT('\xef\xbc\xba', '\xef\xbc\xff')  " first string is ok and equals \xef\

xbd\x9a after folding, second string is illegal and was left unchanged, then the

strings were bytewise compared
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xc3', '\xc3\x83')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.

2X', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, printf('%d checks passed', b:passed))
[?25l[?1c3732 checks passed[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test that g~ap changes one paragraph only.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               [No Name]                                                                       3732 checks passedtest82.in [+]                                                                   [?25h[?0c[?25l[?1cabcddefg[+][?25h[?0c[?25l[?1cABCD
[?25h[?0c[?25l[?1c:[?25h[?0clet lns = getline(1,3)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c3732 checks passed

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), lns)
[?25l[?1cABCDdefg[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 5 lines, 31 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test82 = test61; then \
#	  if diff test.out test82.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test82.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test82.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test84.failed test.ok test.out X* viminfo
cp test84.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test84.in
[?25h[?8c[?25h[?0c[?25l[?1c"test84.in" 35 lines, 786 charactersTests for curswant not changing when setting an option

STARTTEST
:so small.vim
:/^start target options$/+1,/^end target options$/-1 yank
:let target_option_names = split(@0)
:function TestCurswant(option_name)
:  normal! ggf8j
:  let curswant_before = winsaveview().curswant
:  execute 'let' '&'.a:option_name '=' '&'.a:option_name
:  let curswant_after = winsaveview().curswant
:  return [a:option_name, curswant_before, curswant_after]
:endfunction
:
:new
:put =['1234567890', '12345']
:1 delete _
:let result = []
:for option_name in target_option_names
:  call add(result, TestCurswant(option_name))
:endfor
:
:new[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for curswant not changing when setting an option[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 637 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _
:write test.out
:
:qall!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start target options$/+1,/^end target options$/-1 yank
[?25l[?1c3 lines yanked[?25h[?0c[?25l[?1c:[?25h[?0clet target_option_names = split(@0)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction TestCurswant(option_name)
[?25l[?1c
:  [?25h[?0c:  normal! ggf8j

[?25l[?1c:  [?25h[?0c:  let curswant_before = winsaveview().curswant

[?25l[?1c:  [?25h[?0c:  execute 'let' '&'.a:option_name '=' '&'.a:option_name

[?25l[?1c:  [?25h[?0c:  let curswant_after = winsaveview().curswant

[?25l[?1c:  [?25h[?0c:  return [a:option_name, curswant_before, curswant_after]

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:  normal! ggf8j
:  let curswant_before = winsaveview().curswant
:  execute 'let' '&'.a:option_name '=' '&'.a:option_name
:  let curswant_after = winsaveview().curswant
:  return [a:option_name, curswant_before, curswant_after]
:endfunction[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       endfornew
:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _write test.outqall!
ENDTESTtest84.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cput =['1234567890', '12345']
[?25l[?1c123456789012345[+][?25h[?0c[?25l[?1c:[?25h[?0c1 delete _
[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet result = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor option_name in target_option_names
[?25l[?1c
:  [?25h[?0c:  call add(result, TestCurswant(option_name))

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c1234567890
12345[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1234567890
12345
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   :1 delete _
:write test.out
:
:qall!
ENDTEST

test84.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cput =map(copy(result), 'join(v:val, '' '')')
[?25l[?1c3 more linestabstop 7 4timeoutlen 7 7ttimeoutlen 7 7[+][?25h[?0c[?25l[?1c:[?25h[?0c1 delete _
[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cwrite test.out
[?25l[?1c"test.out" [New File] 3 lines, 43 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqall!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test84 = test61; then \
#	  if diff test.out test84.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test84.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test84.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test88.failed test.ok test.out X* viminfo
cp test88.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test88.in
[?25h[?8c[?25h[?0c[?25l[?1c"test88.in" 99 lines, 1449 charactersvim: set ft=vim

Tests for correct display (cursor column position) with +conceal and
tabulators.

STARTTEST
:so small.vim
:if !has('conceal')
   e! test.ok
   wq! test.out
:endif
:" Conceal settings.
:set conceallevel=2
:set concealcursor=nc
:syntax match test /|/ conceal
:" Save current cursor position. Only works in <expr> mode, can't be used
:" with :normal because it moves the cursor to the command line. Thanks to ZyX
:" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
:let positions = []
:nnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
:" Start test.
/^start:
:normal ztj[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cvim: set ft=vim[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 82 lines, 1216 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:normal W
GGk
:normal W
GGk
:normal W
GGk
:normal $
GGk
:" Display result.
:call append('$', 'end:')
:call append('$', positions)
:/^end/,$wq! test.out
ENDTEST

start:
.concealed.     text
|concealed|     text.concealed.     text|concealed|     text

.a.     .b.     .c.     .d.
|a|     |b|     |c|     |d|[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('conceal')
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:normal W
GGk
:normal W[?25h[?0c[?25l[?1c:[?25h[?0c" Conceal settings.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset conceallevel=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset concealcursor=nc
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyntax match test /|/ conceal
[?25l[?1cconcealed  concealed  


a       b       c       d[?25h[?0c[?25l[?1c:[?25h[?0c" Save current cursor position. Only works in <expr> mode, can't be used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" with :normal because it moves the cursor to the command line. Thanks to ZyX
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet positions = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Start test.
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ztj
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:let positions += ['2:1']
[?25h[?0c[?25l[?1c:[?25h[?0c" We should end up in the same column when running these commands on the two
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" lines.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['2:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['2:20']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:20']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:8']
[?25h[?0c[?25l[?1c:[?25h[?0c" Same for next test block.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:28']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:8']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:28']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:1']
[?25h[?0c[?25l[?1c:[?25h[?0c" And check W with multiple tabs and conceals in a line.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:27']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0cset lbr
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0cset list listchars=tab:>-
[?25l[?1c>------

>------->----
>------->------>----.b.>----.c.>----
a>------b>------c>------[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0c" Display result.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', 'end:')
[?25l[?1cend:[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', positions)
[?25l[?1c2:12:172:203:13:173:205:85:255:286:86:256:288:1[?25h[?0c[?25l[?1c:[?25h[?0c/^end/,$wq! test.out
[?25l[?1c"test.out" [New File] 29 lines, 135 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test88 = test61; then \
#	  if diff test.out test88.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test88.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test88.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test90.failed test.ok test.out X* viminfo
cp test90.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test90.in
[?25h[?8c[?25h[?0c[?25l[?1c"test90.in" 53 lines, 1204 charactersTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :

STARTTEST
:so small.vim
:if !has('cryptv') || !exists('*sha256')
   e! test.ok
   wq! test.out
:endif
:"
:let testcase='test for empty string: '
:if sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for 1 char: '
:if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb'
: let res='ok'
:else[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1114 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for contains non-ascii char: '
:if sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:/^start:/,$wq! test.out
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('cryptv') || !exists('*sha256')
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for empty string: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b785

2b855'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'[?25h[?0c[?25l[?1c

:[?25h[?0c$put =testcase.res
[?25l[?1c
test for empty string: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for 1 char: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785af

ee48bb'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1c
test for 1 char: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for 3 chars: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("abc") ==# 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61

f20015ad'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'
:else[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1ctest for 3 chars: ok
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for contains meta char: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8c

c39ed110ca776'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c: let res='ok'
:else
: let res='ng'
:endif[?25h[?0c[?25l[?1c

:[?25h[?0c$put =testcase.res
[?25l[?1ctest for contains meta char: ok[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for contains non-ascii char: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb

0b8d27db8d5feaa813953'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c: let res='ok'
:else
: let res='ng'
:endif[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1c
test for contains non-ascii char: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 6 lines, 143 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test90 = test61; then \
#	  if diff test.out test90.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test90.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test90.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test91.failed test.ok test.out X* viminfo
cp test91.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test91.in
[?25h[?8c[?25h[?0c[?25l[?1c"test91.in" 116 lines, 3240 charactersTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().
vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"
:" Use strings to test for memory leaks.
:" First, check that in an empty window, gettabvar() returns the correct value
:let t:testvar='abcd'
:$put =string(gettabvar(1,'testvar'))
:$put =string(gettabvar(1,'testvar'))
:" Test for getbufvar()
:let b:var_num = '1234'
:let def_num = '5678'
:$put =string(getbufvar(1, 'var_num'))
:$put =string(getbufvar(1, 'var_num', def_num))
:$put =string(getbufvar(1, ''))
:$put =string(getbufvar(1, '', def_num))
:unlet b:var_num
:$put =string(getbufvar(1, 'var_num', def_num))
:$put =string(getbufvar(1, ''))
:$put =string(getbufvar(1, '', def_num))[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 109 lines, 3127 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:tabnext
:3wincmd w
:unlet w:var_dict
:tabrewind
:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:$put =string(gettabwinvar(2, 9, ''))
:$put =string(gettabwinvar(2, 9, '', def_dict))
:$put =string(gettabwinvar(9, 3, ''))
:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict
:$put =string(gettabwinvar(2, 3, '&nux'))
:$put =string(gettabwinvar(2, 3, '&nux', 1))
:tabonly
:"
:/^start/,$wq! test.out
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Use strings to test for memory leaks.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" First, check that in an empty window, gettabvar() returns the correct value
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet t:testvar='abcd'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(gettabvar(1,'testvar'))
[?25l[?1c
'abcd'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(1,'testvar'))
[?25l[?1c
'abcd'[?25h[?0c[?25l[?1c
:[?25h[?0c" Test for getbufvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:var_num = '1234'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_num = '5678'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, 'var_num'))
[?25l[?1c
'1234'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, 'var_num', def_num))
[?25l[?1c
'1234'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, ''))
[?25l[?1c
{'var_num': '1234'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '', def_num))
[?25l[?1c
{'var_num': '1234'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet b:var_num
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, 'var_num', def_num))
[?25l[?1c
'5678'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '', def_num))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(9, '', def_num))
[?25l[?1c
'5678'[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_num
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, '&autoindent'))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '&autoindent', 1))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open new window with forced option values
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew ++ff=dos ++bin ++enc=iso-8859-2
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       {'var_num': '1234'}

'5678'{}''
'5678'
0test91.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0clet otherff = getbufvar(bufnr('%'), '&fileformat')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet otherbin = getbufvar(bufnr('%'), '&bin')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet otherfenc = getbufvar(bufnr('%'), '&fenc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict:$put =string(gettabwinvar(2, 3, '&nux')):$put =string(gettabwinvar(2, 3, '&nux', 1)):tabonly:":/^start/,$wq! test.outENDTESTstart:'abcd''abcd''1234'{'var_num': '1234'}
'5678'

{}
'''5678'

0[?25h[?0c[?25l[?1c:[?25h[?0c$put =otherff
[?25l[?1c
dos[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(otherbin)
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =otherfenc
[?25l[?1c
iso-8859-2[?25h[?0c[?25l[?1c
:[?25h[?0cunlet otherff otherbin otherfenc
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for getwinvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet w:var_str = "Dance"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_str = "Chance"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getwinvar(1, 'var_str'))
[?25l[?1c
'Dance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, 'var_str', def_str))
[?25l[?1c
'Dance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, ''))
[?25l[?1c
{'var_str': 'Dance'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '', def_str))
[?25l[?1c
{'var_str': 'Dance'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet w:var_str
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getwinvar(1, 'var_str', def_str))
[?25l[?1c
'Chance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '', def_str))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(9, '', def_str))
[?25l[?1c
'Chance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '&nu'))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '&nu',  1))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_str
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for gettabvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet t:var_list = [1, 2, 3]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet t:other = 777
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_list = [4, 5, 6, 7]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X{'var_num': '1234'}
'5678'
{}
{}
''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list'))
[?25l[?1c
[1, 2, 3][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list', def_list))
[?25l[?1c
[1, 2, 3][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, ''))
[?25l[?1c
{'var_list': [1, 2, 3], 'other': 777}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '', def_list))
[?25l[?1c
{'var_list': [1, 2, 3], 'other': 777}[?25h[?0c[?25l[?1c
:[?25h[?0ctablast
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cunlet t:var_list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(9, '', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '&nu'))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '&nu', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabonly
[?25l[?1cdos[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for gettabwinvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabprev
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c2 [No Name]  [No Name]  X[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c + test91.in  3 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0cvert split
[?25l[?1c4 X||||||~~~~~[No Name]                              [?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name]                                [No Name]                               X[?25h[?0c[?25l[?1c:[?25h[?0clet w:var_dict = {'dict': 'tabwin'}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_dict = {'dict2': 'newval'}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd b
[?25l[?1c[No Name]                              [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[4, 5, 6, 7]
''
[4, 5, 6, 7]
''
[4, 5, 6, 7]
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict'))
[?25l[?1c
{'dict': 'tabwin'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l[?1c
{'dict': 'tabwin'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, ''))
[?25l[?1c
{'var_dict': {'dict': 'tabwin'}}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l[?1c
{'var_dict': {'dict': 'tabwin'}}[?25h[?0c[?25l[?1c
:[?25h[?0ctabnext
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ||||||~                                       
~                                       
~                                       
~                                       
~                                       
[No Name]                                ~                                      ~                                      ~                                      ~                                      ~                                      [No Name]                              ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1c[No Name]                              [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0cunlet w:var_dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[4, 5, 6, 7]
''
[4, 5, 6, 7]
''
[4, 5, 6, 7]
{'dict': 'tabwin'}
{'dict': 'tabwin'}
{'var_dict': {'dict': 'tabwin'}}
{'var_dict': {'dict': 'tabwin'}}
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 9, '', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(9, 3, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(9, 3, '', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(gettabwinvar(2, 3, '&nux'))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '&nux', 1))
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0ctabonly
[?25l[?1c0[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 50 lines, 530 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test91 = test61; then \
#	  if diff test.out test91.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test91.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test91.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test94.failed test.ok test.out X* viminfo
cp test94.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test94.in
[?25h[?8c[?25h[?0c[?25l[?1c"test94.in" 256 lines, 4824 charactersTest for Visual mode and operators

Tests for the two kinds of operations: Those executed with Visual mode
followed by an operator and those executed via Operator-pending mode. Also
part of the test are mappings, counts, and repetition with the . command.

Test cases:
- Visual modes (v V CTRL-V) followed by an operator; count; repeating
- Visual mode maps; count; repeating
  - Simple
  - With an Ex command (custom text object)
- Operator-pending mode maps
  - Simple
  - With Ex command moving the cursor
  - With Ex command and Visual selection (custom text object)
- Patch 7.3.879: Properly abort Ex command in Operator-pending mode

STARTTEST
:so small.vim
:set enc=utf-8 nocp viminfo+=nviminfo
:
:" User functions
:function MoveToCap()[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Visual mode and operators[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 211 lines, 3837 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTkv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '
:set selection=exclusive
0v3l^[gvcxxx^[
:$put ='---'
:/^start:/+2,$w! test.out
:q!
ENDTEST

start:

apple banana cherry

line 1 line 1
line 2 line 2
line 3 line 3
line 4 line 4
line 5 line 5
line 6 line 6[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf-8 nocp viminfo+=nviminfo
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '
:set selection=exclusive
0v3l^[gvcxxx^[
:$put ='---'
:/^start:/+2,$w! test.out
:q!
ENDTEST

start:

apple banana cherry

line 1 line 1
line 2 line 2
line 3 line 3
line 4 line 4
line 5 line 5
line 6 line 6[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" User functions
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction MoveToCap()
[?25l[?1c
:  [?25h[?0c:  call search('\u', 'W')

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'[?25h[?0c[?25l[?1c:[?25h[?0cfunction SelectInCaps()
[?25l[?1c
:  [?25h[?0c:  let [line1, col1] = searchpos('\u', 'bcnW')

[?25l[?1c:  [?25h[?0c:  let [line2, col2] = searchpos('.\u', 'nW')

[?25l[?1c:  [?25h[?0c:  call setpos("'<", [0, line1, col1, 0])

[?25l[?1c:  [?25h[?0c:  call setpos("'>", [0, line2, col2, 0])

[?25l[?1c:  [?25h[?0c:  normal! gv

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual modes followed by operator
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^apple
[?25l[?1c[?25h[?0ca[?25l[?1c-- VISUAL --[?25h[?0c[?25l[?1cp[?25h[?0c[?25l[?1cle banana cherry[?25h[?0c[?25l[?1c banana cherry[?25h[?0c [?25l[?1cbanan-- VISUAL --[?25h[?0c[?25l[?1c
a  cherry[?25h[?0c[?25l[?1cy[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^line 1
[?25l[?1c[?25h[?0c[?25l[?1cline 1 line 1 -- VISUAL LINE --[?25h[?0c[?25l[?1cINSERT --newline[?25h[?0c[?25l[?1c-- INSERT --newline[?25h[?0c[?25l[?1c
line 3 line 3 
line 4 line 4 


-- VISUAL LINE --[?25h[?0c[?25l[?1cline 5 line 5line 6 line 6xxxxxxxxxxxxx[?25h[?0c[?25l[?1cxxxxxxxxxxxxx
xxxxxxxxxxxxx[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^xxxx
[?25l[?1c[?25h[?0c[?25l[?1c


-- VISUAL BLOCK --[?25h[?0c[?25l[?1cx
[?25h[?0c[?25l[?1cx
x[?25h[?0c[?25l[?1cINSERT --  
  [?25h[?0c [?25l[?1c


-- INSERT --  
    [?25h[?0c [?25l[?1c
xxxx
    xxxx
xxxxxxxx
xxxxxxxxxxxxx
-- VISUAL BLOCK --[?25h[?0c[?25l[?1c
-- INSERT ------
    ----
xxxx----
xxxx----[?25h[?0c-[?25l[?1c-- INSERT ------------------[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual mode maps (movement and text object)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap W /\u/s-1<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Kiwi
[?25l[?1cKiwiRaspberryDateWatermelonPeach[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c/\u/s-1
Kiw[?25h[?0c[?25l[?1c
-- INSERT --NoRaspberryDateWatermelonPeach[?25h[?0co[?25l[?1c
-- INSERT --NoberryDateWatermelonPeach[?25h[?0coberry[?25l[?1cDateWat
-- VISUAL --[?25h[?0c[?25l[?1crmelonPeach[?25h[?0c[?25l[?1cach[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Jambu
[?25l[?1c
JambuRambutanBananaTangerineMango[?25h[?0cJa[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c:'<,'>call SelectInCaps()
Jamb[?25h[?0c[?25l[?1c
-- INSERT ---RambutanBananaTangerineMango[?25h[?0c-[?25l[?1c
-- INSERT ---tanBananaTangerineMango[?25h[?0c-[?25l[?1ctanBanana
-- VISUAL --[?25h[?0c[?25l[?1c
--angerineMango[?25h[?0ca[?25l[?1cgo[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Operator-pending mode maps (movement and text object)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap W /\u/<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap <Leader>W :<C-U>call MoveToCap()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Pineapple
[?25l[?1cPineappleQuinceLoganberryOrangeGrapefruitKiwiZ[?25h[?0c[?25l[?1c
/\u/
-QuinceLoganberryOrangeGrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---LoganberryOrangeGrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---GrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---Z[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Juniper
[?25l[?1c
JuniperDurianZ[?25h[?0c[?25l[?1c
:call MoveToCap()
Whavcre
[?25h[?0c[?25l[?1c:call MoveToCap()
Qhevna[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Lemon
[?25l[?1c
LemonNectarineZ[?25h[?0c[?25l[?1c
:call SelectInCaps()
[?25h[?0c[?25l[?1cLemonLemonNectarineZ
Lemo[?25h[?0cn[?25l[?1c:call SelectInCaps()
NewNectarineZ[?25h[?0cwNecta[?25l[?1c
:call SelectInCaps()
wZ[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^zzzz
[?25l[?1czzzz[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noma | let v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1cE21: Cannot make changes, 'modifiable' is off[?25h[?0c[?25l[?1c:[?25h[?0cset ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed'
[?25l[?1c
ok[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset noma | let v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok'
[?25l[?1c
ok[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: replace last line'
[?25l[?1c
characterwise visual mode: replace last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0clet @" = 'x'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v:errmsg='.v:errmsg
[?25l[?1c
v:errmsg=[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete middle line'
[?25l[?1c
characterwise visual mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- VISUAL --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cb
c
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete middle two line'
[?25l[?1c
characterwise visual mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- VISUAL --[?25h[?0c[?25l[?1ca 
[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='characterwise visual mode: delete last line'
[?25l[?1c
characterwise visual mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete last two line'
[?25l[?1c
characterwise visual mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1cb 
[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Select mode maps
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>End> <End>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>Down> <Down>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>Del> <Del>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete middle line'
[?25l[?1c
characterwise select mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- SELECT --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cb
c
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete middle two line'
[?25l[?1c
characterwise select mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- SELECT --[?25h[?0c[?25l[?1ca 
[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='characterwise select mode: delete last line'
[?25l[?1c
characterwise select mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c
-- SELECT --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete last two line'
[?25l[?1c
characterwise select mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c

-- SELECT --[?25h[?0c[?25l[?1cb 
[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete middle line'
[?25l[?1c
linewise select mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1ca 


-- SELECT LINE --[?25h[?0c[?25l[?1cbc
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete middle two line'
[?25l[?1c
linewise select mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1ca 


-- SELECT LINE --[?25h[?0c[?25l[?1ca
b 
[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='linewise select mode: delete last line'
[?25l[?1c
linewise select mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1cc 
-- SELECT LINE --[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete last two line'
[?25l[?1c
linewise select mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1cb 

-- SELECT LINE --[?25h[?0c[?25l[?1cb
c 
[?25h[?0c[?25l[?1c~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='v_p: replace last character with line register at middle line'
[?25l[?1c
v_p: replace last character with line register at middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0cbb[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1cccc
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at middle line selecting

newline'
[?25l[?1clinewise select mode: delete middle two line
c---linewise select mode: delete last line
ab
---linewise select mode: delete last two line
a---v_p: replace last character with line register at middle line
aaabbaaaccc
---v_p: replace last character with line register at middle line selecting newline[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0cbb[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1c
ccc
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at last line'
[?25l[?1c
v_p: replace last character with line register at last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0ccc[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at last line selecting n

ewline'
[?25l[?1caaa
bbaaaccc
---v_p: replace last character with line register at middle line selecting newline
aaabbaaa
ccc
---v_p: replace last character with line register at last line
aaabbb
ccaaa---v_p: replace last character with line register at last line selecting newline[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0ccc[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='gv in exclusive select mode after operation'
[?25l[?1c
gv in exclusive select mode after operation[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='zzz '
[?25l[?1c
zzz[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='äà '
[?25l[?1c
äÃ[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1czzz[?25h[?0c[?25l[?1c
zzz[?25h[?0c
[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cäÃ[?25h[?0c[?25l[?1c
zzz[?25h[?0c[?25l[?1c
-- VISUAL --zzz[?25h[?0c[?25l[?1cINSERTxxx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='gv in exclusive select mode without operation'
[?25l[?1c
gv in exclusive select mode without operation[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='zzz '
[?25l[?1c
zzz[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1czzz[?25h[?0c[?25l[?1c
zzz[?25h[?0c[?25l[?1c
-- VISUAL --zzz[?25h[?0c[?25l[?1cINSERTxxx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c/^start:/+2,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 123L, 1328C written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test94 = test61; then \
#	  if diff test.out test94.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test94.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test94.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test95.failed test.ok test.out X* viminfo
cp test95.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test95.in
[?25h[?8c[?25h[?0c[?25l[?1c"test95.in" 141 lines, 5827 charactersTest for regexp patterns with multi-byte support, using utf-8.
See test64 for the non-multi-byte tests.

A pattern that gives the expected result produces OK, so that we know it was
actually tried.

STARTTEST
:so small.vim
:so mbyte.vim
:set nocp encoding=utf-8 viminfo+=nviminfo nomore
:" tl is a List of Lists with:
:"    2: test auto/old/new  0: test auto/old  1: test auto/new
:"    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 = []
:
:"""" Multi-byte character tests. These will fail unless vim is compiled
:"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for regexp patterns with multi-byte support, using utf-8.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 131 lines, 5590 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:endif
:      endfor
:      unlet i
:    endif
:  endfor
:endfor
:unlet t tl e l
:
:" check that 'ambiwidth' does not change the meaning of \p
:set regexpengine=1 ambiwidth=single
:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=1 ambiwidth=double
:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=single
:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=double
:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
:
:/\%#=1^Results/,$wq! test.out
ENDTEST

Results of test95:
~                                                                               [?25h[?0c
[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp encoding=utf-8 viminfo+=nviminfo nomore
[?25l[?1c:endif
:      endfor
:      unlet i
:    endif
:  endfor
:endfor
:unlet t tl e l
:
:" check that 'ambiwidth' does not change the meaning of \p
:set regexpengine=1 ambiwidth=single
:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=1 ambiwidth=double
:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=single
:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=double
:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
:
:/\%#=1^Results/,$wq! test.out
ENDTEST

Results of test95:
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c" tl is a List of Lists with:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    2: test auto/old/new  0: test auto/old  1: test auto/new
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp pattern
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    text to test the pattern on
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected match (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 1 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 2 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    etc.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  When there is no match use only the first two items.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Multi-byte character tests. These will fail unless vim is compiled
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[=a=]]\+', 'ddaãâbcd', 'aãâ'])^I^I^I^I^I^I^I^I" equivalence

classes
[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0ccall add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oij

asoifjos'])
[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0ccall add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna']

)[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" this is not a normal "i" but 0xec
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p\+', 'ìa', 'ìa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p*', 'aあ', 'aあ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test recognition of some character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\i\+', '&*¨xx ', 'xx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\f\+', '&*<9f>fname ', 'fname'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test composing character matching
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.ม', 'xมม่x yมy', 'yม'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.มม่', 'xมม่x yมy', 'xมม่'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\u05b9\u05bb", " y\u05b9 x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9\u05bb", " y\u05bb x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "a", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ca", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "a\u0300", "ca\u0300t", "a\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\%C', "ca\u0300t", "a\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ca\%C', "ca\u0300t", "ca\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ca\%Ct', "ca\u0300t", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test \Z
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ú\Z', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'יהוה\Z', 'יהוה', 'יהוה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְהווָה\Z', 'יהוה', 'יהוה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'יהוה\Z', 'ייְהווָה', 'ייְהווָה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְהווָה\Z', 'ייְהווָה', 'ייְהווָה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְ\Z', 'ווְייַ', 'ייַ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200dxy", "ק\u200dx"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200dx\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200dx\\Z", "xק\u200dxy", "ק\u200dx"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\\Z", "xyz"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\\Z\u05b9", "xyz"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\\Z", "xy\u05b9z", "y\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\\Z\u05b9", "xy\u05b9z", "y\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\u05b9\\+\\Z", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\\Z\u05b9\\+", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Combining different tests and features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^[=a=]]\+', 'ddaãâbcd', 'dd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let text = t[2]

[?25l[?1c:  [?25h[?0c:  let matchidx = 3

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    try

[?25l[?1c:      [?25h[?0c:      let l = matchlist(text, pat)

[?25l[?1c:      [?25h[?0c:    catch

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l[?1c:      [?25h[?0c:    endtry

[?25l[?1c:    [?25h[?0c:" check the match itself

[?25l[?1c:    [?25h[?0c:    if len(l) == 0 && len(t) > matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    elseif len(l) > 0 && len(t) == matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l[?1c:      [?25h[?0c:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if len(l) > 0

[?25l[?1c:      [?25h[?0c:"   check all the nine submatches

[?25l[?1c:      [?25h[?0c:      for i in range(1, 9)

[?25l[?1c:[?25h[?0c:        if len(t) <= matchidx + i

[?25l[?1c:[?25h[?0c:          let e = ''

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          let e = t[matchidx + i]

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:        if l[i] != e

[?25l[?1c:[?25h[?0c:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:      endfor

[?25l[?1c:      [?25h[?0c:      unlet i

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl e l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" check that 'ambiwidth' does not change the meaning of \p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset regexpengine=1 ambiwidth=single
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 1 ambi single: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=1 ambiwidth=double
[?25l[?1cOK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 1 ambi double: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=2 ambiwidth=single
[?25l[?1cOK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
eng 1 ambi double: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 2 ambi single: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=2 ambiwidth=double
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
eng 1 ambi double: 0
eng 2 ambi single: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 2 ambi double: 0[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/\%#=1^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 140L, 2022C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test95 = test61; then \
#	  if diff test.out test95.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test95.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test95.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test98.failed test.ok test.out X* viminfo
cp test98.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test98.in
[?25h[?8c[?25h[?0c[?25l[?1c"test98.in" 43 lines, 908 charactersTest for 'scrollbind' causing an unexpected scroll of one of the windows.
STARTTEST
:so small.vim
:" We don't want the status line to cause problems:
:set laststatus=0
:let g:totalLines = &lines * 20
:let middle = g:totalLines / 2
:wincmd n
:wincmd o
:for i in range(1, g:totalLines)
:    call setline(i, 'LINE ' . i)
:endfor
:exe string(middle)
:normal zt
:normal M
:aboveleft vert new
:for i in range(1, g:totalLines)
:    call setline(i, 'line ' . i)
:endfor
:exe string(middle)
:normal zt
:normal M
:" Execute the following two command at once to reproduce the problem.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'scrollbind' causing an unexpected scroll of one of the windows.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 791 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:setl scb | wincmd p
:setl scb
:wincmd w
:let topLineLeft = line('w0')
:wincmd p
:let topLineRight = line('w0')
:setl noscrollbind
:wincmd p
:setl noscrollbind
:q!
:%del _
:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight))
:w! test.out
:brewind
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" We don't want the status line to cause problems:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset laststatus=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:totalLines = &lines * 20
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet middle = g:totalLines / 2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd n
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cwincmd o
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(1, g:totalLines)
[?25l[?1c
:  [?25h[?0c:    call setline(i, 'LINE ' . i)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cLINE 1
LINE 2
LINE 3LINE 4LINE 5LINE 6LINE 7LINE 8LINE 9LINE 10LINE 11LINE 12LINE 13LINE 14LINE 15LINE 16LINE 17LINE 18LINE 19LINE 20LINE 21LINE 22LINE 23[?25h[?0c[?25l[?1c:[?25h[?0cexe string(middle)
[?25l[?1cLINE 229
LINE 230
LINE 231
LINE 232
LINE 233
LINE 234
LINE 235
LINE 236
LINE 237
LINE 238
LINE 239
LINE 240
LINE 241
LINE 242
LINE 243
LINE 244
LINE 245
LINE 246
LINE 247
LINE 248
LINE 249
LINE 250
LINE 251[?25h[?0c[?25l[?1c:[?25h[?0cnormal zt
[?25l[?1cLINE 252
LINE 253
LINE 254
LINE 255
LINE 256
LINE 257
LINE 258
LINE 259
LINE 260
LINE 261
LINE 262[?25h[?0c[?25l[?1c:[?25h[?0cnormal M
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caboveleft vert new
[?25l[?1c        |||||||||||||||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       LINE 240LINE 241LINE 242LINE 243LINE 244LINE 245LINE 246LINE 247LINE 248LINE 249LINE 250LINE 251LINE 252LINE 253LINE 254LINE 255LINE 256LINE 257LINE 258LINE 259LINE 260LINE 261LINE 262[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(1, g:totalLines)
[?25l[?1c
:  [?25h[?0c:    call setline(i, 'line ' . i)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cline 1|
line 2|
line 3                                  
line 4                                  
line 5                                  
line 6                                  
line 7                                  
line 8                                  
line 9                                  
line 10                                 
line 11                                 
line 12                                 
line 13                                 
line 14                                 
line 15                                 
line 16                                 
line 17                                 
line 18                                 
line 19                                 
line 20                                 
line 21                                 
line 22                                 
line 23                                 LINE 240LINE 241[?25h[?0c[?25l[?1c:[?25h[?0cexe string(middle)
[?25l[?1c2293023123223323423523623723823924024124224324424524624748495051[?25h[?0c[?25l[?1c:[?25h[?0cnormal zt
[?25l[?1cline 240                                
line 241                                
line 242                                
line 243                                
line 244                                
line 245                                
line 246                                
line 247                                
line 248                                
line 249                                
line 250                                
line 251                                
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        line 252
line 253
line 254
line 255
line 256
line 257
line 258
line 259
line 260
line 261
line 262[?25h[?0c[?25l[?1c:[?25h[?0cnormal M
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Execute the following two command at once to reproduce the problem.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl scb | wincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl scb
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet topLineLeft = line('w0')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet topLineRight = line('w0')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1cLINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINE[?25h[?0c[?25l[?1c:[?25h[?0c%del _
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, 'Difference between the top lines (left - right): ' . string(t

opLineLeft - topLineRight))
[?25l[?1cDifference between the top lines (left - right): 0[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 51 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test98.in" 43 lines, 908 characters:normal M:" Execute the following two command at once to reproduce the problem.:setl scb | wincmd p:setl scb:wincmd w:let topLineLeft = line('w0'):wincmd p:let topLineRight = line('w0'):setl noscrollbind:wincmd p:setl noscrollbind:q!:%del _:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight)):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test98 = test61; then \
#	  if diff test.out test98.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test98.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test98.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test99.failed test.ok test.out X* viminfo
cp test99.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test99.in
[?25h[?8c[?25h[?0c[?25l[?1c"test99.in" 69 lines, 1400 charactersTests for regexp with multi-byte encoding and various magic settings.
Test matchstr() with a count and multi-byte chars.
See test44 for exactly the same test with re=1.

STARTTEST
:so mbyte.vim
:set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
:set re=2
/^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
f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with multi-byte encoding and various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 43 lines, 931 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
: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
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
[?25l[?1c:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
: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
:[?25h[?0c" Test \%u, [\u] and friends
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%u20ac
[?25l[?1c
/[?25h[?0c[\u4f7f\u5929]\+
[?25l[?1c
/[?25h[?0c\%U12345678
[?25l[?1c
/[?25h[?0c[\U1234abcd\u1234\uabcd]
[?25l[?1c
/[?25h[?0c\%d21879b
[?25l[?1c
:[?25h[?0c" Test backwards search from a multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cx
[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" l Test what 7.3.192 fixed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^l
[?25l[?1c
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
#@/bin/sh -c "if test -f test.out -a test99 = test61; then \
#	  if diff test.out test99.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test99.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test99.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test103.failed test.ok test.out X* viminfo
cp test103.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test103.in
[?25h[?8c[?25h[?0c[?25l[?1c"test103.in" 37 lines, 823 charactersTest for visual mode not being reset causing E315 error.
STARTTEST
:so small.vim
:enew
:let g:msg="Everything's fine."
:function! TriggerTheProblem()
:" At this point there is no visual selection because :call reset it.
:" Let's restore the selection:
:normal gv
:'<,'>del _
:try
:exe "normal \<Esc>"
:catch /^Vim\%((\a\+)\)\=:E315/
:echom 'Snap! E315 error!'
:let g:msg='Snap! E315 error!'
:endtry
:endfunction
:enew
:setl buftype=nofile
:call append(line('$'), 'Delete this line.')
:"
:"
:" NOTE: this has to be done by a call to a function because executing :del the[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for visual mode not being reset causing E315 error.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 723 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"ex-way will require the colon operator which resets the visual mode thus
:"preventing the problem:
:"
GV:call TriggerTheProblem()
:%del _
:call append(line('$'), g:msg)
:w! test.out
:brewind
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cenew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet g:msg="Everything's fine."
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! TriggerTheProblem()
[?25l[?1c
:  [?25h[?0c:^I" At this point there is no visual selection because :call reset it.

[?25l[?1c:  [?25h[?0c:^I" Let's restore the selection:

[?25l[?1c:  [?25h[?0c:^Inormal gv

[?25l[?1c:  [?25h[?0c:^I'<,'>del _

[?25l[?1c:  [?25h[?0c:^Itry

[?25l[?1c:    [?25h[?0c:^I^Iexe "normal \<Esc>"

[?25l[?1c:    [?25h[?0c:^Icatch /^Vim\%((\a\+)\)\=:E315/

[?25l[?1c:    [?25h[?0c:^I^Iechom 'Snap! E315 error!'

[?25l[?1c:    [?25h[?0c:^I^Ilet g:msg='Snap! E315 error!'

[?25l[?1c:    [?25h[?0c:^Iendtry

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cenew
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl buftype=nofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), 'Delete this line.')
[?25l[?1cDelete this line.[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" NOTE: this has to be done by a call to a function because executing :del the
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"       ex-way will require the colon operator which resets the visual mode th

us[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"       preventing the problem:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c
[?25l[?1cDelete this line. 
[?25h[?0c[?25l[?1c:'<,'>[?25h[?0ccall TriggerTheProblem()
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c%del _
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), g:msg)
[?25l[?1cEverything's fine.[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 2 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test103.in" 37 lines, 823 characters:endtry
:endfunction:enew:setl buftype=nofile:call append(line('$'), 'Delete this line.'):":":" NOTE: this has to be done by a call to a function because executing :del the:"       ex-way will require the colon operator which resets the visual mode thus:"       preventing the problem::"GV:call TriggerTheProblem():%del _:call append(line('$'), g:msg):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test103 = test61; then \
#	  if diff test.out test103.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test103.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test103.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test104.failed test.ok test.out X* viminfo
cp test104.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test104.in
[?25h[?8c[?25h[?0c[?25l[?1c"test104.in" 30 lines, 698 charactersTests for :let.  vim: set ft=vim ts=8 :

STARTTEST
:so small.vim
:set runtimepath+=./sautest
:" Test to not autoload when assigning.  It causes internal error.
:try
:  let Test104#numvar = function('tr')
:  $put ='OK: ' . string(Test104#numvar)
:catch
:  $put ='FAIL: ' . v:exception
:endtry
:let a = 1
:let b = 2
:for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0
== 1 ? "a" : "b"}']
:  try
:    redir => messages
:    execute 'let' letargs
:    redir END
:    $put ='OK:'
:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')
:  catch[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :let.  vim: set ft=vim ts=8 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 24 lines, 618 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:    $put ='FAIL: ' . v:exception
:    redir END
:  endtry
:endfor
:/^Results/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset runtimepath+=./sautest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test to not autoload when assigning.  It causes internal error.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  let Test104#numvar = function('tr')

[?25l[?1c:  [?25h[?0c:  $put ='OK: ' . string(Test104#numvar)

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:  $put ='FAIL: ' . v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c:catch
:  $put ='FAIL: ' . v:exception
:endtry
:let a = 1
:let b = 2
:for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0
== 1 ? "a" : "b"}']
:  try:    redir => messages
:    execute 'let' letargsEND$put ='OK:'$put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')
:  catch'FAIL: ' . v:exception  redir END
:  endtryendfor/^Results/,$wq! test.out
ENDTESTResults of test104:
OK: function('tr')[?25h[?0c[?25l[?1c
:[?25h[?0clet a = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b = 2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0

== 1 ? "a" : "b"}']
[?25l[?1c:  [?25h[?0c:  try

[?25l[?1c:    [?25h[?0c:    redir => messages

[?25l[?1c:    [?25h[?0c:    execute 'let' letargs

[?25l[?1ca#1

b#2

:    [?25h[?0c:    redir END

[?25l[?1c:    [?25h[?0c:    $put ='OK:'

[?25l[?1c:    [?25h[?0c:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')

[?25l[?1c:    [?25h[?0c:  catch

[?25l[?1c:    [?25h[?0c:    $put ='FAIL: ' . v:exception

[?25l[?1c:    [?25h[?0c:    redir END

[?25l[?1c:    [?25h[?0c:  endtry

[?25l[?1c:  [?25h[?0c:endfor

[?25l[?1cb#2

b#2

a#1

a#1

b#2

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 13 lines, 244 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test104 = test61; then \
#	  if diff test.out test104.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test104.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test104.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test107.failed test.ok test.out X* viminfo
cp test107.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test107.in
[?25h[?8c[?25h[?0c[?25l[?1c"test107.in" 38 lines, 717 charactersTests for adjusting window and contents     vim: set ft=vim :

STARTTEST
:so small.vim
:new
:call setline(1, range(1,256))
:let r=[]
:func! GetScreenStr(row)
:   let str = ""
:   for c in range(1,3)
:let str .= nr2char(screenchar(a:row, c))
:   endfor
:   return str
:endfunc
:
:exe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
:
:exe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for adjusting window and contents     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 32 lines, 628 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(r, [line("w0"), s3])
:
:exe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:"/^start:/,$wq! test.out
ENDTESTtest107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, range(1,256))
[?25l[?1c1
234567891011[+][?25h[?0c[?25l[?1c:[?25h[?0clet r=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc! GetScreenStr(row)
[?25l[?1c
:  [?25h[?0c:   let str = ""

[?25l[?1c:  [?25h[?0c:   for c in range(1,3)

[?25l[?1c:    [?25h[?0c:       let str .= nr2char(screenchar(a:row, c))

[?25l[?1c:    [?25h[?0c:   endfor

[?25l[?1c:  [?25h[?0c:   return str

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c1
2
3
4
5
6[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
[?25l[?1c[No Name] [+]                                                                   :let s3=GetScreenStr(1)test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
[?25l[?1c50
51
52
53
54
55
56
57
58
59
[No Name] [+]                                                                   :let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST

test107.in                                                                      [?25h[?0c[?25l[?1c

:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
[?25l[?1c59
60
61
62
63
64
65
66
67
68
[No Name] [+]                                                                   :let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST

test107.in                                                                      [?25h[?0c[?25l[?1c

:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c:wincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipeout!
[?25l[?1c::exe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
::exe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
:exe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
::wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:":/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0c$put=r
[?25l[?1c3 more linesstart:
[1, '1  ']
[50, '50 ']
[59, '59 ']3 more lines[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 4 lines, 42 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test107 = test61; then \
#	  if diff test.out test107.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test107.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test107.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test108.failed test.ok test.out X* viminfo
cp test108.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test108.in
[?25h[?8c[?25h[?0c[?25l[?1c"test108.in" 88 lines, 1329 charactersTests for backtrace debug commands.     vim: set ft=vim :

STARTTEST
:so small.vim
:lang mess C
:function! Foo()
:   let var1 = 1
:   let var2 = Bar(var1) + 9
:   return var2
:endfunction
:
:function! Bar(var)
:    let var1 = 2 + a:var
:    let var2 = Bazz(var1) + 4
:    return var2
:endfunction
:
:function! Bazz(var)
:    let var1 = 3 + a:var
:    let var3 = "another var"
:    return var1
:endfunction
:new[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for backtrace debug commands.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 83 lines, 1251 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTup
b
echo "fil is not frame or finish, it is file"
fil
echo "\n- relative backtrace movement\n"
fr -1
frame
fra +1
fram
echo "\n- go beyond limits does not crash\n"
fr 100
fra
frame -40
fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang mess C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Foo()
[?25l[?1c
:  [?25h[?0c:   let var1 = 1

[?25l[?1c:  [?25h[?0c:   let var2 = Bar(var1) + 9

[?25l[?1c:  [?25h[?0c:   return var2

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Bar(var)
[?25l[?1c
:  [?25h[?0c:    let var1 = 2 + a:var

[?25l[?1c:  [?25h[?0c:    let var2 = Bazz(var1) + 4

[?25l[?1c:  [?25h[?0c:    return var2

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Bazz(var)
[?25l[?1c
:  [?25h[?0c:    let var1 = 3 + a:var

[?25l[?1c:  [?25h[?0c:    let var3 = "another var"

[?25l[?1c:  [?25h[?0c:    return var1

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       echo "\n- final result 19:"
cont:0debuggreedy
:redir END$put =out
:w! test.out
:qa!ENDTESTtest108.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cdebuggreedy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdebug echo Foo()
[?25l[?1cEntering Debug mode.  Type "cont" to continue.

cmd: echo Foo()

>[?25h[?0cstep

[?25l[?1cfunction Foo

line 1: let var1 = 1

>[?25h[?0cstep

[?25l[?1cfunction Foo

line 2: let var2 = Bar(var1) + 9

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 1: let var1 = 2 + a:var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 2: let var2 = Bazz(var1) + 4

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 1: let var1 = 3 + a:var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho "- show backtrace:\n"

[?25l[?1c- show backtrace:

>[?25h[?0cbacktrace

[?25l[?1c  2 function Foo[2]

  1 Bar[2]

->0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho "\nshow variables on different levels:\n"

[?25l[?1c
show variables on different levels:

>[?25h[?0cecho var1

[?25l[?1c6
>[?25h[?0cup

[?25l[?1c>[?25h[?0cback

[?25l[?1c  2 function Foo[2]

->1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho var1

[?25l[?1c3
>[?25h[?0cu

[?25l[?1c>[?25h[?0cbt

[?25l[?1c->2 function Foo[2]

  1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho var1

[?25l[?1c1
>[?25h[?0cecho "\n- undefined vars:\n"

[?25l[?1c
- undefined vars:

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 3: return var1

>[?25h[?0cframe 2

[?25l[?1c>[?25h[?0cecho "undefined var3 on former level:"

[?25l[?1cundefined var3 on former level:

>[?25h[?0cecho var3

[?25l[?1cError detected while processing function Foo[2]..Bar[2]..Bazz:

line    3:

E121: Undefined variable: var3

E15: Invalid expression: var3

>[?25h[?0cfr 0

[?25l[?1c>[?25h[?0cecho "here var3 is defined with \"another var\":"

[?25l[?1chere var3 is defined with "another var":

>[?25h[?0cecho var3

[?25l[?1canother var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 3: End of function

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 3: return var2

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 3: End of function

>[?25h[?0cup

[?25l[?1c>[?25h[?0cecho "\nundefined var2 on former level"

[?25l[?1c
undefined var2 on former level

>[?25h[?0cecho var2

[?25l[?1cError detected while processing function Foo[2]..Bar:

line    3:

E121: Undefined variable: var2

E15: Invalid expression: var2

>[?25h[?0cdown

[?25l[?1c>[?25h[?0cecho "here var2 is defined with 10:"

[?25l[?1chere var2 is defined with 10:

>[?25h[?0cecho var2

[?25l[?1c10

>[?25h[?0cecho "\n- backtrace movements:\n"

[?25l[?1c
- backtrace movements:

>[?25h[?0cb

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cecho "\nnext command cannot go down, we are on bottom\n"

[?25l[?1c
next command cannot go down, we are on bottom

>[?25h[?0cdown

[?25l[?1cframe is zero

>[?25h[?0cup

[?25l[?1c>[?25h[?0cecho "\nnext command cannot go up, we are on top\n"

[?25l[?1c
next command cannot go up, we are on top

>[?25h[?0cup

[?25l[?1cframe at highest level: 1

>[?25h[?0cb

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cecho "fil is not frame or finish, it is file"

[?25l[?1cfil is not frame or finish, it is file

>[?25h[?0cfil

[?25l[?1c"[No Name]" --No lines in buffer--

>[?25h[?0cecho "\n- relative backtrace movement\n"

[?25l[?1c
- relative backtrace movement

>[?25h[?0cfr -1

[?25l[?1c>[?25h[?0cframe

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cfra +1

[?25l[?1c>[?25h[?0cfram

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cecho "\n- go beyond limits does not crash\n"

[?25l[?1c
- go beyond limits does not crash

>[?25h[?0cfr 100

[?25l[?1cframe at highest level: 1

>[?25h[?0cfra

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cframe -40

[?25l[?1cframe is zero

>[?25h[?0cfram

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cecho "\n- final result 19:"

[?25l[?1c
- final result 19:

>[?25h[?0ccont

[?25l[?1c19

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c0debuggreedy
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST

test108.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =out
[?25l[?1c83 more lines->1 function Foo[2]
  0 Barline 3: End of functionframe is zero  1 function Foo[2]->0 Barline 3: End of function- final result 19:19[+][?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 84 lines, 1390 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test108 = test61; then \
#	  if diff test.out test108.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test108.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test108.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_autocmd_option.failed test.ok test.out X* viminfo
cp test_autocmd_option.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autocmd_option.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_autocmd_option.in" 77 lines, 2954 charactersTest for option autocommand

STARTTEST
:so small.vim
:if !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! test.out | qa! | endif
:fu! AutoCommand(match)
:let c=g:testcase
:let item=remove(g:options, 0)
:let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Scope:
<%s>\n", item[0], item[1], item[2], item[3])
:let c.=printf("Autocmd Option: <%s>,", a:match)
:let c.=printf(" OldVal: <%s>,", v:option_old)
:let c.=printf(" NewVal: <%s>,", v:option_new)
:let c.=printf(" Scope: <%s>\n", v:option_type)
:call setreg('r', printf("%s\n%s", getreg('r'), c))
:endfu
:au OptionSet * :call AutoCommand(expand("<amatch>"))
:let g:testcase="1: Setting number option\n"
:let g:options=[['number', 0, 1, 'global']]
:set nu
:let g:testcase="2: Setting local number option\n"
:let g:options=[['number', 1, 0, 'local']][?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for option autocommand[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 2896 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let g:testcase="13: Setting option backspace through setbufvar()\n"
:let g:options=[['backup', '', '1', 'local']]
: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
:call setbufvar(1, '&l:bk', 1)
: "should trigger, use correct option name
:call setbufvar(1, '&backup', 1)
:let g:testcase="14: Setting number option using setwinvar\n"
:let g:options=[['number', 0, 1, 'local']]
:call setwinvar(0, '&number', 1)
:" Write register now, because next test shouldn't output anything.
:$put r
:let @r=''
:let g:testcase="\n15: Setting key option, shouldn't trigger\n"
:let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
:setlocal key=blah
:setlocal key=
:$put =g:testcase
:$put r
:/^dummy text/,$w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! 

test.out | qa! | endif
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"[?25h[?0c[?25l[?1c
:[?25h[?0cfu! AutoCommand(match)
[?25l[?1c
:  [?25h[?0c:^Ilet c=g:testcase

[?25l[?1c:  [?25h[?0c:       let item=remove(g:options, 0)

[?25l[?1c:  [?25h[?0c:       let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Sco

pe: <%s>\n", item[0], item[1], item[2], item[3])

[?25l[?1c:  [?25h[?0c:       let c.=printf("Autocmd Option: <%s>,", a:match)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" OldVal: <%s>,", v:option_old)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" NewVal: <%s>,", v:option_new)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" Scope: <%s>\n", v:option_type)

[?25l[?1c:  [?25h[?0c:       call setreg('r', printf("%s\n%s", getreg('r'), c))

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"
:let g:options=[['backup', '', '1', 'local']]
: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
:call setbufvar(1, '&l:bk', 1)
: "should trigger, use correct option name
:call setbufvar(1, '&backup', 1)
:let g:testcase="14: Setting number option using setwinvar\n"
:let g:options=[['number', 0, 1, 'local']]
:call setwinvar(0, '&number', 1)[?25h[?0c[?25l[?1c
:[?25h[?0cau OptionSet * :call AutoCommand(expand("<amatch>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="1: Setting number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"
     57 :let g:options=[['backup', '', '1', 'local']]
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
     59 :call setbufvar(1, '&l:bk', 1)
     60 : "should trigger, use correct option name
     61 :call setbufvar(1, '&backup', 1)
     62 :let g:testcase="14: Setting number option using setwinvar\n"
     63 :let g:options=[['number', 0, 1, 'local']]
     64 :call setwinvar(0, '&number', 1)
     65 :" Write register now, because next test shouldn't output anything.
     66 :$put r
     67 :let @r=''
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
     70 :setlocal key=blah
     71 :setlocal key=
     72 :$put =g:testcase
     73 :$put r
     74 :/^dummy text/,$w! test.out
     75 :qa!
     76 ENDTEST
     77 dummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="2: Setting local number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 1, 0, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal nonu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n":let g:options=[['backup', '', '1', 'local']]: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger:call setbufvar(1, '&l:bk', 1): "should trigger, use correct option name:call setbufvar(1, '&backup', 1):let g:testcase="14: Setting number option using setwinvar\n":let g:options=[['number', 0, 1, 'local']]:call setwinvar(0, '&number', 1):" Write register now, because next test shouldn't output anything.:$put r:let @r='':let g:testcase="\n15: Setting key option, shouldn't trigger\n":let g:options=[['key', 'invalid', 'invalid1', 'invalid']]:setlocal key=blah:setlocal key=:$put =g:testcase:$put r:/^dummy text/,$w! test.out:qa!ENDTESTdummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="3: Setting global number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nonu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="4: Setting local autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="5: Setting global autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="6: Setting global autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ai!
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c Should not print anything, use :noa
[?25l[?1cE492: Not an editor command: Should not print anything, use :noa[?25h[?0c[?25l[?1c:[?25h[?0cnoa :set nonu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="7: Setting several global list and number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list nu
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"$
     57 :let g:options=[['backup', '', '1', 'local']]$
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger$
     59 :call setbufvar(1, '&l:bk', 1)$
     60 : "should trigger, use correct option name$
     61 :call setbufvar(1, '&backup', 1)$
     62 :let g:testcase="14: Setting number option using setwinvar\n"$
     63 :let g:options=[['number', 0, 1, 'local']]$
     64 :call setwinvar(0, '&number', 1)$
     65 :" Write register now, because next test shouldn't output anything.$
     66 :$put r$
     67 :let @r=''$
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"$
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]$
     70 :setlocal key=blah$
     71 :setlocal key=$
     72 :$put =g:testcase$
     73 :$put r$
     74 :/^dummy text/,$w! test.out$
     75 :qa!$
     76 ENDTEST$
     77 dummy text$[?25h[?0c[?25l[?1c:[?25h[?0cnoa set nolist nonu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n":let g:options=[['backup', '', '1', 'local']]: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger:call setbufvar(1, '&l:bk', 1): "should trigger, use correct option name:call setbufvar(1, '&backup', 1):let g:testcase="14: Setting number option using setwinvar\n":let g:options=[['number', 0, 1, 'local']]:call setwinvar(0, '&number', 1):" Write register now, because next test shouldn't output anything.:$put r:let @r='':let g:testcase="\n15: Setting key option, shouldn't trigger\n":let g:options=[['key', 'invalid', 'invalid1', 'invalid']]:setlocal key=blah:setlocal key=:$put =g:testcase:$put r:/^dummy text/,$w! test.out:qa!ENDTESTdummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="8: Setting global acd\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autochdir', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal acd
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="9: Setting global autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="10: Setting local autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal ar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="11: Setting global autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal invar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="12: Setting option backspace through :let\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['backspace', '', 'eol,indent,start', 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet &bs="eol,indent,start"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="13: Setting option backspace through setbufvar()\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['backup', '', '1', 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c "try twice, first time, shouldn't trigger because option name is invalid, sec

ond time, it should trigger
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"[?25h[?0c[?25l[?1c
:[?25h[?0ccall setbufvar(1, '&l:bk', 1)
[?25l[?1cE355: Unknown option: l:bk[?25h[?0c[?25l[?1c:[?25h[?0c "should trigger, use correct option name
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setbufvar(1, '&backup', 1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="14: Setting number option using setwinvar\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setwinvar(0, '&number', 1)
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"
     57 :let g:options=[['backup', '', '1', 'local']]
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
     59 :call setbufvar(1, '&l:bk', 1)
     60 : "should trigger, use correct option name
     61 :call setbufvar(1, '&backup', 1)
     62 :let g:testcase="14: Setting number option using setwinvar\n"
     63 :let g:options=[['number', 0, 1, 'local']]
     64 :call setwinvar(0, '&number', 1)
     65 :" Write register now, because next test shouldn't output anything.
     66 :$put r
     67 :let @r=''
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
     70 :setlocal key=blah
     71 :setlocal key=
     72 :$put =g:testcase
     73 :$put r
     74 :/^dummy text/,$w! test.out
     75 :qa!
     76 ENDTEST
     77 dummy text[?25h[?0c[?25l[?1c:[?25h[?0c" Write register now, because next test shouldn't output anything.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put r
[?25l[?1c60 more lines117Autocmd Option: <autoread>, OldVal: <0>, NewVal: <1>, Scope: <global>11811910: Setting local autoread    120 Expected: Name: <autoread>, Oldval: <0>, NewVal: <1>, Scope: <local>121Autocmd Option: <autoread>, OldVal: <1>, NewVal: <1>, Scope: <local>12212311: Setting global autoread124Expected: Name: <autoread>, Oldval: <1>, NewVal: <0>, Scope: <global>125Autocmd Option: <autoread>, OldVal: <1>, NewVal: <0>, Scope: <global>12612712: Setting option backspace through :let128Expected: Name: <backspace>, Oldval: <>, NewVal: <eol,indent,start>, Scope: <global>129Autocmd Option: <backspace>, OldVal: <>, NewVal: <eol,indent,start>, Scope: <global>131313: Setting option backspace through setbufvar()13Expected: Name: <backup>, Oldval: <>, NewVal: <1>, Scope: <local>13Autocmd Option: <backup>, OldVal: <0>, NewVal: <1>, Scope: <local>131314: Setting number option using setwinvar13xpected: Name: <number>, Oldval: <0>, NewVal: <1>, Scope: <local>13Autocmd Option: <number>, OldVal: <0>, NewVal: <1>, Scope: <local>[?25h[?0c[?25l[?1c:[?25h[?0clet @r=''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="\n15: Setting key option, shouldn't trigger\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['key', 'invalid', 'invalid1', 'invalid']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal key=blah
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal key=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:testcase
[?25l[?1c    138 
    139 15: Setting key option, shouldn't trigger[?25h[?0c[?25l[?1c
:[?25h[?0c$put r
[?25l[?1c
    140 [?25h[?0c[?25l[?1c
:[?25h[?0c/^dummy text/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 64 lines, 2700 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_autocmd_option = test61; then \
#	  if diff test.out test_autocmd_option.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_autocmd_option.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autocmd_option.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autoformat_join.in
[?25h[?8c[?25h[?0c[?25l[?1c"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:[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for setting the '[,'] marks when joining lines.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 9 lines, 265 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^\t\t/
[?25l[?1c[?25h[?0c[?25l[?1cattamen consulite per voster honur.
Tua pulchra facies me fay planszer milies[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^This line/;'}-join
[?25l[?1cThis line.  Should be joined with the next line and with this line


~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet b=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='First test: Start/End '.string(a)
[?25l[?1cFirst test: Start/End '[0, 16, 1, 0]/[0, 17, 1, 0]'[?25h[?0c[?25l[?1c:[?25h[?0c$put ='Second test: Start/End '.string(b)
[?25l[?1cSecond test: Start/End '[0, 19, 11, 0]/[0, 19, 67, 0]'[?25h[?0c[?25l[?1c:[?25h[?0c/^\t\t/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 292 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_autoformat_join = test61; then \
#	  if diff test.out test_autoformat_join.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_autoformat_join.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autoformat_join.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_changelist.failed test.ok test.out X* viminfo
cp test_changelist.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_changelist.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_changelist.in" 22 lines, 288 charactersTest changelist position after splitting window
Set 'undolevels' to make changelist for sourced file

STARTTEST
:so small.vim
Gkylp:set ul=100
Gylp:set ul=100
gg
:vsplit
:try
:  normal g;
:  normal ggVGcpass^[
:catch
:  normal ggVGcfail^[
:finally
:  %w! test.out
:endtry
:qa!
ENDTEST

1
2
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest changelist position after splitting window[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 163 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c

[?25l[?1c11[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c22[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cvsplit
[?25l[?1c|
 window                                 |
Set 'undolevels' to make changelist for |
sourced file|
             |
STARTTEST       |
:so small.vim  |
Gkylp:set ul=100|
Gylp:set ul=100|
gg  |
:vsplit     |
:try                 |
:  normal g;|pass|
:catch  |
:  normal ggVGcfail^[|
:finally|
:  %w! test.out|
:endtry|
:qa!|
ENDTEST|
  |
test_changelist.in [+]                   Test changelist position after splitting windowSet 'undolevels' to make changelist forsourced fileSTARTTEST:so small.vimGkylp:set ul=100Gylp:set ul=100gg:vsplit:try:  normal g;:  normal ggVGcpass^[:catch:  normal ggVGcfail^[:finally:  %w! test.out:endtry:qa!ENDTESTtest_changelist.in [+]                 [?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  normal g;

[?25l[?1c:  [?25h[?0c:  normal ggVGcpass
[?25l[?1c21 fewer lines
:  

:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:  normal ggVGcfail

[?25l[?1c:  

:  [?25h[?0c:finally

[?25l[?1c:  [?25h[?0c:  %w! test.out

[?25l[?1c"test.out" [New File] 1 line, 5 characters written

:  [?25h[?0c:endtry
[?25l[?1cpass||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                          pass~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                         [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_changelist = test61; then \
#	  if diff test.out test_changelist.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_changelist.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_changelist.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_close_count.failed test.ok test.out X* viminfo
cp test_close_count.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_close_count.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_close_count.in" 153 lines, 2665 charactersTests for :[count]close! and :[count]hide     vim: set ft=vim :

STARTTEST
:so small.vim
:let tests = []
:for i in range(5)
:new
:endfor
:4wincmd w
:close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:$close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1wincmd w
:2close![?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :[count]close! and :[count]hide     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 41 lines, 749 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(tests, buffers)
:2wincmd w
:+1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(0, map(copy(tests), 'join(v:val, " ")'))
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:for i in range(5)
:new
:endfor
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:4wincmd w
:.hide[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cclose!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?25h[?0c[?25l[?1c


:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c-1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c+1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File]test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 7 lines, 39 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 15 4 25 27 5 27 5~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c"test_close_count.in" 153 lines, 2665 characters:2wincmd w
:+1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(0, map(copy(tests), 'join(v:val, " ")'))
:w:only!:b1ENDTESTSTARTTEST:let tests = []:for i in range(5):new:endfor:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers):4wincmd w:.hide:let buffers = [][?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 44 lines, 815 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:2wincmd w
:+hide
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new
:endfor
:1wincmd w
:$ hide
:let buffers = []
:windo call add(buffers, bufnr('%'))[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c.hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?25h[?0c[?25l[?1c


:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c-hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c+hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 7 lines, 39 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c13 12 11 10 9 113 12 11 9 112 11 9 112 11 9[+][?25h[?0c[?25l[?1c12 9
15 12 9
15 12[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0cw
[?25l[?1c"test.out" 15 lines, 106 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 15 4 25 27 5 27 513 12 11 10 9 113 12 11 9 112 11 9 112 11 912 915 12 9
15 12~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c:+hide:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w:only!:b1ENDTESTSTARTTEST
:let tests = []
:set hidden
:for i in range(5):new:endfor:1wincmd w:$ hide:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers)"test_close_count.in" line 93 of 153 --60%-- col 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 448 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:1wincmd w
:.+close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new
:endfor
:4wincmd w
^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$ hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$-1 close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c.+close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 15 lines, 106 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c[+][?25h[?0c[?25l[?1c15 12 915 120 19 18 17 16
20 19 18 16
20 18 16
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0cw
[?25l[?1c"test.out" 19 lines, 143 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5

13 12 11 10 9 1
13 12 11 9 1
12 11 9 1
12 11 9
12 9
15 12 9
15 12

20 19 18 17 16
20 19 18 16
20 18 16

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c:.+close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w:only!:b1ENDTESTSTARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new:endfor:4wincmd w
^Wc:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers)"test_close_count.in" line 121 of 153 --79%-- col 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 28 lines, 511 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST1^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
9^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1wincmd w
2^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:only!
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" line 19 of 19 --100%-- col 16 5 4 2 1
5 4 2 15 4 25 27 5 27 513 12 11 10 9 113 12 11 9 112 11 9 112 11 912 915 12 915 1220 19 18 17 1620 19 18 1620 18 16[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c25 24 23 21 124 23 21 124 23 2124 21[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 23 lines, 183 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_close_count = test61; then \
#	  if diff test.out test_close_count.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_close_count.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_close_count.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_comparators.failed test.ok test.out X* viminfo
cp test_comparators.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_comparators.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_comparators.in" 21 lines, 283 characters" Test for expression comparators.   vim: set ft=vim :


STARTTEST
:so small.vim
:try
:  let oldisident=&isident
:  set isident+=#
:  if 1 is#1
:    $put ='ok'
:  else
:    $put ='ng'
:  endif
:finally
:  let &isident=oldisident
:endtry
:"
:/^marker/+1,$wq! test.out
ENDTEST

marker
~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c" Test for expression comparators.   vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 200 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  let oldisident=&isident

[?25l[?1c:  [?25h[?0c:  set isident+=#

[?25l[?1c:  [?25h[?0c:  if 1 is#1

[?25l[?1c:    [?25h[?0c:    $put ='ok'

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    $put ='ng'

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:finally

[?25l[?1c:  [?25h[?0c:  let &isident=oldisident

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c" Test for expression comparators.   vim: set ft=vim :


STARTTEST
:so small.vim
:try
:  let oldisident=&isident
:  set isident+=#
:  if 1 is#1
:    $put ='ok'ok[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^marker/+1,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1 line, 3 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_comparators = test61; then \
#	  if diff test.out test_comparators.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_comparators.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_comparators.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_erasebackword.failed test.ok test.out X* viminfo
cp test_erasebackword.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_erasebackword.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_erasebackword.in" 19 lines, 427 charactersTest for erasing backword

STARTTEST
:so small.vim
:so mbyte.vim
:set encoding=utf-8
G
:/^test/,$w! test.out
:qa!
ENDTEST

test starts here:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for erasing backword[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 12 lines, 362 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest for erasing backword

STARTTEST
:so small.vim
:so mbyte.vim
:set encoding=utf-8
G
o wwwこんにちわ世界ワールドvim ^W^[
o wwwこんにちわ世界ワールドvim ^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^W^W^[
:/^test/,$w! test.out
:qa!
ENDTEST

test starts here:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c

[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1cド[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c/^test/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 111 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_erasebackword = test61; then \
#	  if diff test.out test_erasebackword.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_erasebackword.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_erasebackword.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_eval.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_eval.in" 247 lines, 6201 charactersTest for various eval features.   vim: set ft=vim :

Note: system clipboard is saved, changed and restored.

clipboard contents
something else

STARTTEST
:so small.vim
:set encoding=latin1
:set noswapfile
:lang C
:fun AppendRegContents(reg)
  call AppendRegParts(a:reg, getregtype(a:reg), getreg(a:reg), string(getreg(a:reg, 0, 1)), getreg(a:reg, 1), string(getreg(a:reg, 1, 1)))
:endfun
:fun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
  call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)', a:reg, a:type, a:cont, a:strcont, a:cont1, a:strcont1))
endfun
:command -nargs=? AR :call AppendRegContents(<q-args>)
:fun SetReg(...)
    call call('setreg', a:000)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for various eval features.   vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 233 lines, 6010 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=latin1
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun AppendRegContents(reg)
[?25l[?1c
:  [?25h[?0c  call AppendRegParts(a:reg, getregtype(a:reg), getreg(a:reg), string(getreg

(a:reg, 0, 1)), getreg(a:reg, 1), string(getreg(a:reg, 1, 1)))

[?25l[?1c:  [?25h[?0c:endfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n[?25h[?0c[?25l[?1c:[?25h[?0cfun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
[?25l[?1c
:  [?25h[?0c  call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)', a:re

g, a:type, a:cont, a:strcont, a:cont1, a:strcont1))

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n[?25h[?0c[?25l[?1c:[?25h[?0ccommand -nargs=? AR :call AppendRegContents(<q-args>)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun SetReg(...)
[?25l[?1c
:  [?25h[?0c    call call('setreg', a:000)

[?25l[?1c:  [?25h[?0c    call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))

[?25l[?1c:  [?25h[?0c    call AppendRegContents(a:1)

[?25l[?1c:  [?25h[?0c    if a:1 isnot# '='

[?25l[?1c:    [?25h[?0c        execute "silent normal! Go==\n==\e\"".a:1."P"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?25h[?0c[?25l[?1c:[?25h[?0cfun ErrExe(str)
[?25l[?1c
:  [?25h[?0c    call append('$', 'Executing '.a:str)

[?25l[?1c:  [?25h[?0c    try

[?25l[?1c:    [?25h[?0c        execute a:str

[?25l[?1c:    [?25h[?0c    catch

[?25l[?1c:    [?25h[?0c        $put =v:exception

[?25l[?1c:    [?25h[?0c    endtry

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?25h[?0c[?25l[?1c:[?25h[?0cfun Test()
[?25l[?1c
:  [?25h[?0c$put ='{{{1 let tests'

[?25l[?1c:  [?25h[?0clet @" = 'abc'

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @" = "abc\n"

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @" = "abc\<C-m>"

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @= = '"abc"'

[?25l[?1c:  [?25h[?0cAR =

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Basic setreg tests'

[?25l[?1c:  [?25h[?0ccall SetReg('a', 'abcA', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcB', 'v')

[?25l[?1c:  [?25h[?0ccall SetReg('c', 'abcC', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('d', 'abcD', 'V')

[?25l[?1c:  [?25h[?0ccall SetReg('e', 'abcE', 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('f', 'abcF', "\<C-v>")

[?25l[?1c:  [?25h[?0ccall SetReg('g', 'abcG', 'b10')

[?25l[?1c:  [?25h[?0ccall SetReg('h', 'abcH', "\<C-v>10")

[?25l[?1c:  [?25h[?0ccall SetReg('I', 'abcI')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending single lines with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAc', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAc2','c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBc', 'ca')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBb', 'ba')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBc2','ca')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBb2','b50a')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('C', 'abcCl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('C', 'abcCc', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('D', 'abcDb', 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('E', 'abcEb', 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('E', 'abcEl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('F', 'abcFc', 'c')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending NL with setreg()'

[?25l[?1c:  [?25h[?0ccall setreg('a', 'abcA2', 'c')

[?25l[?1c:  [?25h[?0ccall setreg('b', 'abcB2', 'v')

[?25l[?1c:  [?25h[?0ccall setreg('c', 'abcC2', 'l')

[?25l[?1c:  [?25h[?0ccall setreg('d', 'abcD2', 'V')

[?25l[?1c:  [?25h[?0ccall setreg('e', 'abcE2', 'b')

[?25l[?1c:  [?25h[?0ccall setreg('f', 'abcF2', "\<C-v>")

[?25l[?1c:  [?25h[?0ccall setreg('g', 'abcG2', 'b10')

[?25l[?1c:  [?25h[?0ccall setreg('h', 'abcH2', "\<C-v>10")

[?25l[?1c:  [?25h[?0ccall setreg('I', 'abcI2')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('A', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('B', "\n", 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('D', "\n", 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('E', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('F', "\n", 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Setting lists with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('a', ['abcA3'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB3'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('c', ['abcC3'], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('d', ['abcD3'])

[?25l[?1c:  [?25h[?0ccall SetReg('e', [1, 2, 'abc', 3])

[?25l[?1c:  [?25h[?0ccall SetReg('f', [1, 2, 3])

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending lists with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', ['abcA3c'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB3l'], 'la')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ['abcC3b'], 'lb')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ['abcD32'])

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('A', ['abcA32'])

[?25l[?1c:  [?25h[?0ccall SetReg('B', ['abcB3c'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ['abcC3l'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ['abcD3b'], 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending lists with NL with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', ["\n", 'abcA3l2'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('B', ["\n", 'abcB3c2'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ["\n", 'abcC3b2'], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ["\n", 'abcD3b50'],'b50')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Setting lists with NLs with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4

-4-2"])

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\na

bcB4c-4-2"], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\na

bcC4l-4-2"], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\na

bcD4b-4-2"], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4

b10-4\nabcE4b10-4-2"], 'b10')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Search and expressions'

[?25l[?1c:  [?25h[?0ccall SetReg('/', ['abc/'])

[?25l[?1c:  [?25h[?0ccall SetReg('/', ["abc/\n"])

[?25l[?1c:  [?25h[?0ccall SetReg('=', ['"abc/"'])

[?25l[?1c:  [?25h[?0ccall SetReg('=', ["\"abc/\n\""])

[?25l[?1c:  [?25h[?0c$put ='{{{1 System clipboard'

[?25l[?1c:  [?25h[?0cif has('clipboard')

[?25l[?1c:    [?25h[?0c" Save and restore system clipboard.

[?25l[?1c:    [?25h[?0c" If no connection to X-Server is possible, test should succeed.

[?25l[?1c:    [?25h[?0clet _clipreg = ['*', getreg('*'), getregtype('*')]

[?25l[?1c:    [?25h[?0clet _clipopt = &cb

[?25l[?1c:    [?25h[?0clet &cb='unnamed'

[?25l[?1c:    [?25h[?0c5y

[?25l[?1c:    [?25h[?0cAR *

[?25l[?1c:    [?25h[?0ctabdo :windo :echo "hi"

[?25l[?1c:    [?25h[?0c6y

[?25l[?1c:    [?25h[?0cAR *

[?25l[?1c:    [?25h[?0clet &cb=_clipopt

[?25l[?1c:    [?25h[?0ccall call('setreg', _clipreg)

[?25l[?1c:    [?25h[?0celse

[?25l[?1c:    [?25h[?0c  call AppendRegParts('*', 'V', "clipboard contents\n", "['clipboard conte

nts']", "clipboard contents\n", "['clipboard contents']")

[?25l[?1c:    [?25h[?0c  call AppendRegParts('*', 'V', "something else\n", "['something else']", 

"something else\n", "['something else']")

[?25l[?1c:    [?25h[?0cendif

[?25l[?1c:  [?25h[?0c$put ='{{{1 Errors'

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg()')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, 2, 3, 4)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg([], 2)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, {})')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, 2, [])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg("/", ["1", "2"])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg("=", ["1", "2"])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, ["", "", [], ""])')

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Test()
[?25l[?1chi*: type V; value: something else^@ (['something else']), expr: something else^@
(['something else'])
{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)
Vim(call):E118: Too many arguments for function: setreg
Executing call setreg([], 2)
Vim(call):E730: using List as a String
Executing call setreg(1, {})
Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction SetReg
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction AppendRegContents
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction ErrExe
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction Test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelcommand AR
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name not starting with capital
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! g:test()

[?25l[?1c:  [?25h[?0c:echo "test"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)8: Too many arguments for function: setreg[], 2)730: using List as a String1, {}1Dictionary as a String2, [])0List as a String"/", ["1", "2"])883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])Vim(call):E730: using List as a String
Vim(function):E128: Function name must start with a capital or "s:": g:test()
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name includes a colon
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! b:test()

[?25l[?1c:  [?25h[?0c:echo "test"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)Vim(function):E128: Function name must start with a capital or "s:": b:test()[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name folowed by #
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! test2() "#

[?25l[?1c:  [?25h[?0c:echo "test2"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1cExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)
Vim(call):E118: Too many arguments for function: setreg
Executing call setreg([], 2)Vim(call):E730: using List as a String
Executing call setreg(1, {})Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a Stringfunction):E128: Function name must start with a capital or "s:": g:test()btest2() "#[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name starting with/without "g:", buffer-local funcref.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! g:Foo(n)
[?25l[?1c
:  [?25h[?0c:  $put ='called Foo(' . a:n . ')'

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg[?25h[?0c[?25l[?1c
:[?25h[?0clet b:my_func = function('Foo')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall b:my_func(1)
[?25l[?1c
called Foo(1)[?25h[?0c[?25l[?1c
:[?25h[?0cecho g:Foo(2)
[?25l[?1c0
called Foo(2)[?25h[?0c[?25l[?1c
:[?25h[?0cecho Foo(3)
[?25l[?1c0
called Foo(3)[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" script-local function used in Funcref must exist.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso test_eval_func.vim
[?25l[?1cs:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Using $ instead of '$' must give an error
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c: call append($, 'foobar')

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1cExecuting call setreg(1, {})
Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a Stringfunction):E128: Function name must start with a capital or "s:": g:test()btest2() "#
called Foo(123
s:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1func Bar exists: 1
Vim(call):E116: Invalid arguments for function append[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='{{{1 getcurpos/setpos'
[?25l[?1c
{{{1 getcurpos/setpos[?25h[?0c[?25l[?1c
/[?25h[?0c^012345678
[?25l[?1csearch hit BOTTOM, continuing at TOP:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:
{{{1 let tests
": type v; value: abc (['abc']), expr: abc (['abc'])
": type V; value: abc^@ (['abc']), expr: abc^@ (['abc'])
": type V; value: abc^M^@ (['abc^M']), expr: abc^M^@ (['abc^M'])
=: type v; value: abc (['abc']), expr: "abc" (['"abc"'])
{{{1 Basic setreg tests
{{{2 setreg('a', 'abcA', 'c')
a: type v; value: abcA (['abcA']), expr: abcA (['abcA'])
search hit BOTTOM, continuing at TOP[?25h[?0c012345[?25l[?1c:[?25h[?0clet sp = getcurpos()
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0ccall setpos('.', sp)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put
[?25l[?1cExecuting call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
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:": b:test()
Vim(function):E128: Function name must start with a capital or "s:": test2() "#
called Foo(1)
called Foo(2)
called Foo(3)
s:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1
Vim(call):E116: Invalid arguments for function append
{{{1 getcurpos/setpos
6[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" substring and variable name
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet str = 'abcdef'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet n = 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[n:]
[?25l[?1c
def[?25h[?0c[?25l[?1c
:[?25h[?0c$put =str[:n]
[?25l[?1c
abcd[?25h[?0c[?25l[?1c
:[?25h[?0c$put =str[n:n]
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0cunlet n
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet nn = 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[nn:]
[?25l[?1cdef
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put =str[:nn]
[?25l[?1cabcd[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[nn:nn]
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0cunlet nn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:nn = 4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[b:nn:]
[?25l[?1cef
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put =str[:b:nn]
[?25l[?1cabcde[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[b:nn:b:nn]
[?25l[?1c
e[?25h[?0c[?25l[?1c
:[?25h[?0cunlet b:nn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/+1,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 362 lines, 11279 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_eval = test61; then \
#	  if diff test.out test_eval.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_eval.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_eval.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_fixeol.failed test.ok test.out X* viminfo
cp test_fixeol.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_fixeol.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_fixeol.in" 40 lines, 780 charactersTests for 'fixeol'vim: set ft=vim :

STARTTEST
:" use Unix fileformat for consistency
:set ff=unix
:enew!
awith eol^[:w! XXEol
:enew!
:set noeol nofixeol
awithout eol^[:w! XXNoEol
:set eol fixeol
:bwipe XXEol XXNoEol
:"
:" try editing files with 'fixeol' disabled
:e! XXEol
ostays eol^[:set nofixeol
:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol
:w! XXTestNoEol
:bwipe XXEol XXNoEol XXTestEol XXTestNoEol
:set fixeol[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'fixeol'vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 698 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" Append "END" to each file so that we can see what the last written char was.
ggdGaEND^[:w >>XXEol
:w >>XXNoEol
:w >>XXTestEol
:w >>XXTestNoEol
:"
:" Concatenate the results
:e! test.out
a0^[:$r XXEol
:$r XXNoEol
Go1^[:$r XXTestEol
:$r XXTestNoEol
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
2 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol:w! XXTestNoEol:bwipe XXEol XXNoEol XXTestEol XXTestNoEol:set fixeol:":" Append "END" to each file so that we can see what the last written char was.ggdGaEND^[:w >>XXEol:w >>XXNoEol:w >>XXTestEol:w >>XXTestNoEol:":" Concatenate the results:e! test.outa0^[:$r XXEol:$r XXNoEolGo1^[:$r XXTestEol:$r XXTestNoEol:w:qa!ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0c" try editing files with 'fixeol' disabled
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" 1 line, 9 characterswith eol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c
stays eol[?25h[?0c[?25l[?1c:[?25h[?0cset nofixeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! XXTestEol
[?25l[?1c"XXTestEol" [New File] 2 lines, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXNoEol
[?25l[?1c"XXNoEol" [Incomplete last line] 1 line, 11 charactersout eol
~                                                                               [?25h[?0c[?25l[?1c
stays without[?25h[?0c[?25l[?1c:[?25h[?0cset nofixeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! XXTestNoEol
[?25l[?1c"XXTestNoEol" [New File][Incomplete last line] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol XXNoEol XXTestEol XXTestNoEol
[?25l[?1c"test_fixeol.in" 40 lines, 780 characters

4 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fixeol
[?25l[?1c:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol:w! XXTestNoEol:bwipe XXEol XXNoEol XXTestEol XXTestNoEol:set fixeol:":" Append "END" to each file so that we can see what the last written char was.ggdGaEND^[:w >>XXEol:w >>XXNoEol:w >>XXTestEol:w >>XXTestNoEol:":" Concatenate the results:e! test.outa0^[:$r XXEol:$r XXNoEolGo1^[:$r XXTestEol:$r XXTestNoEol:w:qa!ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Append "END" to each file so that we can see what the last written char was.
[?25l[?1c[?25h[?0c[?25l[?1cTests for 'fixeol'vim: set ft=vim :

STARTTEST
:" use Unix fileformat for consistency
:set ff=unix
:enew!
awith eol^[:w! XXEol
:enew!
:set noeol nofixeol
awithout eol^[:w! XXNoEol
:set eol fixeol
:bwipe XXEol XXNoEol
:"
:" try editing files with 'fixeol' disabled
:e! XXEol
ostays eol^[:set nofixeol[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cEND[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXEol
[?25l[?1c"XXEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXNoEol
[?25l[?1c"XXNoEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXTestEol
[?25l[?1c"XXTestEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXTestNoEol
[?25l[?1c"XXTestNoEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Concatenate the results
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File][?25h[?0c[?25l[?1c0[?25h[?0c[?25l[?1c:[?25h[?0c$r XXEol
[?25l[?1c"XXEol" 2 lines, 13 characterswith eolEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXNoEol
[?25l[?1c"XXNoEol" 1 line, 15 characterswithout eolEND[?25h[?0c[?25l[?1c
1[?25h[?0c[?25l[?1c:[?25h[?0c$r XXTestEol
[?25l[?1c"XXTestEol" 3 lines, 23 characterswith eolstays eolEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXTestNoEol
[?25l[?1c"XXTestNoEol" 2 lines, 29 characterswithout eolstays withoutEND[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 10 lines, 84 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_fixeol = test61; then \
#	  if diff test.out test_fixeol.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_fixeol.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_fixeol.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_getcwd.failed test.ok test.out X* viminfo
cp test_getcwd.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_getcwd.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_getcwd.in" 96 lines, 2374 charactersTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :

STARTTEST
:so small.vim
:" Do all test in a separate window to avoid E211 when we recursively
:" delete the Xtopdir directory during cleanup
:"
:" This will cause a few errors, do it silently.
:set visualbell
:set nocp viminfo+=nviminfo
:"
:" On windows a swapfile in Xtopdir prevents it from being cleaned up.
:set noswapfile
:"
:function! GetCwdInfo(win, tab)
: let tab_changed = 0
: let mod = ":t"
: if a:tab > 0 && a:tab != tabpagenr()
:   let tab_changed = 1
:   exec "tabnext " . a:tab
: endif
: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)
: if tab_changed[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 90 lines, 2273 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:wincmd W
:lcd Xdir2
:call add(r, GetCwdInfo(0, 0))
:wincmd W
:lcd Xdir3
:call add(r, GetCwdInfo(0, 0))
:call add(r, GetCwdInfo(bufwinnr("x"), 0))
:call add(r, GetCwdInfo(bufwinnr("y"), 0))
:call add(r, GetCwdInfo(bufwinnr("z"), 0))
:let tp_nr = tabpagenr()
:tabrewind
:call add(r, GetCwdInfo(3, tp_nr))
:call add(r, GetCwdInfo(2, tp_nr))
:call add(r, GetCwdInfo(1, tp_nr))
:"
:call writefile(r, test_out, "a")
:q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Do all test in a separate window to avoid E211 when we recursively
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" delete the Xtopdir directory during cleanup
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This will cause a few errors, do it silently.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" On windows a swapfile in Xtopdir prevents it from being cleaned up.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! GetCwdInfo(win, tab)
[?25l[?1c
:  [?25h[?0c: let tab_changed = 0

[?25l[?1c:  [?25h[?0c: let mod = ":t"

[?25l[?1c:  [?25h[?0c: if a:tab > 0 && a:tab != tabpagenr()

[?25l[?1c:    [?25h[?0c:   let tab_changed = 1

[?25l[?1c:    [?25h[?0c:   exec "tabnext " . a:tab

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)

[?25l[?1c:  [?25h[?0c: if tab_changed

[?25l[?1c:    [?25h[?0c:   tabprevious

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: if a:win == 0 && a:tab == 0

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir()

[?25l[?1c:    [?25h[?0c: elseif a:tab == 0

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(a:win), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir(a:win)

[?25l[?1c:    [?25h[?0c: else

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(a:win, a:tab), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir(a:win, a:tab)

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: return bufname . ' ' . dirname . ' ' . lflag

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:wincmd W
:lcd Xdir2
:call add(r, GetCwdInfo(0, 0))
:wincmd W
:lcd Xdir3
:call add(r, GetCwdInfo(0, 0))
:call add(r, GetCwdInfo(bufwinnr("x"), 0))
:call add(r, GetCwdInfo(bufwinnr("y"), 0))
:call add(r, GetCwdInfo(bufwinnr("z"), 0))
:let tp_nr = tabpagenr()
:tabrewind
:call add(r, GetCwdInfo(3, tp_nr))
:call add(r, GetCwdInfo(2, tp_nr))
:call add(r, GetCwdInfo(1, tp_nr))
:"
:call writefile(r, test_out, "a")
:q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST
[?25h[?0c[?25l[?1c

:[?25h[?0c" On windows a stale "Xtopdir" directory may exist, remove it so that
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" we start from a clean state.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xtopdir", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet r=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       test_getcwd.in                                                                  [?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet test_out = cwd . '/test.out'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xtopdir')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xtopdir
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test_getcwd.in[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir1')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir2')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir3')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew a
[?25l[?1c"a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c:[?25h[?0cnew b
[?25l[?1c"b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c:[?25h[?0cnew c
[?25l[?1c"c" [New File]~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1cc                                                                               a                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir1
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/Xdir1/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/b/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/a[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                           b                                                                               a                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                                               b                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir3
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/Xdir3/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/b/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/a[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("a"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("b"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("c"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                                               b                                                           a                                                           /<<PKGBUILDDIR>>/src/vim-gtk/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("a"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("b"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("c"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew x
[?25l[?1c"x" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  x                                               X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew y
[?25l[?1c"y" [New File]2y  Xy                                                                               x                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew z
[?25l[?1c"z" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               z                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               y                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               x                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1cz                                                                               x                                                                               x X[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cy                                                                               x                                                                               y X[?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir2
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/Xdir2/b/v/v/s/v/t/X/y  X/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/z/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/y/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/x[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cz                 Xz                                                                               y                                                                               x                                                           [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir3
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/Xdir3/b/v/v/s/v/t/X/z  X/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/z/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/y/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtopdir/x[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("x"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("y"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("z"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tp_nr = tabpagenr()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(3, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(2, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(1, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall writefile(r, test_out, "a")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c 4 [No Name]  3 z                                                               X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdirX/z  XXtopdir/cXtopdir/bXtopdir/a
[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xtopdir", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_getcwd = test61; then \
#	  if diff test.out test_getcwd.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_getcwd.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_getcwd.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_insertcount.failed test.ok test.out X* viminfo
cp test_insertcount.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_insertcount.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_insertcount.in" 14 lines, 204 charactersTests for repeating insert and replace.

STARTTEST
:so small.vim
:/Second
4gro
:/^First/,$wq! test.out
:" get here when failed and in Insert mode
^[:.wq! test.out
ENDTEST

First line
Second line
Last line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for repeating insert and replace.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 111 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/Second
[?25l[?1c[?25h[?0c[?25l[?1cooooecond line
ooo[?25h[?0c
Las[?25l[?1c:[?25h[?0c/^First/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 3 lines, 36 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_insertcount = test61; then \
#	  if diff test.out test_insertcount.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_insertcount.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_insertcount.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listchars.failed test.ok test.out X* viminfo
cp test_listchars.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listchars.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listchars.in" 54 lines, 705 charactersTests for 'listchars' display with 'list' and :list

STARTTEST
:so small.vim
:set ff=unix
:let g:lines = []
:function GetScreenCharsForLine(lnum)
:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val))'), '')
:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\<CR>"
:set listchars+=tab:>-,space:.,trail:<
:set list
:
/^start:/
:normal! jzt
GG
GG
GG
GG
GGH:
:set listchars-=trail:<[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'listchars' display with 'list' and :list[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 431 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTGG
GG
GG
GG
GG:
:put =g:lines
:'[,']w! test.out
ENDTEST[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:lines = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction GetScreenCharsForLine(lnum)
[?25l[?1c
:  [?25h[?0c:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val

))'), '')

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\<CR>"[?25h[?0c[?25l[?1c
:[?25h[?0cnnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))

\<CR>"
[?25l[?1c:endfunction[?25h[?0c[?25l[?1c
:[?25h[?0cset listchars+=tab:>-,space:.,trail:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list
[?25l[?1c$.<expr>.GG.":call..$
:set.$
:set.list$
:$$.jzt$
GG$
GG$
GG$
GG$
GGH:$
:set.$
GG$
GG$
GG$
GG$
GG:$
:put.$.$$
$[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c
start:$[?25h[?0c[?25l[?1c
:[?25h[?0cnormal! jzt
[?25l[?1c>-------aa>-----$
..bb>---<<$
...cccc><$
dd........ee<<>-$
<$
$
$
STARTTEST$
:set.listchars+=trail:<$
:set.nolist$
:$
/^start:/$
:redir!.>>.test.out$
:+1,$list$
:redir.END$
:q!$
ENDTEST$
$
start:$
..fff>--<<$
>-------gg>-----$
.....h>-$
iii<<<<><<$[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(1))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(2))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(3))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(4))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(5))
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset listchars-=trail:<
[?25l[?1c.....
.......>..[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(1))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(2))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(3))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(4))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(5))
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =g:lines
[?25l[?1c10 more >-------aa>-----$$
..bb>---<<$$
...cccc><$$
dd........ee<<>-$$
<$$
>-------aa>-----$$
..bb>---..$$
...cccc>.$$
dd........ee..>-$$
.$$10 more lines[?25h[?0c[?25l[?1c:[?25h[?0c'[,']w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 124 characters written[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 93 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:+1,$list$
:redir.END$
:q!$
ENDTEST$[?25h[?0c[?25l[?1c
$[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset listchars+=trail:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nolist
[?25l[?1c   >>  [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c
start:[?25h[?0c[?25l[?1c
:[?25h[?0credir! >> test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c+1,$list
[?25l[?1c..fff>--<<$

>-------gg>-----$

.....h>-$

iii<<<<><<$

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c>-------aa>-----$
..bb>---..$
...cccc>.$
dd........ee..>-$
.$STARTTEST:set listchars+=trail:<
:set nolist
:
/^start:/
:redir! >> test.out+1,$listredir END
:q!ENDTESTstart:  fff
        ggh
iii   [?25h[?0c[?25l[?1c
:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listchars = test61; then \
#	  if diff test.out test_listchars.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listchars.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listchars.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listlbr.failed test.ok test.out X* viminfo
cp test_listlbr.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listlbr.in" 119 lines, 2868 charactersTest for linebreak and list option (non-utf8)

STARTTEST
:so small.vim
:if !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |
endif
:10new|:vsp|:vert resize 20
:put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width)
:let c=''
:for j in range(1,4)
:for i in range(1,a:width)
:let c.=nr2char(screenchar(j, i))
:endfor
:let c.="\n"
:endfor
:return c
:endfu
:fu! DoRecordScreen()
:wincmd l
:$put =printf(\"\n%s\", g:test)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for linebreak and list option (non-utf8)[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 114 lines, 2792 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTabcd{ef
ghijklm
no}pqrs^[2k0f{^V^Vc%^[
:"
:let g:test ="Test 11: using block replace mode after wrapping"
:$put =g:test
:set linebreak wrap
Go^[150aa^[yypk147|^Vjr0
:"
:let g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$":set list listchars=space:_,trail:-,tab:>-,eol:$
:$put =g:test
:let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |

endif
[?25l[?1cabcd{ef[?25h[?0c[?25l[?1c
:[?25h[?0c10new|:vsp|:vert resize 20
[?25l[?1c       ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name]            ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name]                                                  let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =linenorm! zt
:redraw!let line=ScreenChar(winwidth(0))
:call DoRecordScreen()%w! test.outqaENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0cput =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [+][?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25l[?1cabcdef          
+hijklmn            
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [?25h[?0c[?25l[?1c:[?25h[?0cfu! ScreenChar(width)
[?25l[?1c
:  [?25h[?0c:^Ilet c=''

[?25l[?1c:  [?25h[?0c:^Ifor j in range(1,4)

[?25l[?1c:    [?25h[?0c:^I    for i in range(1,a:width)

[?25l[?1c:      [?25h[?0c:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l[?1c:      [?25h[?0c:^I    endfor

[?25l[?1c:    [?25h[?0c:           let c.="\n"

[?25l[?1c:    [?25h[?0c:^Iendfor

[?25l[?1c:  [?25h[?0c:^Ireturn c

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0cfu! DoRecordScreen()
[?25l[?1c
:  [?25h[?0c:^Iwincmd l

[?25l[?1c:  [?25h[?0c:^I$put =printf(\"\n%s\", g:test)

[?25l[?1c:  [?25h[?0c:^I$put =g:line

[?25l[?1c:  [?25h[?0c:^Iwincmd p

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 1: set linebreak"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 1: set         
+linebreak          
    abcdef          
+hijklmn            
+pqrstuvwxyz_1060ABCTest 1: set linebreak    abcdef          +hijklmn            +pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP      [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 2: set linebreak + set list"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak list listchars=
[?25l[?1c^Iabcdef hijklmn^I  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP      
              
Test 1: set
+linebreak 
    abcdef
+hijklmn  
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c^Iabcdef hijklmn^I  |
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
Test 1: set|
+linebreak|
    abcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      |
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOPTest 1: set linebreakabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP~                                                          ~                                                          [No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines    abcdef                                                 +hijklmn                                                   +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                             ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 3: set linebreak nolist"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak
[?25l[?1c    abcdef          hijklmn            pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
           
Test 1: set
+linebreak
    abcdef
+hijklmn            
+pqrstuvwxyz_1060ABC[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
Test 1: set|
+linebreak|
    abcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
[No Name] [+]        abcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOPTest 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines^Iabcdef hijklmn^I                                         +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Test 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 4: set linebreak with tab and 1 line as long as screen: shou

ld break!"
[?25l[?1cabcdef|^Iabcdef hijklmn^I[?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak ts=8
[?25l[?1c    abcdef[?25h[?0c[?25l[?1c:[?25h[?0clet line="1\t".repeat('a', winwidth(0)-2)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1c      
        
Test 3: set         linebreak nolist
    abcdef
+hijklmn   
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
1       
+aaaaaaaaaaaaaaaaaa [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c1|
+aaaaaaaaaaaaaaaaaa |||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOPTest 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     1aaaaaaaaaaaaaaaaaaTest 4: set linebreak with tab and 1 line as long as screen+: should break!1+aaaaaaaaaaaaaaaaaa~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet line="_S_\t bla"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cTest 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    ~
~
_S_      bla[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c_S_      bla        
                    
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 5: set linebreak with conceal and set list and tab displayed

by different char (line may not be truncated)"
[?25l[?1c_S_      bla|+pqrstuvwxyz_1060ABC[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab
[?25l[?1cabbbb[?25h[?0c[?25l[?1c:[?25h[?0csyn match ConcealVar contained /_/ conceal
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match All /.*/ contains=ConcealVar
[?25l[?1cSabb[?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 5: set         
+linebreak with     
+conceal and set    
+list and tab       
+displayed by       
+different char     
+(line may not be   
+truncated)         ~                                                          ~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _S_      blaTest 5: set linebreak with conceal and set list and tab dis+played by different char (line may not be truncated)Sabbbbbb bla~~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 6: set linebreak with visual block mode"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet line="REMOVE: this not"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cabbbbbb
~
~          
~              
Test 6: set     nebreak withvisual block mode
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cREMOVE: this not    [?25h[?0c[?25l[?1c:[?25h[?0clet line="REMOVE: aaaaaaaaaaaaa"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cREMOVE:             
+aaaaaaaaaaaaa      [?25h[?0c[?25l[?1c:[?25h[?0c1/^REMOVE:
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cR[?25h[?0c[?25l[?1cEMOVE: 
REMOVE:[?25h[?0c[?25l[?1cthis not        
aaaaaaaaaaaaa
~                   [?25h[?0c[?25l[?1c:[?25h[?0c$put
[?25l[?1c~                   
~                   
~                   
Test 6: set         
+linebreak with     
+visual block mode  
this not            
aaaaaaaaaaaaa       
~                   
                    REMOVE:             
REMOVE:[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 7: set linebreak with visual block mode and v_b_A"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cthis not            
aaaaaaaaaaaaa       
REMOVE:             
REMOVE:             
                    
                    
                    
                    
                    
                    Test 7: set
+linebreak with
+visual block mode
+and vbA
~                   
~                   [?25h[?0c[?25l[?1clong line:          [?25h[?0c[?25l[?1c foobar
+foobar foobar      @                   
@                           
             
       
       
           
               
                  
        
                    
                    +foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar[?25h[?0c+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar             
                    [?25l[?1cTARGET at
+end[?25h[?0c[?25l[?1c:[?25h[?0cexe "norm! $3B\<C-v>eAx\<Esc>"
[?25l[?1cx at[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak sbr=
[?25l[?1cfoobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar TARGETx at 
end played by different char (line may not be truncated)[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 8: set linebreak with visual char mode and changing block"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 8: set  
linebreak with
visual char mode
and changing block
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c1111-1111-1111-11-  
1111-1111-1111      [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c111[?25h[?0c[?25l[?1c2222[?25h[?0c[?25l[?1c2222[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 9: using redo after block visual mode"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 9: using redo  
after block visual  
mode                [?25h[?0c[?25l[?1c1111-2222-1111-11-  
1111-2222-1111      
Test 9: using redo  
after block visual  
mode                
~                   
                    
                    
                    
                                        
aaa
aaa
a
~                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
a[?25h[?0c[?25l[?1c3 lines changedA
A
A[?25h[?0c[?25l[?1cA
AaA[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 10: using normal commands after block-visual"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 9: using redo  
after block visual  
mode                
                    
AaA                 
AaA                 
A                   
~                   
                    
                    Test 10: using      
normal commands
after block-visual[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak
[?25l[?1c[?25h[?0c[?25l[?1cAaA                 
AaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
                    
                    
                    abcd{ef
ghijklm
no}pqrs[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cpqrs
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 11: using block replace mode after wrapping"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cAaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
~                   
~                   
                    Test 11: using      
block replace mode  
after wrapping[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak wrap
[?25l[?1c[?25h[?0c[?25l[?1cA                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
Test 11: using      
block replace mode  
after wrapping      
                    [?25h[?0c[?25l[?1caaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa        
~                   
~                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1caaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa
~                   
~                   [?25h[?0c[?25l[?1c0
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?25h[?0c[?25l[?1c@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaa0aaa
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$

"[?25l[?1caaaaaaaaaaaaaaaaaaaa|~[?25h[?0c[?25l[?1c:[?25h[?0cset list listchars=space:_,trail:-,tab:>-,eol:$
[?25l[?1c$[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0clet line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1ca_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1ca_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         
~                   
~                   
~                   
                    
                    
                    
                    ~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1ca_|
aaaaaaaaaaaaaaaaaaaa|
aa>-----a-$||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ~~_S_      blaTest 5: set linebreak with conceal and set list and tab displayed by different char (line may not be truncated)Sabbbbbb bla~~~[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines$                   
Test_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
a------------------ 
$                   Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$a aaaaaaaaaaaaaaaaaaaaaaa12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$a_          aaaaaaaaaaaaaaaaaaaaaa>-----a-$[?25h[?0c[?25l[?1c:[?25h[?0c%w! test.out
[?25l[?1c"test.out" [New File] 62 lines, 2030 characters writtentest.out     test.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listlbr = test61; then \
#	  if diff test.out test_listlbr.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listlbr.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_search_mbyte.failed test.ok test.out X* viminfo
cp test_search_mbyte.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_search_mbyte.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_search_mbyte.in" 15 lines, 226 charactersTest for search('multi-byte char', 'bce')

STARTTEST
:source small.vim
:source mbyte.vim
:set encoding=utf-8
:/^Test bce:/+1
:$put =search('A', 'bce', line('.'))
:1;/^Results:/,$wq! test.out
ENDTEST

Results:

Test bce:
A
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for search('multi-byte char', 'bce')[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 140 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0csource small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csource mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest for search('multi-byte char', 'bce')

STARTTEST
:source small.vim
:source mbyte.vim
:set encoding=utf-8
:/^Test bce:/+1
:$put =search('A', 'bce', line('.'))
:1;/^Results:/,$wq! test.out
ENDTEST

Results:

Test bce:
A
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c/^Test bce:/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =search('A', 'bce', line('.'))
[?25l[?1c15[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results:/,$wq! test.out
[?25l[?1c"test.out" [New File] 5 lines, 27 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_search_mbyte = test61; then \
#	  if diff test.out test_search_mbyte.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_search_mbyte.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_search_mbyte.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_utf8.failed test.ok test.out X* viminfo
cp test_utf8.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_utf8.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_utf8.in" 46 lines, 1245 charactersTests for Unicode manipulationsvim: set ft=vim :

STARTTEST
:so small.vim
:set encoding=utf-8
:"
:" Visual block Insert adjusts for multi-byte char
:new
:exe ":norm! gg0l\<C-V>jjIx\<Esc>"
:let r = getline(1, '$')
:"
:bwipeout!
:$put=r
:"
:" Test for built-in function strchars()
:$put=strchars(str)
:$put=strchars(str, 0)
:$put=strchars(str, 1)
:endfor
:"
:" Test for customlist completion[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for Unicode manipulationsvim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 1151 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete2(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete3(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1c:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:return ['あ', 'い']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete2(lead, line, pos)
:return ['あたし', 'あたま', 'あたりめ']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete3(lead, line, pos)
:return ['Nこ', 'Nん', 'Nぶ']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual block Insert adjusts for multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       function! CustomComplete3(lead, line, pos)
:       return ['Nこ', 'Nん', 'Nぶ']endfunctioncommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')"call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST test_utf8.in                                                                    [?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, ["aaa", "あああ", "bbb"])
[?25l[?1caaa
あああbbb[+][?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! gg0l\<C-V>jjIx\<Esc>"
[?25l[?1cxaa
xあああ
bxbb[?25h[?0c[?25l[?1c:[?25h[?0clet r = getline(1, '$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipeout!
[?25l[?1c:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:       return ['あ', 'い']
:endfunction:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it'):":function! CustomComplete2(lead, line, pos):       return ['あたし', 'あたま', 'あたりめ']:endfunction:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')"function! CustomComplete3(lead, line, pos)
:       return ['Nこ', 'Nん', 'Nぶ']
:endfunctionommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"call garbagecollect(1):/^start:/,$wq! test.out
ENDTEST
 [?25h[?0c[?25l[?1c:[?25h[?0c$put=r
[?25l[?1c3 more linesstart:
axaa
xあああ
bxbb3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for built-in function strchars()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor str in ["a", "あいa", "A\u20dd", "A\u20dd\u20dd", "\u20dd"]
[?25l[?1c
:  [?25h[?0c:^I$put=strchars(str)

[?25l[?1c:  [?25h[?0c:^I$put=strchars(str, 0)

[?25l[?1c:  [?25h[?0c:^I$put=strchars(str, 1)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST

start:axaaxあああbxbb11133322133
1111[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for customlist completion
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete1(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['あ', 'い']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:call garbagecollect(1)
:/^start:/,$wq! test.out[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test1 ...'
:$Test1 '
:$pTest1 '
:$puTest1 '
:$putTest1 '
:$put=Test1 ''Test1 '

Test1[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete2(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['あたし', 'あたま', 'あたりめ']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test2 ...あた'
:$Test2 あた'
:$pTest2 あた'
:$puTest2 あた'
:$putTest2 あた'
:$put=Test2 あた''Test2 あた'

Test2 あた[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete3(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['Nこ', 'Nん', 'Nぶ']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test3 ...N'
:$Test3 N'
:$pTest3 N'
:$puTest3 N'
:$putTest3 N'
:$put=Test3 N''Test3 N'

Test3 N[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 22 lines, 86 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_utf8 = test61; then \
#	  if diff test.out test_utf8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_utf8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_utf8.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_wordcount.failed test.ok test.out X* viminfo
cp test_wordcount.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_wordcount.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_wordcount.in" 126 lines, 2815 charactersTest for wordcount() function

STARTTEST
:so small.vim
:so mbyte.vim
:set enc=utf8
:set selection=inclusive fileformat=unix fileformats=unix
:new
:fu DoRecordWin(...)
:wincmd k
:if exists("a:1")
:call cursor(a:1)
:endif
:let result=[]
:call add(result, g:test)
:call add(result, getline(1, '$'))
:call add(result, wordcount())
:wincmd j
:return result
:endfu
:fu PutInWindow(args)
:wincmd k
:%d _[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for wordcount() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 121 lines, 2753 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:0
v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:let g:test="Test 11: visual mode, single line"
:wincmd k
:set ls=2 stl=%{STL()}
:" start visual mode quickly and select complete buffer
:2
0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:/^RESULT test/,$w! test.out
:qa!
ENDTEST
RESULT test:[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf8
[?25l[?1c:0
v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:let g:test="Test 11: visual mode, single line"
:call PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
:wincmd k
:set ls=2 stl=%{STL()}
:" start visual mode quickly and select complete buffer
:2
0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:/^RESULT test/,$w! test.out
:qa!
ENDTEST
RESULT test:
[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=inclusive fileformat=unix fileformats=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])[2]=g:visual_statcall Log()"/^RESULT test/,$w! test.out
:qa!ENDTEST
RESULT test:
test_wordcount.in                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu DoRecordWin(...)
[?25l[?1c
:  [?25h[?0c:^Iwincmd k

[?25l[?1c:  [?25h[?0c:       if exists("a:1")

[?25l[?1c:    [?25h[?0c:           call cursor(a:1)

[?25l[?1c:    [?25h[?0c:       endif

[?25l[?1c:  [?25h[?0c:       let result=[]

[?25l[?1c:  [?25h[?0c:       call add(result, g:test)

[?25l[?1c:  [?25h[?0c:       call add(result, getline(1, '$'))

[?25l[?1c:  [?25h[?0c:       call add(result, wordcount())

[?25l[?1c:  [?25h[?0c:^Iwincmd j

[?25l[?1c:  [?25h[?0c:       return result

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu PutInWindow(args)
[?25l[?1c
:  [?25h[?0c:       wincmd k

[?25l[?1c:  [?25h[?0c:       %d _

[?25l[?1c:  [?25h[?0c:       call append(1, a:args)

[?25l[?1c:  [?25h[?0c:^Iwincmd j

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu Log()
[?25l[?1c
:  [?25h[?0c:   $put ='----'

[?25l[?1c:  [?25h[?0c:   $put =remove(g:log,0)

[?25l[?1c:  [?25h[?0c:   $put =string(g:log)

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu! STL()
[?25l[?1c
:  [?25h[?0c:    if mode() =~? 'V'

[?25l[?1c:    [?25h[?0c:       let g:visual_stat=wordcount()

[?25l[?1c:    [?25h[?0c:    endif

[?25l[?1c:  [?25h[?0c:    return string(wordcount())

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 1: empty window"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin()
[?25l[?1c[No Name]                                                                       test_wordcount.in                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 1: empty window
[[''], {'chars': 0, 'cursor_chars': 0, 'words': 0, 'cursor_words': 0, 'bytes': 0, 'cursor_bytes': 0}][+][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 2: some words, cursor at start"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1cone two three[+][?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([1,1,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 2: some words, cursor at start
[['', 'one two three'], {'chars': 15, 'cursor_chars': 1, 'words': 3, 'cursor_words': 0, 'bytes': 15, 'cursor_bytes': 1}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 3: some words, cursor at end"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 3: some words, cursor at end
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3, 'bytes': 15, 'cursor_bytes': 14}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 4: some words, cursor at end, ve=all"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 4: some words, cursor at end, ve=all
[['', 'one two three'], {'chars': 15, 'cursor_chars': 15, 'words': 3, 'cursor_words': 3, 'bytes': 15, 'cursor_bytes': 15}][?25h[?0c[?25l[?1c


:[?25h[?0cset ve=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 5: several lines with words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['one two three', 'one two three', 'one two three'])
[?25l[?1cone two threeone two three--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([4,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 5: several lines with words
[['', 'one two three', 'one two three', 'one two three'], {'chars': 43, 'cursor_chars': 42, 'words': 9, 'cursor_words': 9, 'bytes': 43, 'cursor_bytes': 42}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 6: one line with BOM set"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1c[No Name] [+]                                                                   test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset bomb
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 2 lines, 18 characters writtenXtest        [?25h[?0c[?25l[?1c:[?25h[?0cwincmd j
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 6: one line with BOM set
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3, 'bytes': 18, 'cursor_bytes': 14}][?25h[?0c[?25l[?1c


:[?25h[?0cwincmd k
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset nobomb
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtest" 2 lines, 15 characters written   [?25h[?0c[?25l[?1c:[?25h[?0cwincmd j
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 7: one line with multibyte words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh'])
[?25l[?1cÄne M¤ne Müh[+]--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 7: one line with multibyte words
[['', 'Äne M¤ne Müh'], {'chars': 14, 'cursor_chars': 13, 'words': 3, 'cursor_words': 3, 'bytes': 17, 'cursor_bytes': 16}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 8: several lines with multibyte words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1cund raus bist dü!--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 8: several lines with multibyte words
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'cursor_chars': 31, 'words': 7, 'cursor_words': 7, 'bytes': 36, 'cursor_bytes': 35}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 9: visual mode, complete buffer"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 3985, 'words': 579, 'cursor_words': 560, 'bytes': 4153, 'cursor_bytes': 4007}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c0
[?25l[?1c[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual[?25h[?0c[?25l[?1c 
Äne M¤ne Müh 
und raus bist dü! ds': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36[?25h[?0c[?25l[?1cÄne M¤ne Mühnd raus bist dü!3 lines yankedursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1[?25h[?0c213[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 9: visual mode, complete buffer
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 10: visual mode (empty)"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4170, 'words': 606, 'cursor_words': 587, 'bytes': 4342, 'cursor_bytes': 4196}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c0
[?25l[?1c[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor[?25h[?0c213[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 10: visual mode (empty)
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_bytes': 1}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 11: visual mode, single line"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4347, 'words': 632, 'cursor_words': 613, 'bytes': 4521, 'cursor_bytes': 4377}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2
[?25l[?1c213[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 1, 'visual2[?25h[?0c[?25l[?1cÄne M¤ne Mühds': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16[?25h[?0c[?25l[?1c
Äne M¤ne Mühursor_chars': 2, 'words': 7, 'cursor_words': 1, 'bytes': 36, 'cursor_bytes': 3[?25h[?0csor_chars': 15, 'words': 7, 'cursor_words': 4, 'bytes': 36, 'cursor_bytes': 18[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 11: visual mode, single line
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^RESULT test/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 34 lines, 1905 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_wordcount = test61; then \
#	  if diff test.out test_wordcount.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_wordcount.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_wordcount.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test11.in
[?25h[?8c[?25h[?0c[?25l[?1c"test11.in" 84 lines, 3366 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for autocommands:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 48 lines, 2298 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:au! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>"))
:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
: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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" drop out when there is no gzip program
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !executable("gzip")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:au! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>"))
:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
:au! FileReadPost   *.gz   '[,']s/l/L/[?25h[?0c[?25l[?1c:[?25h[?0clet $GZIP = ""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileChangedShell * echo "caught FileChangedShell"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWritePre    *.gz   '[,']!gzip
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWritePost   *.gz   undo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of testfile/,/^end of testfile/w! Xtestfile.gz
[?25l[?1c[?25h[?0c[?25l[?1c11 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[?25h[?0c[?25l[?1c:[?25h[?0cau FileReadPost    *.gz   '[,']!gzip -d
[?25l[?1c:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
: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[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtestfile.gz                " Read and decompress the testfile
[?25l[?1c"Xtestfile.gz" [Incomplete last line] 1 line, 111 characters
[?25h[?0c[?25l[?1cstart of test.c
/*
 * Here is a new .c file
 */
end of test.c
start of testfile[?25h[?0c[?25l[?1c
:[?25h[?0c?startstart?,$w! test.out      " Write contents of this file
[?25l[?1c"test.out" [New File] 29 lines, 788 characters written[?25h[?0c[?25l[?1c:[?25h[?0cau BufNewFile      *.c    read Xtest.c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
[?25l[?1csearch hit BOTTOM, continuing at TOP"Xtest.c" [New File] 3 lines, 32 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! foo.c                       " Will load Xtest.c
[?25l[?1c"foo.c" [New File]
"Xtest.c" 3 lines, 32 characters

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau FileAppendPre   *.out  '[,']s/new/NEW/
[?25l[?1c/*
 * Here is a new .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau FileAppendPost  *.out  !cat Xtest.c >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw>>test.out                    " Append it to the output file
[?25l[?1c"test.out" 4 lines, 33 characters appended

:!cat Xtest.c >>test.out

[?25h[?0c
Press ENTER or type command to continue[?25l[?1c:[?25h[?0cau! FileAppendPre
[?25l[?1c/*
 * Here is a NEW .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" setup autocommands to decompress before reading and re-compress afterwards
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPre      *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPre      *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost     *.gz   call rename(expand("<afile>"), expand("<afile>:r"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost     *.gz   exe '!gzip ' . shellescape(expand("<afile>:r"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile.gz                " Edit compressed file
[?25l[?1c:!gzip -d 'Xtestfile.gz'

[?25h[?0c[?25l[?1c"Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters:!gzip 'Xtestfile'

[?25h[?0c[?25l[?1ccaught FileChangedShell

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw>>test.out                    " Append it to the output file
[?25l[?1c"test.out" 11 lines, 357 characters appended

:!cat Xtest.c >>test.out

[?25h[?0c
Press ENTER or type command to continue[?25l[?1c:[?25h[?0cset shelltemp                  " need temp files here
[?25l[?1cstart 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  call rename(expand("<afile>"), expand("<afile>") . "

.t")
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  exe 'silent !sed s/e/E/ ' . shellescape(expand("<afi

le>")) . ".t >" . shellescape(expand("<afile>"))
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  exe 'silent !rm ' . shellescape(expand("<afile>")) .

'.t'
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPost  *.out  '[,']s/x/X/g
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out                    " Edit the output file
[?25l[?1c"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.cstart of testfileline 2  Abcdefghijklmnopqrstuvwxyzline 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 4  Abcdefghijklmnopqrstuvwxyzline 5  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[?25h[?0c[?25l[?1c:[?25h[?0c23,$!cat
[?25l[?1c[?25h[?0c[?25l[?1c218 substitutions on 15 lines

28 lines filtered

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c23,$s/\r$//                 " remove CR for when sed adds them
[?25l[?1cE486: Pattern not found: \r$
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>

"))
[?25l[?1cstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE 5  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX[?25h[?0c[?25l[?1c
:[?25h[?0cau  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau! FileReadPost   *.gz   '[,']s/l/L/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$r Xtestfile.gz             " Read compressed file
[?25l[?1c[?25h[?0c[?25l[?1c"Xtestfile.gz" 11 lines, 357 characters

11 substitutions on 11 lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw                           " write it, after filtering
[?25l[?1c"test.out"61 lines, 1599 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau!             " remove all autocommands
[?25l[?1cE216: No such group or event: " remove all autocommands

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce               " Edit test.out again
[?25l[?1c"test.out"61 lines, 1599 charactersstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"test.out" 61 lines, 1599 characters[?25h[?0c[?25l[?1c:[?25h[?0cset nobin ff&   " use the default fileformat for writing
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 61 lines, 1599 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test11 = test61; then \
#	  if diff test.out test11.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test11.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test11.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test52.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for reading and writing files with conversion for Win32.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 57 lines, 1333 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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

[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make this a dummy test for non-Win32 systems
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("win32") | e! test.ok | wq! test.out | endif
[?25l[?1c"test.ok" 18 lines, 1374 characters

"test.out" [New File] 18 lines, 1374 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test52 = test61; then \
#	  if diff test.out test52.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test52.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test52.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test85.failed test.ok test.out X* viminfo
cp test85.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test85.in
[?25h[?8c[?25h[?0c[?25l[?1c"test85.in" 85 lines, 1868 charactersTest for Lua interface and luaeval() function

STARTTEST
:so small.vim
:so lua.vim
:set nocompatible viminfo+=nviminfo
:lua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
:lua h = vim.dict(); h.list = l
:call garbagecollect()
/^1
:" change buffer contents
:lua curbuf = vim.buffer()
:lua curline = vim.eval"line('.')"
:lua curbuf[curline] = "1 changed line 1"
:" scalar test
:let tmp_string = luaeval('"string"')
:let tmp_1000 = luaeval('1000')
:if printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
:let scalar_res = "OK"
:else
:let scalar_res = "FAILED"
:endif
:call append(search("^1"), "scalar test " . scalar_res)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Lua interface and luaeval() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 77 lines, 1775 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")
:lua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
:lua d[4] = d[0]
:lua d[5] = d[1]
:lua d[6] = d[2]
:lua d[7] = d[3]
:lua d[3] = nil
:lua d[2] = nil
:lua d[1] = nil
:lua d[0] = nil
:lua d = nil
:$put =string(d)

:?^1?,$w! test.out
:qa!
ENDTEST

1 line 1
2 line 2
3 line 3[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso lua.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua h = vim.dict(); h.list = l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect()
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" change buffer contents
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua curbuf = vim.buffer()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua curline = vim.eval"line('.')"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua curbuf[curline] = "1 changed line 1"
[?25l[?1cchanged line 1
[?25h[?0c[?25l[?1c:[?25h[?0c" scalar test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tmp_string = luaeval('"string"')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tmp_1000 = luaeval('1000')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
[?25l[?1c
:  [?25h[?0c:let scalar_res = "OK"

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:let scalar_res = "FAILED"

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")[?25h[?0c[?25l[?1c


:[?25h[?0ccall append(search("^1"), "scalar test " . scalar_res)
[?25l[?1cscalar test OK
2 line 2[?25h[?0c[?25l[?1c:[?25h[?0c" dictionary containing a list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tmp = luaeval("h").list[1]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^2/put =tmp
[?25l[?1c
dictionary with list OK[?25h[?0c[?25l[?1c
:[?25h[?0c" circular list (at the same time test lists containing lists)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet l2 = luaeval("h").list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif l2[2] == l2
[?25l[?1c
:  [?25h[?0c:let res = "OK"

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:let res = "FAILED"

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")
:lua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")[?25h[?0c[?25l[?1c
:[?25h[?0ccall setline(search("^3"), "circular test " . res)
[?25l[?1c
circular test OK[?25h[?0c[?25l[?1c
:[?25h[?0clet l = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l = vim.eval("l")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add(123)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add("abc")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add(vim.eval("[1, 2, 3]"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert(123)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert("abc")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert(vim.eval("[1, 2, 3]"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[0] = l[0]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[1] = l[1]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = l[2]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[3] = l[3]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[0] = 123
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[1] = "abc"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = vim.eval("[1, 2, 3]")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[3] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[1] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[0] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(l)
[?25l[?1c
[123.0, 'abc', [1, 2, 3], {'a': 1, 'b': 2, 'c': 3}][?25h[?0c[?25l[?1c
:[?25h[?0clet d = {}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d = vim.eval("d")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[0] = 123
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[1] = "abc"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[2] = vim.eval("[1, 2, 3]")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[4] = d[0]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[5] = d[1]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[6] = d[2]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[7] = d[3]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[3] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[2] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[1] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[0] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(d)
[?25l[?1c
{'4': 123.0, '5': 'abc', '6': [1, 2, 3], '7': {'a': 1, 'b': 2, 'c': 3}}[?25h[?0c[?25l[?1c
:[?25h[?0c?^1?,$w! test.out
[?25l[?1c"test.out" [New] 7L, 206C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test85 = test61; then \
#	  if diff test.out test85.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test85.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test85.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test86.failed test.ok test.out X* viminfo
cp test86.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test86.in
[?25h[?8c[?25h[?0c[?25l[?1c"test86.in" 1711 lines, 48481 charactersTests for various python features.     vim: set ft=vim :

NOTE: This will cause errors when run under valgrind.
This would require recompiling Python with:
  ./configure --without-pymalloc
See http://svn.python.org/view/python/trunk/Misc/README.valgrind?view=markup

STARTTEST
:so small.vim
:set encoding=latin1
:set noswapfile
:if !has('python') | e! test.ok | wq! test.out | endif
:lang C
:fun Test()
:py import vim
:py cb = vim.current.buffer
:let l = []
:py l=vim.bindeval('l')
:py f=vim.bindeval('function("strlen")')
:" Extending List directly with different types
:py l.extend([1, "as'd", [1, 2, f, {'a': 1}]])
:$put =string(l)
:$put =string(l[-1])[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for various python features.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1700 lines, 48188 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:   endif
:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=latin1
[?25l[?1c:   endif
:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c[?25l[?1c

:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('python') | e! test.ok | wq! test.out | endif
[?25l[?1c"test.ok" 1445 lines, 67439 characters

"test.out" [New File] 1445 lines, 67439 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test86 = test61; then \
#	  if diff test.out test86.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test86.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test86.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test87.failed test.ok test.out X* viminfo
cp test87.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test87.in
[?25h[?8c[?25h[?0c[?25l[?1c"test87.in" 1707 lines, 49069 charactersTests for various python features.     vim: set ft=vim :

STARTTEST
:so small.vim
:set noswapfile
:if !has('python3') | e! test.ok | wq! test.out | endif
:lang C
:fun Test()
:py3 import vim
:py3 cb = vim.current.buffer
:let l = []
:py3 l=vim.bindeval('l')
:py3 f=vim.bindeval('function("strlen")')
:" Extending List directly with different types
:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]
:$put =string(l)
:$put =string(l[-1])
:try
:  $put =string(l[-4])
:catch
:  $put =v:exception[:13]
:endtry
:" List assignment[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for various python features.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1701 lines, 48985 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:/^start:/,$w! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('python3') | e! test.ok | wq! test.out | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun Test()
[?25l[?1c
:  [?25h[?0c:py3 import vim

[?25l[?1c:  [?25h[?0c:py3 cb = vim.current.buffer

[?25l[?1c:  [?25h[?0c:let l = []

[?25l[?1c:  [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:  [?25h[?0c:py3 f=vim.bindeval('function("strlen")')

[?25l[?1c:  [?25h[?0c:" Extending List directly with different types

[?25l[?1c:  [?25h[?0c:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:$put =string(l[-1])

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =string(l[-4])

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:13]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:" List assignment

[?25l[?1c:  [?25h[?0c:py3 l[0]=0

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:py3 l[-2]=f

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Extending Dictionary directly with different types

[?25l[?1c:  [?25h[?0c:let d = {}

[?25l[?1c:  [?25h[?0c:fun d.f()

[?25l[?1c:    [?25h[?0c:  return 1

[?25l[?1c:    [?25h[?0c:endfun

[?25l[?1c:    [?25h[?0cpy3 << EOF

[?25l[?1c:    [?25h[?0cd=vim.bindeval('d')

[?25l[?1c:    [?25h[?0cd['1']='asd'

[?25l[?1c:    [?25h[?0cd.update()  # Must not do anything, including throwing errors

[?25l[?1c:    [?25h[?0cd.update(b=[1, 2, f])

[?25l[?1c:    [?25h[?0cd.update((('-1', {'a': 1}),))

[?25l[?1c:    [?25h[?0cd.update({'0': -1})

[?25l[?1c:    [?25h[?0cdk = d.keys()

[?25l[?1c:    [?25h[?0cdv = d.values()

[?25l[?1c:    [?25h[?0cdi = d.items()

[?25l[?1c:    [?25h[?0cdk.sort(key=repr)

[?25l[?1c:    [?25h[?0cdv.sort(key=repr)

[?25l[?1c:    [?25h[?0cdi.sort(key=repr)

[?25l[?1c:    [?25h[?0cEOF

[?25l[?1c:    [?25h[?0c:$put =py3eval('d[''f''](self={})')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(dk)')

[?25l[?1c:    [?25h[?0c:$put =substitute(py3eval('repr(dv)'),'0x\x\+','','g')

[?25l[?1c:    [?25h[?0c:$put =substitute(py3eval('repr(di)'),'0x\x\+','','g')

[?25l[?1c:    [?25h[?0c:for [key, Val] in sort(items(d))

[?25l[?1c:      [?25h[?0c:  $put =string(key) . ' : ' . string(Val)

[?25l[?1c:      [?25h[?0c:  unlet key Val

[?25l[?1c:      [?25h[?0c:endfor

[?25l[?1c:    [?25h[?0c:py3 del dk

[?25l[?1c:    [?25h[?0c:py3 del di

[?25l[?1c:    [?25h[?0c:py3 del dv

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" removing items with del

[?25l[?1c:    [?25h[?0c:py3 del l[2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:try

[?25l[?1c:      [?25h[?0c:   py3 del l[:3]

[?25l[?1c:      [?25h[?0c:   py3 del l[1:]

[?25l[?1c:      [?25h[?0c:catch

[?25l[?1c:      [?25h[?0c:   $put =v:exception

[?25l[?1c:      [?25h[?0c:endtry

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:py3 del d['-1']

[?25l[?1c:    [?25h[?0c:py3 del d['f']

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.get(''b'', 1)'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.pop(''b'')'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.get(''b'', 1)'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.has_key(''0''))')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.has_key(''1''))')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(''0'' in d)')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(''1'' in d)')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(list(iter(d)))')

[?25l[?1c:    [?25h[?0c:$put =string(d)

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.popitem())')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.get(''0''))')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(list(iter(d)))')

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" removing items out of range: silently skip items that don't exist

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:" The following two ranges delete nothing as they match empty list:

[?25l[?1c:    [?25h[?0c:py3 del l[2:1]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[2:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[2:3]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:4]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:5]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:6]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:" The following two ranges delete nothing as they match empty list:

[?25l[?1c:    [?25h[?0c:py3 del l[-1:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[-2:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[-3:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[-4:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[-5:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[-6:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[::2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[3:0:-2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:4:-2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" Slice assignment to a list

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[0:0]=['a']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[1:2]=['b']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:4]=['c']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[4:4]=['d']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[-1:2]=['e']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[-10:2]=['f']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:-10]=['g']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = []

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[0:0]=['h']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:6:2] = [10, 20]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[6:2:-2] = [10, 20]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[6:2] = ()

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[6:2:1] = ()

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:2:1] = ()

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" Locked variables

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:lockvar! l

[?25l[?1c:    [?25h[?0cpy3 << EOF

[?25l[?1c:    [?25h[?0cdef emsg(ei):

[?25l[?1c:    [?25h[?0c    return ei[0].__name__ + ':' + repr(ei[1].args)

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0ctry:

[?25l[?1c:    [?25h[?0c    l[2]='i'

[?25l[?1c:    [?25h[?0cexcept vim.error:

[?25l[?1c:    [?25h[?0c    cb.append('l[2] threw vim.error: ' + emsg(sys.exc_info()))

[?25l[?1c:    [?25h[?0cEOF

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:unlockvar! l

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" Function calls

[?25l[?1c:    [?25h[?0cpy3 << EOF

[?25l[?1c:    [?25h[?0cimport sys

[?25l[?1c:    [?25h[?0cimport re

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0cpy33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional

argument but (\d+) were given$')

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0cdef ee(expr, g=globals(), l=locals()):

[?25l[?1c:    [?25h[?0c    cb = vim.current.buffer

[?25l[?1c:    [?25h[?0c    try:

[?25l[?1c:    [?25h[?0c        try:

[?25l[?1c:    [?25h[?0c            exec(expr, g, l)

[?25l[?1c:    [?25h[?0c        except Exception as e:

[?25l[?1c:    [?25h[?0c            if sys.version_info >= (3, 3) and e.__class__ is AttributeErro

r and str(e).find('has no attribute')>=0 and not str(e).startswith("'vim."):

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + repr((e.__class__, AttributeError(s

tr(e)[str(e).rfind(" '") + 2:-1]))))

[?25l[?1c:    [?25h[?0c            elif sys.version_info >= (3, 3) and e.__class__ is ImportError

and str(e).find('No module named \'') >= 0:

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + repr((e.__class__, ImportError(str(

e).replace("'", '')))))

[?25l[?1c:    [?25h[?0c            elif sys.version_info >= (3, 3) and e.__class__ is TypeError:

[?25l[?1c:    [?25h[?0c                m = py33_type_error_pattern.search(str(e))

[?25l[?1c:    [?25h[?0c                if m:

[?25l[?1c:    [?25h[?0c                    msg = '__call__() takes exactly {0} positional argumen

t ({1} given)'.format(m.group(1), m.group(2))

[?25l[?1c:    [?25h[?0c                    cb.append(expr + ':' + repr((e.__class__, TypeError(ms

g))))

[?25l[?1c:    [?25h[?0c                else:

[?25l[?1c:    [?25h[?0c                    cb.append(expr + ':' + repr((e.__class__, e)))

[?25l[?1c:    [?25h[?0c            elif sys.version_info >= (3, 5) and e.__class__ is ValueError 

and str(e) == 'embedded null byte':

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + repr((TypeError, TypeError('expecte

d bytes with no null'))))

[?25l[?1c:    [?25h[?0c            else:

[?25l[?1c:    [?25h[?0c                msg = repr((e.__class__, e))

[?25l[?1c:    [?25h[?0c                # Some Python versions say can't, others cannot.

[?25l[?1c:    [?25h[?0c                if msg.find('can\'t') > -1:

[?25l[?1c:    [?25h[?0c                    msg = msg.replace('can\'t', 'cannot')

[?25l[?1c:    [?25h[?0c                # Some Python versions use single quote, some double quote

[?25l[?1c:    [?25h[?0c                if msg.find('"cannot ') > -1:

[?25l[?1c:    [?25h[?0c                    msg = msg.replace('"cannot ', '\'cannot ')

[?25l[?1c:    [?25h[?0c                if msg.find(' attributes"') > -1:

[?25l[?1c:    [?25h[?0c                    msg = msg.replace(' attributes"', ' attributes\'')

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + msg)

[?25l[?1c:    [?25h[?0c        else:

[?25l[?1c:    [?25h[?0c            cb.append(expr + ':NOT FAILED')

[?25l[?1c:    [?25h[?0c    except Exception as e:

[?25l[?1c:    [?25h[?0c        cb.append(expr + '::' + repr((e.__class__, e)))

[?25l[?1c:    [?25h[?0cEOF

[?25l[?1c:    [?25h[?0c:fun New(...)

[?25l[?1c:      [?25h[?0c:   return ['NewStart']+a:000+['NewEnd']

[?25l[?1c:      [?25h[?0c:endfun

[?25l[?1c:      [?25h[?0c:fun DictNew(...) dict

[?25l[?1c:[?25h[?0c:   return ['DictNewStart']+a:000+['DictNewEnd', self]

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:let l=[function('New'), function('DictNew')]

[?25l[?1c:[?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0c:py3 l.extend(list(l[0](1, 2, 3)))

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:py3 l.extend(list(l[1](1, 2, 3, self={'a': 'b'})))

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:py3 l+=[l[0].name]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:py3 ee('l[1](1, 2, 3)')

[?25l[?1c:[?25h[?0c:py3 f=l[0]

[?25l[?1c:[?25h[?0c:delfunction New

[?25l[?1c:[?25h[?0c:py3 ee('f(1, 2, 3)')

[?25l[?1c:[?25h[?0c:if has('float')

[?25l[?1c:[?25h[?0c:   let l=[0.0]

[?25l[?1c:[?25h[?0c:   py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0c:   py3 l.extend([0.0])

[?25l[?1c:[?25h[?0c:   $put =string(l)

[?25l[?1c:[?25h[?0c:else

[?25l[?1c:[?25h[?0c:   $put ='[0.0, 0.0]'

[?25l[?1c:[?25h[?0c:endif

[?25l[?1c:[?25h[?0c:let messages=[]

[?25l[?1c:[?25h[?0c:delfunction DictNew

[?25l[?1c:[?25h[?0cpy3 <<EOF

[?25l[?1c:[?25h[?0cimport sys

[?25l[?1c:[?25h[?0cd=vim.bindeval('{}')

[?25l[?1c:[?25h[?0cm=vim.bindeval('messages')

[?25l[?1c:[?25h[?0cdef em(expr, g=globals(), l=locals()):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        exec(expr, g, l)

[?25l[?1c:[?25h[?0c    except Exception as e:

[?25l[?1c:[?25h[?0c        if sys.version_info >= (3, 5) and e.__class__ is ValueError an

d str(e) == 'embedded null byte':

[?25l[?1c:[?25h[?0c            m.extend([TypeError.__name__])

[?25l[?1c:[?25h[?0c        else:

[?25l[?1c:[?25h[?0c            m.extend([e.__class__.__name__])

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cem('d["abc1"]')

[?25l[?1c:[?25h[?0cem('d["abc1"]="\\0"')

[?25l[?1c:[?25h[?0cem('d["abc1"]=vim')

[?25l[?1c:[?25h[?0cem('d[""]=1')

[?25l[?1c:[?25h[?0cem('d["a\\0b"]=1')

[?25l[?1c:[?25h[?0cem('d[b"a\\0b"]=1')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cem('d.pop("abc1")')

[?25l[?1c:[?25h[?0cem('d.popitem()')

[?25l[?1c:[?25h[?0cdel em

[?25l[?1c:[?25h[?0cdel m

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:$put =messages

[?25l[?1c:[?25h[?0c:unlet messages

[?25l[?1c:[?25h[?0c:" locked and scope attributes

[?25l[?1c:[?25h[?0c:let d={} | let dl={} | lockvar dl

[?25l[?1c:[?25h[?0c:for s in split("d dl v: g:")

[?25l[?1c:[?25h[?0c:    let name=tr(s, ':', 's')

[?25l[?1c:[?25h[?0c:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l[?1c:[?25h[?0c:    let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".py3e

val(name.".".v:val)'), ';')

[?25l[?1c:[?25h[?0c:    $put =toput

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:silent! let d.abc2=1

[?25l[?1c:[?25h[?0c:silent! let dl.abc3=1

[?25l[?1c:[?25h[?0c:py3 d.locked=True

[?25l[?1c:[?25h[?0c:py3 dl.locked=False

[?25l[?1c:[?25h[?0c:silent! let d.def=1

[?25l[?1c:[?25h[?0c:silent! let dl.def=1

[?25l[?1c:[?25h[?0c:put ='d:'.string(d)

[?25l[?1c:[?25h[?0c:put ='dl:'.string(dl)

[?25l[?1c:[?25h[?0c:unlet d dl

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:let l=[] | let ll=[] | lockvar ll

[?25l[?1c:[?25h[?0c:for s in split("l ll")

[?25l[?1c:[?25h[?0c:    let name=tr(s, ':', 's')

[?25l[?1c:[?25h[?0c:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l[?1c:[?25h[?0c:    let toput=s.' : locked:'.py3eval(name.'.locked')

[?25l[?1c:[?25h[?0c:    $put =toput

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:silent! call extend(l, [0])

[?25l[?1c:[?25h[?0c:silent! call extend(ll, [0])

[?25l[?1c:[?25h[?0c:py3 l.locked=True

[?25l[?1c:[?25h[?0c:py3 ll.locked=False

[?25l[?1c:[?25h[?0c:silent! call extend(l, [1])

[?25l[?1c:[?25h[?0c:silent! call extend(ll, [1])

[?25l[?1c:[?25h[?0c:put ='l:'.string(l)

[?25l[?1c:[?25h[?0c:put ='ll:'.string(ll)

[?25l[?1c:[?25h[?0c:unlet l ll

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" py3eval()

[?25l[?1c:[?25h[?0c:let l=py3eval('[0, 1, 2]')

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:let d=py3eval('{"a": "b", "c": 1, "d": ["e"]}')

[?25l[?1c:[?25h[?0c:$put =sort(items(d))

[?25l[?1c:[?25h[?0c:let v:errmsg = ''

[?25l[?1c:[?25h[?0c:$put ='py3eval(\"None\") = ' . py3eval('None') . v:errmsg

[?25l[?1c:[?25h[?0c:if has('float')

[?25l[?1c:[?25h[?0c:   let f=py3eval('0.0')

[?25l[?1c:[?25h[?0c:   $put =string(f)

[?25l[?1c:[?25h[?0c:else

[?25l[?1c:[?25h[?0c:   $put ='0.0'

[?25l[?1c:[?25h[?0c:endif

[?25l[?1c:[?25h[?0c:" Invalid values:

[?25l[?1c:[?25h[?0c:for e in ['"\0"', '{"\0": 1}', 'undefined_name', 'vim']

[?25l[?1c:[?25h[?0c:   try

[?25l[?1c:[?25h[?0c:      let v=py3eval(e)

[?25l[?1c:[?25h[?0c:   catch

[?25l[?1c:[?25h[?0c:      let toput=e.":\t".v:exception[:13]

[?25l[?1c:[?25h[?0c:      $put =toput

[?25l[?1c:[?25h[?0c:   endtry

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" threading

[?25l[?1c:[?25h[?0c:let l = [0]

[?25l[?1c:[?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0cpy3 <<EOF

[?25l[?1c:[?25h[?0cimport threading

[?25l[?1c:[?25h[?0cimport time

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass T(threading.Thread):

[?25l[?1c:[?25h[?0c    def __init__(self):

[?25l[?1c:[?25h[?0c        threading.Thread.__init__(self)

[?25l[?1c:[?25h[?0c        self.t = 0

[?25l[?1c:[?25h[?0c        self.running = True

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def run(self):

[?25l[?1c:[?25h[?0c        while self.running:

[?25l[?1c:[?25h[?0c            self.t += 1

[?25l[?1c:[?25h[?0c            time.sleep(0.1)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ct = T()

[?25l[?1c:[?25h[?0cdel T

[?25l[?1c:[?25h[?0ct.start()

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:sleep 1

[?25l[?1c:[?25h[?0c:py3 t.running = False

[?25l[?1c:[?25h[?0c:py3 t.join()

[?25l[?1c:[?25h[?0c:" Check if the background thread is working.  Count should be 10, but

on a

[?25l[?1c:[?25h[?0c:" busy system (AppVeyor) it can be much lower.

[?25l[?1c:[?25h[?0c:py3 l[0] = t.t > 4

[?25l[?1c:[?25h[?0c:py3 del time

[?25l[?1c:[?25h[?0c:py3 del threading

[?25l[?1c:[?25h[?0c:py3 del t

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" settrace

[?25l[?1c:[?25h[?0c:let l = []

[?25l[?1c:[?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0cpy3 <<EOF

[?25l[?1c:[?25h[?0cimport sys

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef traceit(frame, event, arg):

[?25l[?1c:[?25h[?0c    global l

[?25l[?1c:[?25h[?0c    if event == "line":

[?25l[?1c:[?25h[?0c        l += [frame.f_lineno]

[?25l[?1c:[?25h[?0c    return traceit

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef trace_main():

[?25l[?1c:[?25h[?0c    for i in range(5):

[?25l[?1c:[?25h[?0c        pass

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:py3 sys.settrace(traceit)

[?25l[?1c:[?25h[?0c:py3 trace_main()

[?25l[?1c:[?25h[?0c:py3 sys.settrace(None)

[?25l[?1c:[?25h[?0c:py3 del traceit

[?25l[?1c:[?25h[?0c:py3 del trace_main

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Slice

[?25l[?1c:[?25h[?0c:py3 ll = vim.bindeval('[0, 1, 2, 3, 4, 5]')

[?25l[?1c:[?25h[?0c:py3 l = ll[:4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[2:]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[:-4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-2:]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[2:4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[4:2]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-4:-2]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-2:-4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[:]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[0:6]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-10:10]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[4:2:-1]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[::2]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[4:2:1]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 del l

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Vars

[?25l[?1c:[?25h[?0c:let g:foo = 'bac'

[?25l[?1c:[?25h[?0c:let w:abc3 = 'def'

[?25l[?1c:[?25h[?0c:let b:baz = 'bar'

[?25l[?1c:[?25h[?0c:let t:bar = 'jkl'

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  throw "Abc"

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  put =py3eval('vim.vvars[''exception'']')

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:put =py3eval('vim.vars[''foo'']')

[?25l[?1c:[?25h[?0c:put =py3eval('vim.current.window.vars[''abc3'']')

[?25l[?1c:[?25h[?0c:put =py3eval('vim.current.buffer.vars[''baz'']')

[?25l[?1c:[?25h[?0c:put =py3eval('vim.current.tabpage.vars[''bar'']')

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Options

[?25l[?1c:[?25h[?0c:" paste:          boolean, global

[?25l[?1c:[?25h[?0c:" previewheight   number,  global

[?25l[?1c:[?25h[?0c:" operatorfunc:   string,  global

[?25l[?1c:[?25h[?0c:" number:         boolean, window-local

[?25l[?1c:[?25h[?0c:" numberwidth:    number,  window-local

[?25l[?1c:[?25h[?0c:" colorcolumn:    string,  window-local

[?25l[?1c:[?25h[?0c:" statusline:     string,  window-local/global

[?25l[?1c:[?25h[?0c:" autoindent:     boolean, buffer-local

[?25l[?1c:[?25h[?0c:" shiftwidth:     number,  buffer-local

[?25l[?1c:[?25h[?0c:" omnifunc:       string,  buffer-local

[?25l[?1c:[?25h[?0c:" preserveindent: boolean, buffer-local/global

[?25l[?1c:[?25h[?0c:" path:           string,  buffer-local/global

[?25l[?1c:[?25h[?0c:let g:bufs=[bufnr('%')]

[?25l[?1c:[?25h[?0c:new

[?25l[?1c:[?25h[?0c:let g:bufs+=[bufnr('%')]

[?25l[?1c:[?25h[?0c:vnew

[?25l[?1c:[?25h[?0c:let g:bufs+=[bufnr('%')]

[?25l[?1c:[?25h[?0c:wincmd j

[?25l[?1c:[?25h[?0c:vnew

[?25l[?1c:[?25h[?0c:let g:bufs+=[bufnr('%')]

[?25l[?1c:[?25h[?0c:wincmd l

[?25l[?1c:[?25h[?0c:fun RecVars(opt)

[?25l[?1c:[?25h[?0c:  let gval =string(eval('&g:'.a:opt))

[?25l[?1c:[?25h[?0c:  let wvals=join(map(range(1, 4),  'v:val.":".string(getwinvar(v:va

l, "&".a:opt))'))

[?25l[?1c:[?25h[?0c:  let bvals=join(map(copy(g:bufs), 'v:val.":".string(getbufvar(v:va

l, "&".a:opt))'))

[?25l[?1c:[?25h[?0c:  put ='  G: '.gval

[?25l[?1c:[?25h[?0c:  put ='  W: '.wvals

[?25l[?1c:[?25h[?0c:  put ='  B: '.wvals

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef e(s, g=globals(), l=locals()):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        exec(s, g, l)

[?25l[?1c:[?25h[?0c    except Exception as e:

[?25l[?1c:[?25h[?0c        vim.command('return ' + repr(e.__class__.__name__))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef ev(s, g=globals(), l=locals()):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        return eval(s, g, l)

[?25l[?1c:[?25h[?0c    except Exception as e:

[?25l[?1c:[?25h[?0c        vim.command('let exc=' + repr(e.__class__.__name__))

[?25l[?1c:[?25h[?0c        return 0

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:fun E(s)

[?25l[?1c:[?25h[?0c:   python3 e(vim.eval('a:s'))

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:fun Ev(s)

[?25l[?1c:[?25h[?0c:   let r=py3eval('ev(vim.eval("a:s"))')

[?25l[?1c:[?25h[?0c:   if exists('exc')

[?25l[?1c:[?25h[?0c:       throw exc

[?25l[?1c:[?25h[?0c:   endif

[?25l[?1c:[?25h[?0c:   return r

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:py3 gopts1=vim.options

[?25l[?1c:[?25h[?0c:py3 wopts1=vim.windows[2].options

[?25l[?1c:[?25h[?0c:py3 wopts2=vim.windows[0].options

[?25l[?1c:[?25h[?0c:py3 wopts3=vim.windows[1].options

[?25l[?1c:[?25h[?0c:py3 bopts1=vim.buffers[vim.bindeval("g:bufs")[2]].options

[?25l[?1c:[?25h[?0c:py3 bopts2=vim.buffers[vim.bindeval("g:bufs")[1]].options

[?25l[?1c:[?25h[?0c:py3 bopts3=vim.buffers[vim.bindeval("g:bufs")[0]].options

[?25l[?1c:[?25h[?0c:$put ='wopts iters equal: '.py3eval('list(wopts1) == list(wopts

2)')

[?25l[?1c:[?25h[?0c:$put ='bopts iters equal: '.py3eval('list(bopts1) == list(bopts

2)')

[?25l[?1c:[?25h[?0c:py3 gset=set(iter(gopts1))

[?25l[?1c:[?25h[?0c:py3 wset=set(iter(wopts1))

[?25l[?1c:[?25h[?0c:py3 bset=set(iter(bopts1))

[?25l[?1c:[?25h[?0c:set path=.,..,,

[?25l[?1c:[?25h[?0c:let lst=[]

[?25l[?1c:[?25h[?0c:let lst+=[['paste',          1,     0,     1,     2,      1,   

1,      0    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['previewheight',  5,     1,     6,     'a',    0,   

1,      0    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['operatorfunc',   'A',   'B',   'C',   2,      0,   

1,      0    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['number',         0,     1,     1,     0,      1,   

0,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['numberwidth',    2,     3,     5,     -100,   0,   

0,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['colorcolumn',    '+1',  '+2',  '+3',  'abc4',  0,  

 0,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['statusline',     '1',   '2',   '4',   0,      0,   

1,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['autoindent',     0,     1,     1,     2,      1,   

0,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['shiftwidth',     0,     2,     1,     3,      0,   

0,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['omnifunc',       'A',   'B',   'C',   1,      0,   

0,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['preserveindent', 0,     1,     1,     2,      1,   

1,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['path',           '.,,', ',,',  '.',   0,      0,   

1,      2    ]]

[?25l[?1c:[?25h[?0c:for       [oname,            oval1, oval2, oval3, invval, bool,

global, local] in lst

[?25l[?1c:[?25h[?0c:   py3 oname=vim.eval('oname')

[?25l[?1c:[?25h[?0c:   py3 oval1=vim.bindeval('oval1')

[?25l[?1c:[?25h[?0c:   py3 oval2=vim.bindeval('oval2')

[?25l[?1c:[?25h[?0c:   py3 oval3=vim.bindeval('oval3')

[?25l[?1c:[?25h[?0c:   if invval is 0 || invval is 1

[?25l[?1c:[?25h[?0c:       py3 invval=bool(vim.bindeval('invval'))

[?25l[?1c:[?25h[?0c:   else

[?25l[?1c:[?25h[?0c:       py3 invval=vim.bindeval('invval')

[?25l[?1c:[?25h[?0c:   endif

[?25l[?1c:[?25h[?0c:   if bool

[?25l[?1c:[?25h[?0c:       py3 oval1=bool(oval1)

[?25l[?1c:[?25h[?0c:       py3 oval2=bool(oval2)

[?25l[?1c:[?25h[?0c:       py3 oval3=bool(oval3)

[?25l[?1c:[?25h[?0c:   endif

[?25l[?1c:[?25h[?0c:   put ='>>> '.oname

[?25l[?1c:[?25h[?0c:   $put ='  g/w/b:'.py3eval('oname in gset').'/'.py3eval('ona

me in wset').'/'.py3eval('oname in bset')

[?25l[?1c:[?25h[?0c:   $put ='  g/w/b (in):'.py3eval('oname in gopts1').'/'.py3ev

al('oname in wopts1').'/'.py3eval('oname in bopts1')

[?25l[?1c:[?25h[?0c:   for v in ['gopts1', 'wopts1', 'bopts1']

[?25l[?1c:[?25h[?0c:       try

[?25l[?1c:[?25h[?0c:           put ='  p/'.v.': '.Ev('repr('.v.'['''.oname.''

'])')

[?25l[?1c:[?25h[?0c:       catch

[?25l[?1c:[?25h[?0c:           put ='  p/'.v.'! '.v:exception

[?25l[?1c:[?25h[?0c:       endtry

[?25l[?1c:[?25h[?0c:       let r=E(v.'['''.oname.''']=invval')

[?25l[?1c:[?25h[?0c:       if r isnot 0

[?25l[?1c:[?25h[?0c:           put ='  inv: '.string(invval).'! '.r

[?25l[?1c:[?25h[?0c:       endif

[?25l[?1c:[?25h[?0c:       for vv in (v is# 'gopts1' ? [v] : [v, v[:-2].'2', v[

:-2].'3'])

[?25l[?1c:[?25h[?0c:           let val=substitute(vv, '^.opts', 'oval', '')

[?25l[?1c:[?25h[?0c:           let r=E(vv.'['''.oname.''']='.val)

[?25l[?1c:[?25h[?0c:           if r isnot 0

[?25l[?1c:[?25h[?0c:               put ='  '.vv.'! '.r

[?25l[?1c:[?25h[?0c:           endif

[?25l[?1c:[?25h[?0c:       endfor

[?25l[?1c:[?25h[?0c:   endfor

[?25l[?1c:[?25h[?0c:   call RecVars(oname)

[?25l[?1c:[?25h[?0c:   for v in ['wopts3', 'bopts3']

[?25l[?1c:[?25h[?0c:       let r=E('del '.v.'["'.oname.'"]')

[?25l[?1c:[?25h[?0c:       if r isnot 0

[?25l[?1c:[?25h[?0c:           put ='  del '.v.'! '.r

[?25l[?1c:[?25h[?0c:       endif

[?25l[?1c:[?25h[?0c:   endfor

[?25l[?1c:[?25h[?0c:   call RecVars(oname)

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:delfunction RecVars

[?25l[?1c:[?25h[?0c:delfunction E

[?25l[?1c:[?25h[?0c:delfunction Ev

[?25l[?1c:[?25h[?0c:py3 del ev

[?25l[?1c:[?25h[?0c:py3 del e

[?25l[?1c:[?25h[?0c:only

[?25l[?1c:[?25h[?0c:for buf in g:bufs[1:]

[?25l[?1c:[?25h[?0c:   execute 'bwipeout!' buf

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:py3 del gopts1

[?25l[?1c:[?25h[?0c:py3 del wopts1

[?25l[?1c:[?25h[?0c:py3 del wopts2

[?25l[?1c:[?25h[?0c:py3 del wopts3

[?25l[?1c:[?25h[?0c:py3 del bopts1

[?25l[?1c:[?25h[?0c:py3 del bopts2

[?25l[?1c:[?25h[?0c:py3 del bopts3

[?25l[?1c:[?25h[?0c:py3 del oval1

[?25l[?1c:[?25h[?0c:py3 del oval2

[?25l[?1c:[?25h[?0c:py3 del oval3

[?25l[?1c:[?25h[?0c:py3 del oname

[?25l[?1c:[?25h[?0c:py3 del invval

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test buffer object

[?25l[?1c:[?25h[?0c:vnew

[?25l[?1c:[?25h[?0c:put ='First line'

[?25l[?1c:[?25h[?0c:put ='Second line'

[?25l[?1c:[?25h[?0c:put ='Third line'

[?25l[?1c:[?25h[?0c:1 delete _

[?25l[?1c:[?25h[?0c:py3 b=vim.current.buffer

[?25l[?1c:[?25h[?0c:wincmd w

[?25l[?1c:[?25h[?0c:mark a

[?25l[?1c:[?25h[?0c:augroup BUFS

[?25l[?1c:[?25h[?0c:   autocmd BufFilePost * python3 cb.append(vim.eval('expand("<a

buf>")') + ':BufFilePost:' + vim.eval('bufnr("%")'))

[?25l[?1c:[?25h[?0c:   autocmd BufFilePre * python3 cb.append(vim.eval('expand("<ab

uf>")') + ':BufFilePre:' + vim.eval('bufnr("%")'))

[?25l[?1c:[?25h[?0c:augroup END

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0c# Tests BufferAppend and BufferItem

[?25l[?1c:[?25h[?0ccb.append(b[0])

[?25l[?1c:[?25h[?0c# Tests BufferSlice and BufferAssSlice

[?25l[?1c:[?25h[?0ccb.append('abc5') # Will be overwritten

[?25l[?1c:[?25h[?0ccb[-1:] = b[:-2]

[?25l[?1c:[?25h[?0c# Test BufferLength and BufferAssSlice

[?25l[?1c:[?25h[?0ccb.append('def') # Will not be overwritten

[?25l[?1c:[?25h[?0ccb[len(cb):] = b[:]

[?25l[?1c:[?25h[?0c# Test BufferAssItem and BufferMark

[?25l[?1c:[?25h[?0ccb.append('ghi') # Will be overwritten

[?25l[?1c:[?25h[?0ccb[-1] = repr((len(cb) - cb.mark('a')[0], cb.mark('a')[1]))

[?25l[?1c:[?25h[?0c# Test BufferRepr

[?25l[?1c:[?25h[?0ccb.append(repr(cb) + repr(b))

[?25l[?1c:[?25h[?0c# Modify foreign buffer

[?25l[?1c:[?25h[?0cb.append('foo')

[?25l[?1c:[?25h[?0cb[0]='bar'

[?25l[?1c:[?25h[?0cb[0:0]=['baz']

[?25l[?1c:[?25h[?0cvim.command('call append("$", getbufline(%i, 1, "$"))' % b.numbe

r)
[?25l[?1c:[?25h[?0c# Test assigning to name property

[?25l[?1c:[?25h[?0cimport os

[?25l[?1c:[?25h[?0cold_name = cb.name

[?25l[?1c:[?25h[?0ccb.name = 'foo'

[?25l[?1c:[?25h[?0ccb.append(cb.name[-11:].replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0cb.name = 'bar'

[?25l[?1c:[?25h[?0ccb.append(b.name[-11:].replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0ccb.name = old_name

[?25l[?1c:[?25h[?0ccb.append(cb.name[-17:].replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0cdel old_name

[?25l[?1c:[?25h[?0c# Test CheckBuffer

[?25l[?1c:[?25h[?0cfor _b in vim.buffers:

[?25l[?1c:[?25h[?0c    if _b is not cb:

[?25l[?1c:[?25h[?0c        vim.command('bwipeout! ' + str(_b.number))

[?25l[?1c:[?25h[?0cdel _b

[?25l[?1c:[?25h[?0ccb.append('valid: b:%s, cb:%s' % (repr(b.valid), repr(cb.valid))

)
[?25l[?1c:[?25h[?0cfor expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc6")

'):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        exec(expr)

[?25l[?1c:[?25h[?0c    except vim.error:

[?25l[?1c:[?25h[?0c        pass

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        # Usually a SEGV here

[?25l[?1c:[?25h[?0c        # Should not happen in any case

[?25l[?1c:[?25h[?0c        cb.append('No exception for ' + expr)

[?25l[?1c:[?25h[?0cvim.command('cd .')

[?25l[?1c:[?25h[?0cdel b

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.buffers object

[?25l[?1c:[?25h[?0c:set hidden

[?25l[?1c:[?25h[?0c:edit a

[?25l[?1c:[?25h[?0c:buffer #

[?25l[?1c:[?25h[?0c:edit b

[?25l[?1c:[?25h[?0c:buffer #

[?25l[?1c:[?25h[?0c:edit c

[?25l[?1c:[?25h[?0c:buffer #

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0c# Check GCing iterator that was not fully exhausted

[?25l[?1c:[?25h[?0ci = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i:' + str(next(i)))

[?25l[?1c:[?25h[?0c# and also check creating more than one iterator at a time

[?25l[?1c:[?25h[?0ci2 = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i2:' + str(next(i2)))

[?25l[?1c:[?25h[?0ccb.append('i:' + str(next(i)))

[?25l[?1c:[?25h[?0c# The following should trigger GC and not cause any problems

[?25l[?1c:[?25h[?0cdel i

[?25l[?1c:[?25h[?0cdel i2

[?25l[?1c:[?25h[?0ci3 = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i3:' + str(next(i3)))

[?25l[?1c:[?25h[?0cdel i3

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cprevnum = 0

[?25l[?1c:[?25h[?0cfor b in vim.buffers:

[?25l[?1c:[?25h[?0c    # Check buffer order

[?25l[?1c:[?25h[?0c    if prevnum >= b.number:

[?25l[?1c:[?25h[?0c        cb.append('!!! Buffer numbers not in strictly ascending 

order')

[?25l[?1c:[?25h[?0c    # Check indexing: vim.buffers[number].number == number

[?25l[?1c:[?25h[?0c    cb.append(str(b.number) + ':' + repr(vim.buffers[b.number]) 

+ '=' + repr(b))

[?25l[?1c:[?25h[?0c    prevnum = b.number

[?25l[?1c:[?25h[?0cdel prevnum

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append(str(len(vim.buffers)))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cbnums = list(map(lambda b: b.number, vim.buffers))[1:]

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c# Test wiping out buffer with existing iterator

[?25l[?1c:[?25h[?0ci4 = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i4:' + str(next(i4)))

[?25l[?1c:[?25h[?0cvim.command('bwipeout! ' + str(bnums.pop(0)))

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    next(i4)

[?25l[?1c:[?25h[?0cexcept vim.error:

[?25l[?1c:[?25h[?0c    pass

[?25l[?1c:[?25h[?0celse:

[?25l[?1c:[?25h[?0c    cb.append('!!!! No vim.error')

[?25l[?1c:[?25h[?0ci4 = iter(vim.buffers)

[?25l[?1c:[?25h[?0cvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l[?1c:[?25h[?0cvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l[?1c:[?25h[?0ccb.append('i4:' + str(next(i4)))

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    next(i4)

[?25l[?1c:[?25h[?0cexcept StopIteration:

[?25l[?1c:[?25h[?0c    cb.append('StopIteration')

[?25l[?1c:[?25h[?0cdel i4

[?25l[?1c:[?25h[?0cdel bnums

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.{tabpage,window}list and vim.{tabpage,window} object

s
[?25l[?1c:[?25h[?0c:tabnew 0

[?25l[?1c:[?25h[?0c:tabnew 1

[?25l[?1c:[?25h[?0c:vnew a.1

[?25l[?1c:[?25h[?0c:tabnew 2

[?25l[?1c:[?25h[?0c:vnew a.2

[?25l[?1c:[?25h[?0c:vnew b.2

[?25l[?1c:[?25h[?0c:vnew c.2

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0ccb.append('Number of tabs: ' + str(len(vim.tabpages)))

[?25l[?1c:[?25h[?0ccb.append('Current tab pages:')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef W(w):

[?25l[?1c:[?25h[?0c    if '(unknown)' in repr(w):

[?25l[?1c:[?25h[?0c        return '<window object (unknown)>'

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        return repr(w)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef Cursor(w, start=len(cb)):

[?25l[?1c:[?25h[?0c    if w.buffer is cb:

[?25l[?1c:[?25h[?0c        return repr((start - w.cursor[0], w.cursor[1]))

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        return repr(w.cursor)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cfor t in vim.tabpages:

[?25l[?1c:[?25h[?0c    cb.append('  ' + repr(t) + '(' + str(t.number) + ')' + ': ' 

+ str(len(t.windows)) + ' windows, current is ' + W(t.window))

[?25l[?1c:[?25h[?0c    cb.append('  Windows:')

[?25l[?1c:[?25h[?0c    for w in t.windows:

[?25l[?1c:[?25h[?0c        cb.append('    ' + W(w) + '(' + str(w.number) + ')' + ':

displays buffer ' + repr(w.buffer) + '; cursor is at ' + Cursor(w))

[?25l[?1c:[?25h[?0c        # Other values depend on the size of the terminal, so th

ey are checked partly:

[?25l[?1c:[?25h[?0c        for attr in ('height', 'row', 'width', 'col'):

[?25l[?1c:[?25h[?0c            try:

[?25l[?1c:[?25h[?0c                aval = getattr(w, attr)

[?25l[?1c:[?25h[?0c                if type(aval) is not int:

[?25l[?1c:[?25h[?0c                    raise TypeError

[?25l[?1c:[?25h[?0c                if aval < 0:

[?25l[?1c:[?25h[?0c                    raise ValueError

[?25l[?1c:[?25h[?0c            except Exception as e:

[?25l[?1c:[?25h[?0c                cb.append('!!!!!! Error while getting attribute 

' + attr + ': ' + e.__class__.__name__)

[?25l[?1c:[?25h[?0c        del aval

[?25l[?1c:[?25h[?0c        del attr

[?25l[?1c:[?25h[?0c        w.cursor = (len(w.buffer), 0)

[?25l[?1c:[?25h[?0cdel W

[?25l[?1c:[?25h[?0cdel Cursor

[?25l[?1c:[?25h[?0ccb.append('Number of windows in current tab page: ' + str(len(vi

m.windows)))

[?25l[?1c:[?25h[?0cif list(vim.windows) != list(vim.current.tabpage.windows):

[?25l[?1c:[?25h[?0c    cb.append('!!!!!! Windows differ')

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.current

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef H(o):

[?25l[?1c:[?25h[?0c    return repr(o)

[?25l[?1c:[?25h[?0ccb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l[?1c:[?25h[?0ccb.append('Current window: ' + repr(vim.current.window) + ': ' +

H(vim.current.window) + ' is ' + H(vim.current.tabpage.window))

[?25l[?1c:[?25h[?0ccb.append('Current buffer: ' + repr(vim.current.buffer) + ': ' +

H(vim.current.buffer) + ' is ' + H(vim.current.window.buffer)+ ' is ' + H(vim.c

urrent.tabpage.window.buffer))

[?25l[?1c:[?25h[?0cdel H

[?25l[?1c:[?25h[?0c# Assigning: fails

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    vim.current.window = vim.tabpages[0].window

[?25l[?1c:[?25h[?0cexcept ValueError:

[?25l[?1c:[?25h[?0c    cb.append('ValueError at assigning foreign tab window')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cfor attr in ('window', 'tabpage', 'buffer'):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        setattr(vim.current, attr, None)

[?25l[?1c:[?25h[?0c    except TypeError:

[?25l[?1c:[?25h[?0c        cb.append('Type error at assigning None to vim.current.'

+ attr)

[?25l[?1c:[?25h[?0cdel attr

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c# Assigning: success

[?25l[?1c:[?25h[?0cvim.current.tabpage = vim.tabpages[-2]

[?25l[?1c:[?25h[?0cvim.current.buffer = cb

[?25l[?1c:[?25h[?0cvim.current.window = vim.windows[0]

[?25l[?1c:[?25h[?0cvim.current.window.cursor = (len(vim.current.buffer), 0)

[?25l[?1c:[?25h[?0ccb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l[?1c:[?25h[?0ccb.append('Current window: ' + repr(vim.current.window))

[?25l[?1c:[?25h[?0ccb.append('Current buffer: ' + repr(vim.current.buffer))

[?25l[?1c:[?25h[?0ccb.append('Current line: ' + repr(vim.current.line))

[?25l[?1c:[?25h[?0cws = list(vim.windows)

[?25l[?1c:[?25h[?0cts = list(vim.tabpages)

[?25l[?1c:[?25h[?0cfor b in vim.buffers:

[?25l[?1c:[?25h[?0c    if b is not cb:

[?25l[?1c:[?25h[?0c        vim.command('bwipeout! ' + str(b.number))

[?25l[?1c:[?25h[?0cdel b

[?25l[?1c:[?25h[?0ccb.append('w.valid: ' + repr([w.valid for w in ws]))

[?25l[?1c:[?25h[?0ccb.append('t.valid: ' + repr([t.valid for t in ts]))

[?25l[?1c:[?25h[?0cdel w

[?25l[?1c:[?25h[?0cdel t

[?25l[?1c:[?25h[?0cdel ts

[?25l[?1c:[?25h[?0cdel ws

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:tabonly!

[?25l[?1c:[?25h[?0c:only!

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test types

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cfor expr, attr in (

[?25l[?1c:[?25h[?0c    ('vim.vars',                         'Dictionary'),

[?25l[?1c:[?25h[?0c    ('vim.options',                      'Options'),

[?25l[?1c:[?25h[?0c    ('vim.bindeval("{}")',               'Dictionary'),

[?25l[?1c:[?25h[?0c    ('vim.bindeval("[]")',               'List'),

[?25l[?1c:[?25h[?0c    ('vim.bindeval("function(\'tr\')")', 'Function'),

[?25l[?1c:[?25h[?0c    ('vim.current.buffer',               'Buffer'),

[?25l[?1c:[?25h[?0c    ('vim.current.range',                'Range'),

[?25l[?1c:[?25h[?0c    ('vim.current.window',               'Window'),

[?25l[?1c:[?25h[?0c    ('vim.current.tabpage',              'TabPage'),

[?25l[?1c:[?25h[?0c):

[?25l[?1c:[?25h[?0c    cb.append(expr + ':' + attr + ':' + repr(type(eval(expr)) is

getattr(vim, attr)))

[?25l[?1c:[?25h[?0cdel expr

[?25l[?1c:[?25h[?0cdel attr

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test __dir__() method

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cfor name, o in (

[?25l[?1c:[?25h[?0c        ('current',    vim.current),

[?25l[?1c:[?25h[?0c        ('buffer',     vim.current.buffer),

[?25l[?1c:[?25h[?0c        ('window',     vim.current.window),

[?25l[?1c:[?25h[?0c        ('tabpage',    vim.current.tabpage),

[?25l[?1c:[?25h[?0c        ('range',      vim.current.range),

[?25l[?1c:[?25h[?0c        ('dictionary', vim.bindeval('{}')),

[?25l[?1c:[?25h[?0c        ('list',       vim.bindeval('[]')),

[?25l[?1c:[?25h[?0c        ('function',   vim.bindeval('function("tr")')),

[?25l[?1c:[?25h[?0c        ('output',     sys.stdout),

[?25l[?1c:[?25h[?0c    ):

[?25l[?1c:[?25h[?0c    cb.append(name + ':' + ','.join(dir(o)))

[?25l[?1c:[?25h[?0cdel name

[?25l[?1c:[?25h[?0cdel o

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.*.__new__

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Dictionary({})'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Dictionary(a=1)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Dictionary(((''a'', 1),))'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.List()'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.List(iter(''abc7''))'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'')'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4])'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[])'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', self={})'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={})'))

[?25l[?1c:[?25h[?0c:$put ='auto_rebind'

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', auto_rebind=False)')

)
[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], au

to_rebind=False)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[], auto_rebind

=False)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', self={}, auto_rebind

=False)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={}, auto_rebind=False)'))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.Function

[?25l[?1c:[?25h[?0c:function Args(...)

[?25l[?1c:[?25h[?0c:   return a:000

[?25l[?1c:[?25h[?0c:endfunction

[?25l[?1c:[?25h[?0c:function SelfArgs(...) dict

[?25l[?1c:[?25h[?0c:   return [a:000, self]

[?25l[?1c:[?25h[?0c:endfunction

[?25l[?1c:[?25h[?0c:" The following four lines should not crash

[?25l[?1c:[?25h[?0c:let Pt = function('tr', [[]], {'l': []})

[?25l[?1c:[?25h[?0c:py3 Pt = vim.bindeval('Pt')

[?25l[?1c:[?25h[?0c:unlet Pt

[?25l[?1c:[?25h[?0c:py3 del Pt

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef ecall(out_prefix, func, *args, **kwargs):

[?25l[?1c:[?25h[?0c    line = out_prefix + ': '

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        ret = func(*args, **kwargs)

[?25l[?1c:[?25h[?0c    except Exception:

[?25l[?1c:[?25h[?0c        line += '!exception: ' + emsg(sys.exc_info())

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        line += '!result: ' + str(vim.Function('string')(ret

), 'utf-8')

[?25l[?1c:[?25h[?0c    cb.append(line)

[?25l[?1c:[?25h[?0ca = vim.Function('Args')

[?25l[?1c:[?25h[?0cpa1 = vim.Function('Args', args=['abcArgsPA1'])

[?25l[?1c:[?25h[?0cpa2 = vim.Function('Args', args=[])

[?25l[?1c:[?25h[?0cpa3 = vim.Function('Args', args=['abcArgsPA3'], self={'abcSe

lfPA3': 'abcSelfPA3Val'})

[?25l[?1c:[?25h[?0cpa4 = vim.Function('Args', self={'abcSelfPA4': 'abcSelfPA4Va

l'})

[?25l[?1c:[?25h[?0ccb.append('a: ' + repr(a))

[?25l[?1c:[?25h[?0ccb.append('pa1: ' + repr(pa1))

[?25l[?1c:[?25h[?0ccb.append('pa2: ' + repr(pa2))

[?25l[?1c:[?25h[?0ccb.append('pa3: ' + repr(pa3))

[?25l[?1c:[?25h[?0ccb.append('pa4: ' + repr(pa4))

[?25l[?1c:[?25h[?0csa = vim.Function('SelfArgs')

[?25l[?1c:[?25h[?0cpsa1 = vim.Function('SelfArgs', args=['abcArgsPSA1'])

[?25l[?1c:[?25h[?0cpsa2 = vim.Function('SelfArgs', args=[])

[?25l[?1c:[?25h[?0cpsa3 = vim.Function('SelfArgs', args=['abcArgsPSA3'], self={

'abcSelfPSA3': 'abcSelfPSA3Val'})

[?25l[?1c:[?25h[?0cpsa4 = vim.Function('SelfArgs', self={'abcSelfPSA4': 'abcSel

fPSA4Val'})

[?25l[?1c:[?25h[?0cpsa5 = vim.Function('SelfArgs', self={'abcSelfPSA5': 'abcSel

fPSA5Val'}, auto_rebind=0)

[?25l[?1c:[?25h[?0cpsa6 = vim.Function('SelfArgs', args=['abcArgsPSA6'], self={

'abcSelfPSA6': 'abcSelfPSA6Val'}, auto_rebind=())

[?25l[?1c:[?25h[?0cpsa7 = vim.Function('SelfArgs', args=['abcArgsPSA7'], auto_r

ebind=[])

[?25l[?1c:[?25h[?0cpsa8 = vim.Function('SelfArgs', auto_rebind=False)

[?25l[?1c:[?25h[?0cpsa9 = vim.Function('SelfArgs', self={'abcSelfPSA9': 'abcSel

fPSA9Val'}, auto_rebind=True)

[?25l[?1c:[?25h[?0cpsaA = vim.Function('SelfArgs', args=['abcArgsPSAA'], self={

'abcSelfPSAA': 'abcSelfPSAAVal'}, auto_rebind=1)

[?25l[?1c:[?25h[?0cpsaB = vim.Function('SelfArgs', args=['abcArgsPSAB'], auto_r

ebind={'abcARPSAB': 'abcARPSABVal'})

[?25l[?1c:[?25h[?0cpsaC = vim.Function('SelfArgs', auto_rebind=['abcARPSAC'])

[?25l[?1c:[?25h[?0ccb.append('sa: ' + repr(sa))

[?25l[?1c:[?25h[?0ccb.append('psa1: ' + repr(psa1))

[?25l[?1c:[?25h[?0ccb.append('psa2: ' + repr(psa2))

[?25l[?1c:[?25h[?0ccb.append('psa3: ' + repr(psa3))

[?25l[?1c:[?25h[?0ccb.append('psa4: ' + repr(psa4))

[?25l[?1c:[?25h[?0ccb.append('psa5: ' + repr(psa5))

[?25l[?1c:[?25h[?0ccb.append('psa6: ' + repr(psa6))

[?25l[?1c:[?25h[?0ccb.append('psa7: ' + repr(psa7))

[?25l[?1c:[?25h[?0ccb.append('psa8: ' + repr(psa8))

[?25l[?1c:[?25h[?0ccb.append('psa9: ' + repr(psa9))

[?25l[?1c:[?25h[?0ccb.append('psaA: ' + repr(psaA))

[?25l[?1c:[?25h[?0ccb.append('psaB: ' + repr(psaB))

[?25l[?1c:[?25h[?0ccb.append('psaC: ' + repr(psaC))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cpsar = vim.Function('SelfArgs', args=[{'abcArgsPSAr': 'abcAr

gsPSArVal'}], self={'abcSelfPSAr': 'abcSelfPSArVal'})

[?25l[?1c:[?25h[?0cpsar.args[0]['abcArgsPSAr2'] = [psar.self, psar.args[0]]

[?25l[?1c:[?25h[?0cpsar.self['rec'] = psar

[?25l[?1c:[?25h[?0cpsar.self['self'] = psar.self

[?25l[?1c:[?25h[?0cpsar.self['args'] = psar.args

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    cb.append('psar: ' + repr(psar))

[?25l[?1c:[?25h[?0cexcept Exception:

[?25l[?1c:[?25h[?0c    cb.append('!!!!!!!! Caught exception: ' + emsg(sys.exc_i

nfo()))

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:$put ='s(a): '.string(py3eval('a'))

[?25l[?1c:[?25h[?0c:$put ='s(pa1): '.string(py3eval('pa1'))

[?25l[?1c:[?25h[?0c:$put ='s(pa2): '.string(py3eval('pa2'))

[?25l[?1c:[?25h[?0c:$put ='s(pa3): '.string(py3eval('pa3'))

[?25l[?1c:[?25h[?0c:$put ='s(pa4): '.string(py3eval('pa4'))

[?25l[?1c:[?25h[?0c:$put ='s(sa): '.string(py3eval('sa'))

[?25l[?1c:[?25h[?0c:$put ='s(psa1): '.string(py3eval('psa1'))

[?25l[?1c:[?25h[?0c:$put ='s(psa2): '.string(py3eval('psa2'))

[?25l[?1c:[?25h[?0c:$put ='s(psa3): '.string(py3eval('psa3'))

[?25l[?1c:[?25h[?0c:$put ='s(psa4): '.string(py3eval('psa4'))

[?25l[?1c:[?25h[?0c:$put ='s(psa5): '.string(py3eval('psa5'))

[?25l[?1c:[?25h[?0c:$put ='s(psa6): '.string(py3eval('psa6'))

[?25l[?1c:[?25h[?0c:$put ='s(psa7): '.string(py3eval('psa7'))

[?25l[?1c:[?25h[?0c:$put ='s(psa8): '.string(py3eval('psa8'))

[?25l[?1c:[?25h[?0c:$put ='s(psa9): '.string(py3eval('psa9'))

[?25l[?1c:[?25h[?0c:$put ='s(psaA): '.string(py3eval('psaA'))

[?25l[?1c:[?25h[?0c:$put ='s(psaB): '.string(py3eval('psaB'))

[?25l[?1c:[?25h[?0c:$put ='s(psaC): '.string(py3eval('psaC'))

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:for v in ['sa', 'psa1', 'psa2', 'psa3', 'psa4', 'psa5', 'ps

a6', 'psa7', 'psa8', 'psa9', 'psaA', 'psaB', 'psaC']

[?25l[?1c:[?25h[?0c:   let d = {'f': py3eval(v)}

[?25l[?1c:[?25h[?0c:   $put ='d.'.v.'(): '.string(d.f())

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a()', a, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa1()', pa1, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa2()', pa2, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa3()', pa3, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa4()', pa4, )

[?25l[?1c:[?25h[?0c:py3 ecall('sa()', sa, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa1()', psa1, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa2()', psa2, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa3()', psa3, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa4()', psa4, )

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a(42, 43)', a, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa1(42, 43)', pa1, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa2(42, 43)', pa2, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa3(42, 43)', pa3, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa4(42, 43)', pa4, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('sa(42, 43)', sa, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa1(42, 43)', psa1, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa2(42, 43)', psa2, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa3(42, 43)', psa3, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa4(42, 43)', psa4, 42, 43)

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a(42, self={"20": 1})', a, 42, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa1(42, self={"20": 1})', pa1, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('pa2(42, self={"20": 1})', pa2, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('pa3(42, self={"20": 1})', pa3, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('pa4(42, self={"20": 1})', pa4, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('sa(42, self={"20": 1})', sa, 42, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa1(42, self={"20": 1})', psa1, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa2(42, self={"20": 1})', psa2, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa3(42, self={"20": 1})', psa3, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa4(42, self={"20": 1})', psa4, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a(self={"20": 1})', a, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa1(self={"20": 1})', pa1, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa2(self={"20": 1})', pa2, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa3(self={"20": 1})', pa3, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa4(self={"20": 1})', pa4, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('sa(self={"20": 1})', sa, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa1(self={"20": 1})', psa1, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa2(self={"20": 1})', psa2, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa3(self={"20": 1})', psa3, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa4(self={"20": 1})', psa4, self={'20': 1})

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef s(v):

[?25l[?1c:[?25h[?0c    if v is None:

[?25l[?1c:[?25h[?0c        return repr(v)

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        return str(vim.Function('string')(v), 'utf-8')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.args: ' + s(a.args))

[?25l[?1c:[?25h[?0ccb.append('pa1.args: ' + s(pa1.args))

[?25l[?1c:[?25h[?0ccb.append('pa2.args: ' + s(pa2.args))

[?25l[?1c:[?25h[?0ccb.append('pa3.args: ' + s(pa3.args))

[?25l[?1c:[?25h[?0ccb.append('pa4.args: ' + s(pa4.args))

[?25l[?1c:[?25h[?0ccb.append('sa.args: ' + s(sa.args))

[?25l[?1c:[?25h[?0ccb.append('psa1.args: ' + s(psa1.args))

[?25l[?1c:[?25h[?0ccb.append('psa2.args: ' + s(psa2.args))

[?25l[?1c:[?25h[?0ccb.append('psa3.args: ' + s(psa3.args))

[?25l[?1c:[?25h[?0ccb.append('psa4.args: ' + s(psa4.args))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.self: ' + s(a.self))

[?25l[?1c:[?25h[?0ccb.append('pa1.self: ' + s(pa1.self))

[?25l[?1c:[?25h[?0ccb.append('pa2.self: ' + s(pa2.self))

[?25l[?1c:[?25h[?0ccb.append('pa3.self: ' + s(pa3.self))

[?25l[?1c:[?25h[?0ccb.append('pa4.self: ' + s(pa4.self))

[?25l[?1c:[?25h[?0ccb.append('sa.self: ' + s(sa.self))

[?25l[?1c:[?25h[?0ccb.append('psa1.self: ' + s(psa1.self))

[?25l[?1c:[?25h[?0ccb.append('psa2.self: ' + s(psa2.self))

[?25l[?1c:[?25h[?0ccb.append('psa3.self: ' + s(psa3.self))

[?25l[?1c:[?25h[?0ccb.append('psa4.self: ' + s(psa4.self))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.name: ' + s(a.name))

[?25l[?1c:[?25h[?0ccb.append('pa1.name: ' + s(pa1.name))

[?25l[?1c:[?25h[?0ccb.append('pa2.name: ' + s(pa2.name))

[?25l[?1c:[?25h[?0ccb.append('pa3.name: ' + s(pa3.name))

[?25l[?1c:[?25h[?0ccb.append('pa4.name: ' + s(pa4.name))

[?25l[?1c:[?25h[?0ccb.append('sa.name: ' + s(sa.name))

[?25l[?1c:[?25h[?0ccb.append('psa1.name: ' + s(psa1.name))

[?25l[?1c:[?25h[?0ccb.append('psa2.name: ' + s(psa2.name))

[?25l[?1c:[?25h[?0ccb.append('psa3.name: ' + s(psa3.name))

[?25l[?1c:[?25h[?0ccb.append('psa4.name: ' + s(psa4.name))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.auto_rebind: ' + s(a.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa1.auto_rebind: ' + s(pa1.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa2.auto_rebind: ' + s(pa2.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa3.auto_rebind: ' + s(pa3.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa4.auto_rebind: ' + s(pa4.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('sa.auto_rebind: ' + s(sa.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa1.auto_rebind: ' + s(psa1.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa2.auto_rebind: ' + s(psa2.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa3.auto_rebind: ' + s(psa3.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa4.auto_rebind: ' + s(psa4.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa5.auto_rebind: ' + s(psa5.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa6.auto_rebind: ' + s(psa6.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa7.auto_rebind: ' + s(psa7.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa8.auto_rebind: ' + s(psa8.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa9.auto_rebind: ' + s(psa9.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psaA.auto_rebind: ' + s(psaA.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psaB.auto_rebind: ' + s(psaB.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psaC.auto_rebind: ' + s(psaC.auto_rebind))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdel s

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdel a

[?25l[?1c:[?25h[?0cdel pa1

[?25l[?1c:[?25h[?0cdel pa2

[?25l[?1c:[?25h[?0cdel pa3

[?25l[?1c:[?25h[?0cdel pa4

[?25l[?1c:[?25h[?0cdel sa

[?25l[?1c:[?25h[?0cdel psa1

[?25l[?1c:[?25h[?0cdel psa2

[?25l[?1c:[?25h[?0cdel psa3

[?25l[?1c:[?25h[?0cdel psa4

[?25l[?1c:[?25h[?0cdel psa5

[?25l[?1c:[?25h[?0cdel psa6

[?25l[?1c:[?25h[?0cdel psa7

[?25l[?1c:[?25h[?0cdel psa8

[?25l[?1c:[?25h[?0cdel psa9

[?25l[?1c:[?25h[?0cdel psaA

[?25l[?1c:[?25h[?0cdel psaB

[?25l[?1c:[?25h[?0cdel psaC

[?25l[?1c:[?25h[?0cdel psar

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdel ecall

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test stdout/stderr

[?25l[?1c:[?25h[?0c:redir => messages

[?25l[?1c:[?25h[?0c:py3 sys.stdout.write('abc8') ; sys.stdout.write('def')

[?25l[?1c:[?25h[?0c:py3 sys.stderr.write('abc9') ; sys.stderr.write('def')

[?25l[?1c:[?25h[?0c:py3 sys.stdout.writelines(iter('abcA'))

[?25l[?1c:[?25h[?0c:py3 sys.stderr.writelines(iter('abcB'))

[?25l[?1c:[?25h[?0c:redir END

[?25l[?1c:[?25h[?0c:$put =string(substitute(messages, '\d\+', '', 'g'))

[?25l[?1c:[?25h[?0c:" Test subclassing

[?25l[?1c:[?25h[?0c:fun Put(...)

[?25l[?1c:[?25h[?0c:   $put =string(a:000)

[?25l[?1c:[?25h[?0c:   return a:000

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cclass DupDict(vim.Dictionary):

[?25l[?1c:[?25h[?0c    def __setitem__(self, key, value):

[?25l[?1c:[?25h[?0c        super(DupDict, self).__setitem__(key, value)

[?25l[?1c:[?25h[?0c        super(DupDict, self).__setitem__('dup_' + key, val

ue)

[?25l[?1c:[?25h[?0cdd = DupDict()

[?25l[?1c:[?25h[?0cdd['a'] = 'b'

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass DupList(vim.List):

[?25l[?1c:[?25h[?0c    def __getitem__(self, idx):

[?25l[?1c:[?25h[?0c        return [super(DupList, self).__getitem__(idx)] * 2

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdl = DupList()

[?25l[?1c:[?25h[?0cdl2 = DupList(iter('abcC'))

[?25l[?1c:[?25h[?0cdl.extend(dl2[0])

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass DupFun(vim.Function):

[?25l[?1c:[?25h[?0c    def __call__(self, arg):

[?25l[?1c:[?25h[?0c        return super(DupFun, self).__call__(arg, arg)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdf = DupFun('Put')

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:$put =string(sort(keys(py3eval('dd'))))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dl'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dl2'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('df(2)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dl') is# py3eval('dl'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dd') is# py3eval('dd'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('df'))

[?25l[?1c:[?25h[?0c:delfunction Put

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdel DupDict

[?25l[?1c:[?25h[?0cdel DupList

[?25l[?1c:[?25h[?0cdel DupFun

[?25l[?1c:[?25h[?0cdel dd

[?25l[?1c:[?25h[?0cdel dl

[?25l[?1c:[?25h[?0cdel dl2

[?25l[?1c:[?25h[?0cdel df

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test chdir

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cimport os

[?25l[?1c:[?25h[?0cfnamemodify = vim.Function('fnamemodify')

[?25l[?1c:[?25h[?0ccb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0ccb.append(vim.eval('@%'))

[?25l[?1c:[?25h[?0cos.chdir('..')

[?25l[?1c:[?25h[?0cpath = fnamemodify('.', ':p:h:t')

[?25l[?1c:[?25h[?0cif path != b'src':

[?25l[?1c:[?25h[?0c  # Running tests from a shadow directory, so move up anot

her level

[?25l[?1c:[?25h[?0c  # This will result in @% looking like shadow/testdir/tes

t87.in, hence the

[?25l[?1c:[?25h[?0c  # slicing to remove the leading path and path separator

[?25l[?1c:[?25h[?0c  os.chdir('..')

[?25l[?1c:[?25h[?0c  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0c  cb.append(vim.eval('@%')[len(path)+1:].replace(os.path.s

ep, '/'))

[?25l[?1c:[?25h[?0c  os.chdir(path)

[?25l[?1c:[?25h[?0celse:

[?25l[?1c:[?25h[?0c  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0c  cb.append(vim.eval('@%').replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0cdel path

[?25l[?1c:[?25h[?0cos.chdir('testdir')

[?25l[?1c:[?25h[?0ccb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0ccb.append(vim.eval('@%'))

[?25l[?1c:[?25h[?0cdel fnamemodify

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test errors

[?25l[?1c:[?25h[?0c:fun F() dict

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:fun D()

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cd = vim.Dictionary()

[?25l[?1c:[?25h[?0cned = vim.Dictionary(foo='bar', baz='abcD')

[?25l[?1c:[?25h[?0cdl = vim.Dictionary(a=1)

[?25l[?1c:[?25h[?0cdl.locked = True

[?25l[?1c:[?25h[?0cl = vim.List()

[?25l[?1c:[?25h[?0cll = vim.List('abcE')

[?25l[?1c:[?25h[?0cll.locked = True

[?25l[?1c:[?25h[?0cnel = vim.List('abcO')

[?25l[?1c:[?25h[?0cf = vim.Function('string')

[?25l[?1c:[?25h[?0cfd = vim.Function('F')

[?25l[?1c:[?25h[?0cfdel = vim.Function('D')

[?25l[?1c:[?25h[?0cvim.command('delfunction D')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef subexpr_test(expr, name, subexprs):

[?25l[?1c:[?25h[?0c    cb.append('>>> Testing %s using %s' % (name, expr)

)
[?25l[?1c:[?25h[?0c    for subexpr in subexprs:

[?25l[?1c:[?25h[?0c        ee(expr % subexpr)

[?25l[?1c:[?25h[?0c    cb.append('<<< Finished')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef stringtochars_test(expr):

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'StringToChars', (

[?25l[?1c:[?25h[?0c        '1',       # Fail type checks

[?25l[?1c:[?25h[?0c        'b"\\0"',  # Fail PyString_AsStringAndSize(obj

ect, , NULL) check

[?25l[?1c:[?25h[?0c        '"\\0"',   # Fail PyString_AsStringAndSize(byt

es, , NULL) check

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass Mapping(object):

[?25l[?1c:[?25h[?0c    def __init__(self, d):

[?25l[?1c:[?25h[?0c        self.d = d

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __getitem__(self, key):

[?25l[?1c:[?25h[?0c        return self.d[key]

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def keys(self):

[?25l[?1c:[?25h[?0c        return self.d.keys()

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def items(self):

[?25l[?1c:[?25h[?0c        return self.d.items()

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef convertfrompyobject_test(expr, recurse=True):

[?25l[?1c:[?25h[?0c    # pydict_to_tv

[?25l[?1c:[?25h[?0c    stringtochars_test(expr % '{%s : 1}')

[?25l[?1c:[?25h[?0c    if recurse:

[?25l[?1c:[?25h[?0c        convertfrompyobject_test(expr % '{"abcF" : %s}

', False)

[?25l[?1c:[?25h[?0c    # pymap_to_tv

[?25l[?1c:[?25h[?0c    stringtochars_test(expr % 'Mapping({%s : 1})')

[?25l[?1c:[?25h[?0c    if recurse:

[?25l[?1c:[?25h[?0c        convertfrompyobject_test(expr % 'Mapping({"abc

G" : %s})', False)

[?25l[?1c:[?25h[?0c    # pyseq_to_tv

[?25l[?1c:[?25h[?0c    iter_test(expr)

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'ConvertFromPyObject', (

[?25l[?1c:[?25h[?0c        'None',                 # Not conversible

[?25l[?1c:[?25h[?0c        '{b"": 1}',             # Empty key not allowe

d
[?25l[?1c:[?25h[?0c        '{"": 1}',              # Same, but with unico

de object

[?25l[?1c:[?25h[?0c        'FailingMapping()',     #

[?25l[?1c:[?25h[?0c        'FailingMappingKey()',  #

[?25l[?1c:[?25h[?0c        'FailingNumber()',      #

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef convertfrompymapping_test(expr):

[?25l[?1c:[?25h[?0c    convertfrompyobject_test(expr)

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'ConvertFromPyMapping', 

(
[?25l[?1c:[?25h[?0c        '[]',

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef iter_test(expr):

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, '*Iter*', (

[?25l[?1c:[?25h[?0c        'FailingIter()',

[?25l[?1c:[?25h[?0c        'FailingIterNext()',

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef number_test(expr, natural=False, unsigned=False):

[?25l[?1c:[?25h[?0c    if natural:

[?25l[?1c:[?25h[?0c        unsigned = True

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'NumberToLong', (

[?25l[?1c:[?25h[?0c        '[]',

[?25l[?1c:[?25h[?0c        'None',

[?25l[?1c:[?25h[?0c    ) + (('-1',) if unsigned else ())

[?25l[?1c:[?25h[?0c    + (('0',) if natural else ()))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingTrue(object):

[?25l[?1c:[?25h[?0c    def __bool__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('bool')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingIter(object):

[?25l[?1c:[?25h[?0c    def __iter__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('iter')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingIterNext(object):

[?25l[?1c:[?25h[?0c    def __iter__(self):

[?25l[?1c:[?25h[?0c        return self

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __next__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('next')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingIterNextN(object):

[?25l[?1c:[?25h[?0c    def __init__(self, n):

[?25l[?1c:[?25h[?0c        self.n = n

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __iter__(self):

[?25l[?1c:[?25h[?0c        return self

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __next__(self):

[?25l[?1c:[?25h[?0c        if self.n:

[?25l[?1c:[?25h[?0c            self.n -= 1

[?25l[?1c:[?25h[?0c            return 1

[?25l[?1c:[?25h[?0c        else:

[?25l[?1c:[?25h[?0c            raise NotImplementedError('next N')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingMappingKey(object):

[?25l[?1c:[?25h[?0c    def __getitem__(self, item):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('getitem:mappingkey'

)
[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def keys(self):

[?25l[?1c:[?25h[?0c        return list("abcH")

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingMapping(object):

[?25l[?1c:[?25h[?0c    def __getitem__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('getitem:mapping')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def keys(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('keys')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingList(list):

[?25l[?1c:[?25h[?0c    def __getitem__(self, idx):

[?25l[?1c:[?25h[?0c        if i == 2:

[?25l[?1c:[?25h[?0c            raise NotImplementedError('getitem:list')

[?25l[?1c:[?25h[?0c        else:

[?25l[?1c:[?25h[?0c            return super(FailingList, self).__getitem_

_(idx)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass NoArgsCall(object):

[?25l[?1c:[?25h[?0c    def __call__(self):

[?25l[?1c:[?25h[?0c        pass

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingCall(object):

[?25l[?1c:[?25h[?0c    def __call__(self, path):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('call')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingNumber(object):

[?25l[?1c:[?25h[?0c    def __int__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('int')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append("> Output")

[?25l[?1c:[?25h[?0ccb.append(">> OutputSetattr")

[?25l[?1c:[?25h[?0cee('del sys.stdout.softspace')

[?25l[?1c:[?25h[?0cnumber_test('sys.stdout.softspace = %s', unsigned=True

)
[?25l[?1c:[?25h[?0cnumber_test('sys.stderr.softspace = %s', unsigned=True

)
[?25l[?1c:[?25h[?0cee('assert sys.stdout.isatty()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.seekable()==False')

[?25l[?1c:[?25h[?0cee('sys.stdout.close()')

[?25l[?1c:[?25h[?0cee('sys.stdout.flush()')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.isatty()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.seekable()==False')

[?25l[?1c:[?25h[?0cee('sys.stderr.close()')

[?25l[?1c:[?25h[?0cee('sys.stderr.flush()')

[?25l[?1c:[?25h[?0cee('sys.stdout.attr = None')

[?25l[?1c:[?25h[?0ccb.append(">> OutputWrite")

[?25l[?1c:[?25h[?0cee('assert sys.stdout.writable()==True')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.readable()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.writable()==True')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.readable()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.closed()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.closed()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.errors=="strict"')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.errors=="strict"')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.encoding==sys.stderr.encoding')

[?25l[?1c:[?25h[?0cee('sys.stdout.write(None)')

[?25l[?1c:[?25h[?0ccb.append(">> OutputWriteLines")

[?25l[?1c:[?25h[?0cee('sys.stdout.writelines(None)')

[?25l[?1c:[?25h[?0cee('sys.stdout.writelines([1])')

[?25l[?1c:[?25h[?0citer_test('sys.stdout.writelines(%s)')

[?25l[?1c:[?25h[?0ccb.append("> VimCommand")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.command(%s)')

[?25l[?1c:[?25h[?0cee('vim.command("", 2)')

[?25l[?1c:[?25h[?0c#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l[?1c:[?25h[?0ccb.append("> VimToPython")

[?25l[?1c:[?25h[?0c#! Not checked: everything: needs errors in internal p

ython functions

[?25l[?1c:[?25h[?0ccb.append("> VimEval")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.eval(%s)')

[?25l[?1c:[?25h[?0cee('vim.eval("", FailingTrue())')

[?25l[?1c:[?25h[?0c#! Not checked: everything: needs errors in internal p

ython functions

[?25l[?1c:[?25h[?0ccb.append("> VimEvalPy")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.bindeval(%s)')

[?25l[?1c:[?25h[?0cee('vim.eval("", 2)')

[?25l[?1c:[?25h[?0c#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l[?1c:[?25h[?0ccb.append("> VimStrwidth")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.strwidth(%s)')

[?25l[?1c:[?25h[?0ccb.append("> VimForeachRTP")

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(None)')

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(NoArgsCall())')

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(FailingCall())')

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(int, 2)')

[?25l[?1c:[?25h[?0ccb.append('> import')

[?25l[?1c:[?25h[?0cold_rtp = vim.options['rtp']

[?25l[?1c:[?25h[?0cvim.options['rtp'] = os.getcwd().replace('\\', '\\\\')

.replace(',', '\\,')

[?25l[?1c:[?25h[?0cee('import xxx_no_such_module_xxx')

[?25l[?1c:[?25h[?0cee('import failing_import')

[?25l[?1c:[?25h[?0cee('import failing')

[?25l[?1c:[?25h[?0cvim.options['rtp'] = old_rtp

[?25l[?1c:[?25h[?0cdel old_rtp

[?25l[?1c:[?25h[?0ccb.append("> Options")

[?25l[?1c:[?25h[?0ccb.append(">> OptionsItem")

[?25l[?1c:[?25h[?0cee('vim.options["abcQ"]')

[?25l[?1c:[?25h[?0cee('vim.options[""]')

[?25l[?1c:[?25h[?0cstringtochars_test('vim.options[%s]')

[?25l[?1c:[?25h[?0ccb.append(">> OptionsContains")

[?25l[?1c:[?25h[?0cstringtochars_test('%s in vim.options')

[?25l[?1c:[?25h[?0ccb.append("> Dictionary")

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryConstructor")

[?25l[?1c:[?25h[?0cee('vim.Dictionary("abcI")')

[?25l[?1c:[?25h[?0c##! Not checked: py_dict_alloc failure

[?25l[?1c:[?25h[?0ccb.append(">> DictionarySetattr")

[?25l[?1c:[?25h[?0cee('del d.locked')

[?25l[?1c:[?25h[?0cee('d.locked = FailingTrue()')

[?25l[?1c:[?25h[?0cee('vim.vvars.locked = False')

[?25l[?1c:[?25h[?0cee('d.scope = True')

[?25l[?1c:[?25h[?0cee('d.xxx = True')

[?25l[?1c:[?25h[?0ccb.append(">> _DictionaryItem")

[?25l[?1c:[?25h[?0cee('d.get("a", 2, 3)')

[?25l[?1c:[?25h[?0cstringtochars_test('d.get(%s)')

[?25l[?1c:[?25h[?0cee('d.pop("a")')

[?25l[?1c:[?25h[?0cee('dl.pop("a")')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryContains")

[?25l[?1c:[?25h[?0cee('"" in d')

[?25l[?1c:[?25h[?0cee('0 in d')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryIterNext")

[?25l[?1c:[?25h[?0cee('for i in ned: ned["a"] = 1')

[?25l[?1c:[?25h[?0cdel i

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryAssItem")

[?25l[?1c:[?25h[?0cee('dl["b"] = 1')

[?25l[?1c:[?25h[?0cstringtochars_test('d[%s] = 1')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('d["a"] = %s')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryUpdate")

[?25l[?1c:[?25h[?0ccb.append(">>> kwargs")

[?25l[?1c:[?25h[?0ccb.append(">>> iter")

[?25l[?1c:[?25h[?0cee('d.update(FailingMapping())')

[?25l[?1c:[?25h[?0cee('d.update([FailingIterNext()])')

[?25l[?1c:[?25h[?0cee('d.update([FailingIterNextN(1)])')

[?25l[?1c:[?25h[?0citer_test('d.update(%s)')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('d.update(%s)')

[?25l[?1c:[?25h[?0cstringtochars_test('d.update(((%s, 0),))')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('d.update((("a", %s),))')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryPopItem")

[?25l[?1c:[?25h[?0cee('d.popitem(1, 2)')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryHasKey")

[?25l[?1c:[?25h[?0cee('d.has_key()')

[?25l[?1c:[?25h[?0ccb.append("> List")

[?25l[?1c:[?25h[?0ccb.append(">> ListConstructor")

[?25l[?1c:[?25h[?0cee('vim.List(1, 2)')

[?25l[?1c:[?25h[?0cee('vim.List(a=1)')

[?25l[?1c:[?25h[?0citer_test('vim.List(%s)')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('vim.List([%s])')

[?25l[?1c:[?25h[?0ccb.append(">> ListItem")

[?25l[?1c:[?25h[?0cee('l[1000]')

[?25l[?1c:[?25h[?0ccb.append(">> ListAssItem")

[?25l[?1c:[?25h[?0cee('ll[1] = 2')

[?25l[?1c:[?25h[?0cee('l[1000] = 3')

[?25l[?1c:[?25h[?0ccb.append(">> ListAssSlice")

[?25l[?1c:[?25h[?0cee('ll[1:100] = "abcJ"')

[?25l[?1c:[?25h[?0citer_test('l[:] = %s')

[?25l[?1c:[?25h[?0cee('nel[1:10:2]  = "abcK"')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cee('nel[1:10:2]  = "a"')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cee('nel[1:1:-1]  = "a"')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cee('nel[:] = FailingIterNextN(2)')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('l[:] = [%s]')

[?25l[?1c:[?25h[?0ccb.append(">> ListConcatInPlace")

[?25l[?1c:[?25h[?0citer_test('l.extend(%s)')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('l.extend([%s])')

[?25l[?1c:[?25h[?0ccb.append(">> ListSetattr")

[?25l[?1c:[?25h[?0cee('del l.locked')

[?25l[?1c:[?25h[?0cee('l.locked = FailingTrue()')

[?25l[?1c:[?25h[?0cee('l.xxx = True')

[?25l[?1c:[?25h[?0ccb.append("> Function")

[?25l[?1c:[?25h[?0ccb.append(">> FunctionConstructor")

[?25l[?1c:[?25h[?0ccb.append(">>> FunctionConstructor")

[?25l[?1c:[?25h[?0cee('vim.Function("123")')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx")')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx#non#existent#function#xxx")')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx2", arg

s=[])')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx3", sel

f={})')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx4", arg

s=[], self={})')

[?25l[?1c:[?25h[?0ccb.append(">>> FunctionNew")

[?25l[?1c:[?25h[?0cee('vim.Function("tr", self="abcFuncSelf")')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", args=427423)')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", self="abcFuncSelf2", args="abcF

uncArgs2")')

[?25l[?1c:[?25h[?0cee('vim.Function(self="abcFuncSelf2", args="abcFuncArg

s2")')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", "", self="abcFuncSelf2", args="

abcFuncArgs2")')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", "")')

[?25l[?1c:[?25h[?0ccb.append(">> FunctionCall")

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('f(%s)')

[?25l[?1c:[?25h[?0cconvertfrompymapping_test('fd(self=%s)')

[?25l[?1c:[?25h[?0ccb.append("> TabPage")

[?25l[?1c:[?25h[?0ccb.append(">> TabPageAttr")

[?25l[?1c:[?25h[?0cee('vim.current.tabpage.xxx')

[?25l[?1c:[?25h[?0ccb.append("> TabList")

[?25l[?1c:[?25h[?0ccb.append(">> TabListItem")

[?25l[?1c:[?25h[?0cee('vim.tabpages[1000]')

[?25l[?1c:[?25h[?0ccb.append("> Window")

[?25l[?1c:[?25h[?0ccb.append(">> WindowAttr")

[?25l[?1c:[?25h[?0cee('vim.current.window.xxx')

[?25l[?1c:[?25h[?0ccb.append(">> WindowSetattr")

[?25l[?1c:[?25h[?0cee('vim.current.window.buffer = 0')

[?25l[?1c:[?25h[?0cee('vim.current.window.cursor = (100000000, 100000000)

')
[?25l[?1c:[?25h[?0cee('vim.current.window.cursor = True')

[?25l[?1c:[?25h[?0cnumber_test('vim.current.window.height = %s', unsigned

=True)

[?25l[?1c:[?25h[?0cnumber_test('vim.current.window.width = %s', unsigned=

True)

[?25l[?1c:[?25h[?0cee('vim.current.window.xxxxxx = True')

[?25l[?1c:[?25h[?0ccb.append("> WinList")

[?25l[?1c:[?25h[?0ccb.append(">> WinListItem")

[?25l[?1c:[?25h[?0cee('vim.windows[1000]')

[?25l[?1c:[?25h[?0ccb.append("> Buffer")

[?25l[?1c:[?25h[?0ccb.append(">> StringToLine (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[0] = "\\na"')

[?25l[?1c:[?25h[?0cee('vim.current.buffer[0] = b"\\na"')

[?25l[?1c:[?25h[?0ccb.append(">> SetBufferLine (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[0] = True')

[?25l[?1c:[?25h[?0ccb.append(">> SetBufferLineList (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[:] = True')

[?25l[?1c:[?25h[?0cee('vim.current.buffer[:] = ["\\na", "bc"]')

[?25l[?1c:[?25h[?0ccb.append(">> InsertBufferLines (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.append(None)')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.append(["\\na", "bc"])')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.append("\\nbc")')

[?25l[?1c:[?25h[?0ccb.append(">> RBItem")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[100000000]')

[?25l[?1c:[?25h[?0ccb.append(">> RBAsItem")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[100000000] = ""')

[?25l[?1c:[?25h[?0ccb.append(">> BufferAttr")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.xxx')

[?25l[?1c:[?25h[?0ccb.append(">> BufferSetattr")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.name = True')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.xxx = True')

[?25l[?1c:[?25h[?0ccb.append(">> BufferMark")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.mark(0)')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.mark("abcM")')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.mark("!")')

[?25l[?1c:[?25h[?0ccb.append(">> BufferRange")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.range(1, 2, 3)')

[?25l[?1c:[?25h[?0ccb.append("> BufMap")

[?25l[?1c:[?25h[?0ccb.append(">> BufMapItem")

[?25l[?1c:[?25h[?0cee('vim.buffers[100000000]')

[?25l[?1c:[?25h[?0cnumber_test('vim.buffers[%s]', natural=True)

[?25l[?1c:[?25h[?0ccb.append("> Current")

[?25l[?1c:[?25h[?0ccb.append(">> CurrentGetattr")

[?25l[?1c:[?25h[?0cee('vim.current.xxx')

[?25l[?1c:[?25h[?0ccb.append(">> CurrentSetattr")

[?25l[?1c:[?25h[?0cee('vim.current.line = True')

[?25l[?1c:[?25h[?0cee('vim.current.buffer = True')

[?25l[?1c:[?25h[?0cee('vim.current.window = True')

[?25l[?1c:[?25h[?0cee('vim.current.tabpage = True')

[?25l[?1c:[?25h[?0cee('vim.current.xxx = True')

[?25l[?1c:[?25h[?0cdel d

[?25l[?1c:[?25h[?0cdel ned

[?25l[?1c:[?25h[?0cdel dl

[?25l[?1c:[?25h[?0cdel l

[?25l[?1c:[?25h[?0cdel ll

[?25l[?1c:[?25h[?0cdel nel

[?25l[?1c:[?25h[?0cdel f

[?25l[?1c:[?25h[?0cdel fd

[?25l[?1c:[?25h[?0cdel fdel

[?25l[?1c:[?25h[?0cdel subexpr_test

[?25l[?1c:[?25h[?0cdel stringtochars_test

[?25l[?1c:[?25h[?0cdel Mapping

[?25l[?1c:[?25h[?0cdel convertfrompyobject_test

[?25l[?1c:[?25h[?0cdel convertfrompymapping_test

[?25l[?1c:[?25h[?0cdel iter_test

[?25l[?1c:[?25h[?0cdel number_test

[?25l[?1c:[?25h[?0cdel FailingTrue

[?25l[?1c:[?25h[?0cdel FailingIter

[?25l[?1c:[?25h[?0cdel FailingIterNext

[?25l[?1c:[?25h[?0cdel FailingIterNextN

[?25l[?1c:[?25h[?0cdel FailingMapping

[?25l[?1c:[?25h[?0cdel FailingMappingKey

[?25l[?1c:[?25h[?0cdel FailingList

[?25l[?1c:[?25h[?0cdel NoArgsCall

[?25l[?1c:[?25h[?0cdel FailingCall

[?25l[?1c:[?25h[?0cdel FailingNumber

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:delfunction F

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test import

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0csys.path.insert(0, os.path.join(os.getcwd(), 'python_b

efore'))

[?25l[?1c:[?25h[?0csys.path.append(os.path.join(os.getcwd(), 'python_afte

r'))

[?25l[?1c:[?25h[?0cvim.options['rtp'] = os.getcwd().replace(',', '\\,').r

eplace('\\', '\\\\')

[?25l[?1c:[?25h[?0cl = []

[?25l[?1c:[?25h[?0cdef callback(path):

[?25l[?1c:[?25h[?0c    l.append(os.path.relpath(path))

[?25l[?1c:[?25h[?0cvim.foreach_rtp(callback)

[?25l[?1c:[?25h[?0ccb.append(repr(l))

[?25l[?1c:[?25h[?0cdel l

[?25l[?1c:[?25h[?0cdef callback(path):

[?25l[?1c:[?25h[?0c    return os.path.relpath(path)

[?25l[?1c:[?25h[?0ccb.append(repr(vim.foreach_rtp(callback)))

[?25l[?1c:[?25h[?0cdel callback

[?25l[?1c:[?25h[?0cfrom module import dir as d

[?25l[?1c:[?25h[?0cfrom modulex import ddir

[?25l[?1c:[?25h[?0ccb.append(d + ',' + ddir)

[?25l[?1c:[?25h[?0cimport before

[?25l[?1c:[?25h[?0ccb.append(before.dir)

[?25l[?1c:[?25h[?0cimport after

[?25l[?1c:[?25h[?0ccb.append(after.dir)

[?25l[?1c:[?25h[?0cimport topmodule as tm

[?25l[?1c:[?25h[?0cimport topmodule.submodule as tms

[?25l[?1c:[?25h[?0cimport topmodule.submodule.subsubmodule.subsubsubmodul

e as tmsss

[?25l[?1c:[?25h[?0ccb.append(tm.__file__.replace(os.path.sep, '/')[-len('

modulex/topmodule/__init__.py'):])

[?25l[?1c:[?25h[?0ccb.append(tms.__file__.replace(os.path.sep, '/')[-len(

'modulex/topmodule/submodule/__init__.py'):])

[?25l[?1c:[?25h[?0ccb.append(tmsss.__file__.replace(os.path.sep, '/')[-le

n('modulex/topmodule/submodule/subsubmodule/subsubsubmodule.py'):])

[?25l[?1c:[?25h[?0cdel before

[?25l[?1c:[?25h[?0cdel after

[?25l[?1c:[?25h[?0cdel d

[?25l[?1c:[?25h[?0cdel ddir

[?25l[?1c:[?25h[?0cdel tm

[?25l[?1c:[?25h[?0cdel tms

[?25l[?1c:[?25h[?0cdel tmsss

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test exceptions

[?25l[?1c:[?25h[?0c:fun Exe(e)

[?25l[?1c:[?25h[?0c:   execute a:e

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cExe = vim.bindeval('function("Exe")')

[?25l[?1c:[?25h[?0cee('vim.command("throw \'abcN\'")')

[?25l[?1c:[?25h[?0cee('Exe("throw \'def\'")')

[?25l[?1c:[?25h[?0cee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')

[?25l[?1c:[?25h[?0cee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')

[?25l[?1c:[?25h[?0cee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')"

)')

[?25l[?1c:[?25h[?0cee('vim.eval("xxx_unknown_function_xxx()")')

[?25l[?1c:[?25h[?0cee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx

\')")')

[?25l[?1c:[?25h[?0cdel Exe

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:delfunction Exe

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Regression: interrupting vim.command propagates t

o next vim.command

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef test_keyboard_interrupt():

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        vim.command('while 1 | endwhile')

[?25l[?1c:[?25h[?0c    except KeyboardInterrupt:

[?25l[?1c:[?25h[?0c        cb.append('Caught KeyboardInterrupt')

[?25l[?1c:[?25h[?0c    except Exception:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! No exception')

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        vim.command('$ put =\'Running :put\'')

[?25l[?1c:[?25h[?0c    except KeyboardInterrupt:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! Caught KeyboardInterrupt

')
[?25l[?1c:[?25h[?0c    except Exception:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        cb.append('No exception')

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:debuggreedy

[?25l[?1c:[?25h[?0c:call inputsave()

[?25l[?1c:[?25h[?0c:call feedkeys("s\ns\ns\ns\nq\n")

[?25l[?1c:[?25h[?0c:redir => output

[?25l[?1c:[?25h[?0c:debug silent! py3 test_keyboard_interrupt()

[?25l[?1c:[?25h[?0c:redir END

[?25l[?1c:[?25h[?0c:0 debuggreedy

[?25l[?1c:[?25h[?0c:call inputrestore()

[?25l[?1c:[?25h[?0c:silent $put =output

[?25l[?1c:[?25h[?0c:unlet output

[?25l[?1c:[?25h[?0c:py3 del test_keyboard_interrupt

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Cleanup

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdel cb

[?25l[?1c:[?25h[?0cdel ee

[?25l[?1c:[?25h[?0cdel emsg

[?25l[?1c:[?25h[?0cdel sys

[?25l[?1c:[?25h[?0cdel os

[?25l[?1c:[?25h[?0cdel vim

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:endfun
[?25l[?1c:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:/^start:/,$w! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun RunTest()
[?25l[?1c
:  [?25h[?0c:let checkrefs = !empty($PYTHONDUMPREFS)

[?25l[?1c:  [?25h[?0c:let start = getline(1, '$')

[?25l[?1c:  [?25h[?0c:for i in range(checkrefs ? 10 : 1)

[?25l[?1c:    [?25h[?0c:   if i != 0

[?25l[?1c:      [?25h[?0c:       %d _

[?25l[?1c:      [?25h[?0c:       call setline(1, start)

[?25l[?1c:      [?25h[?0c:   endif

[?25l[?1c:    [?25h[?0c:   call Test()

[?25l[?1c:    [?25h[?0c:   if i == 0

[?25l[?1c:      [?25h[?0c:       let result = getline(1, '$')

[?25l[?1c:      [?25h[?0c:   endif

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c:if checkrefs

[?25l[?1c:    [?25h[?0c:   %d _

[?25l[?1c:    [?25h[?0c:   call setline(1, result)

[?25l[?1c:    [?25h[?0c:endif

[?25l[?1c:  [?25h[?0c:endfun
[?25l[?1c:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall RunTest()
[?25l[?1c8 more lin
3 more lines[?25h[?0c

[?25l[?1c"a" [New File]

"b" [New File]

"c" [New File]

"0" [New File]

"1" [New File]

"a.1" [New File]

"2" [New File]

"a.2" [New File]

"b.2" [New File]

"c.2" [New File]

Already only one window

abc8def

Error detected while processing function RunTest[8]..Test:

line 1106:

abc9def

abcA

line 1108:

abcB

8 more lines

Entering Debug mode.  Type "cont" to continue.

function RunTest[8]..Test

line 1650: py3 test_keyboard_interrupt()

>s

function RunTest[8]..Test

line 1650: while 1 | endwhile

>s

function RunTest[8]..Test

line 1650: endwhile

>s

function RunTest[8]..Test

line 1650: while 1 | endwhile

>s

function RunTest[8]..Test

line 1650: endwhile

>q
['.']
'.'
3,xx
before
after
pythonx/topmodule/__init__.py
pythonx/topmodule/submodule/__init__.py
pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py
vim.command("throw 'abcN'"):(<class 'vim.error'>, error('abcN',))
Exe("throw 'def'"):(<class 'vim.error'>, error('def',))
vim.eval("Exe('throw ''ghi''')"):(<class 'vim.error'>, error('ghi',))
vim.eval("Exe('echoerr ''jkl''')"):(<class 'vim.error'>, error('Vim(echoerr):jkl',))
vim.eval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',))
vim.eval("xxx_unknown_function_xxx()"):(<class 'vim.error'>, error('Vim:E117: Unknown function: xxx_unknown_function_xxx',))
vim.bindeval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',))
Caught KeyboardInterrupt
Running :put
No exception

"test87.in" [Modified][Not edited] line 3151 of 3151 --100%-- col 1[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction RunTest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction Test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1445 lines, 77744 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test87 = test61; then \
#	  if diff test.out test87.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test87.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test87.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test12.in
[?25h[?8c[?25h[?0c[?25l[?1c"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/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'directory' option.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 965 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset dir=.,~
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/start of testfile/,/end of testfile/w! Xtest1
[?25l[?1c"Xtest1" [New] 4L, 70C written[?25h[?0c[?25l[?1c:[?25h[?0c" do an ls of the current dir to find the swap file (should not be there)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:  !ls .X*.swp >test.out

[?25l[?1c:!ls .X*.swp >test.out[?25h[?0c
ls: cannot access '.X*.swp': No such file or directory

shell returned 2

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:  r !ls X*.swp >test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:!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[?25h[?0c[?25l[?1c:[?25h[?0c!echo first line >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1c"Xtest1" 4L, 70Cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest1" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:" Do an ls of the current dir to find the swap file, remove the leading dot

[?25l[?1c:  [?25h[?0c:" to make the result the same for all systems.

[?25l[?1c:  [?25h[?0c:  r!ls .X*.swp

[?25l[?1c:  [?25h[?0c:  s/\.*X/X/

[?25l[?1c:  [?25h[?0c:  .w >>test.out
[?25l[?1c"test.out" 1L, 11C appended

:  [?25h[?0c:  undo

[?25l[?1c1 line less; before #1  0 seconds ago

:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:  !ls X*.swp >>test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c!echo under Xtest1.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir Xtest2
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0cset dir=./Xtest2,.,~
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1c"Xtest1" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0c!ls X*.swp >>test.out
[?25l[?1c[?25h[?0c
ls: cannot access 'X*.swp': No such file or directory

shell returned 2


Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under under >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ls Xtest2 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest1.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir Xtest.je
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c/start of testfile/,/end of testfile/w! Xtest2/Xtest3
[?25l[?1csearch hit BOTTOM, continuing at TOP"Xtest2/Xtest3" [New] 4L, 70C written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset dir=Xtest.je,~
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce Xtest2/Xtest3
[?25l[?1c"Xtest2/Xtest3" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0cswap
[?25l[?1cXtest.je/Xtest3.swp[?25h[?0c[?25l[?1c:[?25h[?0c!ls Xtest2 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest3 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ls Xtest.je >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest3.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test12 = test61; then \
#	  if diff test.out test12.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test12.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test12.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test25.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 540 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Create a link from test25.dir to the current directory.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!rm -f test25.dir
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ln -s . test25.dir
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c" Create tags.text, with the current directory name inserted.
[?25l[?1cTest 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
[?25h[?0c[?25l[?1c
/[?25h[?0ctags line
[?25l[?1chis 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:
[?25h[?0c[?25l[?1c:[?25h[?0cr !pwd
[?25l[?1c[?25h[?0c[?25l[?1cSTARTTEST
: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:
/<<PKGBUILDDIR>>/src/vim-gtk/testdir
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0ctest
[?25l[?1c
SECTION_OFF     /test25.dir/test25.in   /^#define  SECTION_OFF  3$/[?25h[?0c[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test25.dir/te@                                                                               
SECTION_OFF     /<<PKGBUILDDIR>>/src/vim-gtk/testdir/test25.dir/test25.in /^#define  SECTION_OFF  3$/[?25h[?0c[?25l[?1c

:[?25h[?0c.w! tags.test
[?25l[?1c"tags.test" [New File] 1 line, 112 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Try jumping to a tag in the current file, but with a path that contains a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" symbolic link.  When wrong, this will give the ATTENTION message.  The next
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tags=tags.test
[?25l[?1c[?25h[?0c[?25l[?1c/*tx.c*/
#define  SECTION_OFF  3
#define  NUM_SECTIONS 3

SECTION_OFF[?25h[?0c#[?25l[?1cefine  SECTION_OFF  3[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 23 characters written[?25h[?0c[?25l[?1c:[?25h[?0c!rm -f test25.dir tags.test
[?25l[?1c[?25h[?0c
[No write since last change]


Press ENTER or type command to continue[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test25 = test61; then \
#	  if diff test.out test25.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test25.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test25.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test49.in
[?25h[?8c[?25h[?0c[?25l[?1c"test49.in" 32 lines, 705 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
:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cThis is a test of the script language.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 23 lines, 475 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:endfor
:for v in keys(g:)
:  silent! exe "unlet " . v
:endfor
:unlet v
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cse nocp nomore viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang mess C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso test49.vim
[?25l[?1cError detected while processing function F:

line    5:

E583: multiple :else:     else^I^I

Error detected while processing function G:

line    5:

E584: :elseif after :else:     elseif 1^I^I" aborts function

Error detected while processing function H:

line    7:

E583: multiple :else:     else^I^I

Error detected while processing function I:

line    7:

E584: :elseif after :else:     elseif 1^I^I" aborts function

*** Test  16: OK (8722)

Error detected while processing function F:

line   18:

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

line   34:

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

line   47:

E580: :endif without :if: ^Iendif^I

E580: :endif without :if: ^Iendif^I

E580: :endif without :if: ^Iendif^I

Error detected while processing /<<PKGBUILDDIR>>/src/vim-gtk/test

dir/test49.vim:

line  784:

E171: Missing :endif: endwhile 

*** Test  17: OK (285127993)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"/tmp/vtg7wvv/0" [New] 53L, 1582C written14L, 358C appended26L, 824C appended34L, 986C appended

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/1[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/1" 16L, 304C appended17L, 326C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/2[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/2"' -c 'breakad

dfile 8 /tmp/vtg7wvv/1' -S /tmp/vtg7wvv/1[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/2" 3L, 6C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/3[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/3" 6L, 127C appended7L, 149C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/4[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/4"' -c 'breakad

dfile 4 /tmp/vtg7wvv/3' -S /tmp/vtg7wvv/3[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/4" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/5[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/5" 21L, 486C appended22L, 508C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/6[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/6"' -c 'breakad

dfunc 7 F' -S /tmp/vtg7wvv/5[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/6" 3L, 18C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/7[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/7" 13L, 364C appended14L, 386C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/8[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/8"' -c 'breakad

dfunc 3 G' -S /tmp/vtg7wvv/7[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/8" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  18: OK (67224583)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/9[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/9" 12L, 201C appended13L, 223C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/10[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/10"' -S /tmp/vtg7w

vv/9[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/10" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/11[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/11" 12L, 205C appended13L, 227C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/12[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/12"' -S /tmp/vtg7w

vv/11[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/12" 2L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/13[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/13" 6L, 122C appended7L, 144C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/14[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/14"' -S /tmp/vtg7w

vv/13[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/14" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/15[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/15" 8L, 176C appended9L, 198C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/16[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/16"' -S /tmp/vtg7w

vv/15[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/16" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/17[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/17" 10L, 215C appended11L, 237C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/18[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/18"' -S /tmp/vtg7w

vv/17[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/18" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/19[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/19" 7L, 149C appended8L, 171C8L, 170C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/20[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/20"' -S /tmp/vtg7w

vv/19[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/20" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  19: OK (69275973)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/21[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/21" 9L, 135C appended10L, 157C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/22[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/22"' -S /tmp/vtg7w

vv/21[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/22" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/23[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/23" 10L, 155C appended11L, 177C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/24[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/24"' -S /tmp/vtg7w

vv/23[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/24" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/25[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/25" 12L, 204C appended13L, 226C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/26[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/26"' -S /tmp/vtg7w

vv/25[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/26" 4L, 18C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/27[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/27" 12L, 214C appended13L, 236C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/28[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/28"' -S /tmp/vtg7w

vv/27[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/28" 4L, 22C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/29[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/29" 12L, 211C appended13L, 233C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/30[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/30"' -S /tmp/vtg7w

vv/29[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/30" 3L, 22C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/31[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/31" 14L, 263C appended15L, 285C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/32[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/32"' -S /tmp/vtg7w

vv/31[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/32" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/33[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/33" 14L, 277C appended15L, 299C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/34[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/34"' -S /tmp/vtg7w

vv/33[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/34" 4L, 40C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  20: OK (1874575085)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/35[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/35" 58L, 1022C appended59L, 1044C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/36[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/36"' -S /tmp/vtg7w

vv/35[?25h[?0c
[?25l[?1c"/tmp/vtg7wvv/36" 9L, 56C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  21: OK (147932225)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/37[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/37" 23L, 418C appended24L, 440C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/38[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/38"' -S /tmp/vtg7w

vv/37[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/38" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/39[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/39" 23L, 437C appended24L, 459C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/40[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/40"' -c 'breaka

dd func 2 Interrupt' -S /tmp/vtg7wvv/39[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/40" 1L, 3C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/41[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/41" 21L, 386C appended22L, 408C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/42[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/42"' -S /tmp/vtg7w

vv/41[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/42" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  22: OK (4161)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/43[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/43" 25L, 432C appended26L, 454C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/44[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/44"' -S /tmp/vtg7w

vv/43[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/44" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  23: OK (49)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/45[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/45" 16L, 392C appended17L, 414C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/46[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/46"' -S /tmp/vtg7w

vv/45[?25h[?0c
[?25l[?1c"/tmp/vtg7wvv/46" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  24: OK (41)

*** Test  25: OK (260177811)

*** Test  26: OK (1681500476)

*** Test  27: OK (1996459)

   function F()

1      try

2Xpath 1" X: 1

3try

4Xpath 2" X: 2

5return

6Xpath 4" X: 0

7finally

8Xpath 8" X: 8

9endtry

10Xpath 16" X: 0

11     finally

12Xpath 32" X: 32

13     endtry

14     Xpath 64" X: 0

   endfunction"/tmp/vtg7wvv/47"[noeol] 17L, 552C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vtg7wvv/47" 14L, 502C written
"test49.in" 32L, 705C
   function G()
1      try
2Xpath 128" X: 128
3return
4Xpath 256" X: 0
5      finally
6Xpath 512" X: 512
7call F()
8Xpath 1024" X: 1024
9      endtry
10     Xpath 2048" X: 0
   endfunction"/tmp/vtg7wvv/48"[noeol] 13L, 406C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vtg7wvv/48" 10L, 378C written
"test49.in" 32L, 705C
   function H()
1      try
2Xpath 4096" X: 4096
3call G()
4Xpath 8192" X: 8192
5      finally
6Xpath 16384" X: 16384
7return
8Xpath 32768" X: 0
9      endtry

10     Xpath 65536" X: 0

   endfunction"/tmp/vtg7wvv/49"[noeol] 13L, 409C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vtg7wvv/49" 10L, 381C written
"test49.in" 32L, 705C
*** Test  28: OK (1996459)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/50[?25h[?0c[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/50" 39L, 721C appended40L, 743C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/51[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/51"' -S /tmp/vtg7w

vv/50[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/51" 6L, 21C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/52[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/52" 23L, 509C appended24L, 531C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/53[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/53"' -S /tmp/vtg7w

vv/52[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/53" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  29: OK (170428555)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/54[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/54" 60L, 1101C appended61L, 1123C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/55[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nv

iminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/55"' -

c'breakadd func 3 F' -c 'breakadd file 19 /tmp/vtg7wvv/54' -c 'breakadd file 31

/tmp/vtg7wvv/54' -S /tmp/vtg7wvv/54[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/55" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  30: OK (190905173)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/56[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/56" 60L, 1122C appended61L, 1144C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/57[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/57"' -S /tmp/vtg7w

vv/56[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/57" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  31: OK (190905173)

*** Test  32: OK (354833067)

*** Test  33: OK (1216907538)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/58[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/58" 63L, 1288C appended64L, 1310C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/59[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7w

vv/59"' -c 'breakadd func 16 C' -S /tmp/vtg7wvv/58[?25h[?0c
[?25l[?1c"/tmp/vtg7wvv/59" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  34: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/60[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/60" 63L, 1285C appended64L, 1307C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/61[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7w

vv/61"' -c 'breakadd func 16 B' -S /tmp/vtg7wvv/60[?25h[?0c
[?25l[?1c"/tmp/vtg7wvv/61" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  35: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/62[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/62" 66L, 1430C appended67L, 1452C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/63[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vimin

fo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/

63"' -c 'breakadd func 16 R' -S /tmp/vtg7wvv/62[?25h[?0c
[?25l[?1c"/tmp/vtg7wvv/63" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  36: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/64[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/64" 73L, 1488C appended74L, 1510C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/65[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/65"' -c 'breakadd

func 16 F' -S /tmp/vtg7wvv/64[?25h[?0c
[?25l[?1c"/tmp/vtg7wvv/65" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  37: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/66[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/66" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/67[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7w

vv/67"' -c 'breakadd func 16 E' -S /tmp/vtg7wvv/66[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/67" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  38: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/68[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/68" 83L, 1538C appended84L, 1560C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/69[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -

c'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVi

mResult = "/tmp/vtg7wvv/69"' -c 'breakadd func 16 I' -c 'breakadd func 22 I' -S

/tmp/vtg7wvv/68[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/69" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  39: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/70[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/70" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/71[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7w

vv/71"' -c 'breakadd func 16 T' -S /tmp/vtg7wvv/70[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/71" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  40: OK (357908480)

*** Test  41: OK (3076095)

*** Test  42: OK (1505155949)

*** Test  43: OK (1157763329)

*** Test  44: OK (1031761407)

*** Test  45: OK (1157763329)

*** Test  46: OK (739407)

*** Test  47: OK (371213935)

*** Test  48: OK (756255461)

*** Test  49: OK (179000669)

   function C()

1      try

2Xpath 1" X: 1

3throw "arrgh"

4Xpath 2" X: 0

5      catch /arrgh/

6Xpath 4" X: 4

7      endtry

8      Xpath 8" X: 8

   endfunction"/tmp/vtg7wvv/72"[noeol] 11L, 334C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vtg7wvv/72" 8L, 295C written
"test49.in" 32L, 705C
   function T1()
1      XloopNEXT
2      try
3Xloop 1" X: 16 + 16*16
4throw "arrgh"
5Xloop 2" X: 0
6      finally

7Xloop 4" X: 64 + 64*16

8      endtry

9      Xloop 8" X: 0

   endfunction"/tmp/vtg7wvv/73"[noeol] 12L, 364C
9 substitutions on 9 lines
Pattern not found: ^\s*$
"/tmp/vtg7wvv/73" 9L, 323C written
"test49.in" 32L, 705C
   function T2()
1      try
2Xpath 4096" X: 4096
3call T1()
4Xpath 8192" X: 0
5      finally
6Xpath 16384" X: 16384
7      endtry

8      Xpath 32768" X: 0

   endfunction"/tmp/vtg7wvv/74"[noeol] 11L, 332C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vtg7wvv/74" 8L, 305C written
"test49.in" 32L, 705C
*** Test  50: OK (363550045)
*** Test  51: OK (40744667)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/76[?25h[?0c[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/76" 2L, 41C appended3L, 63C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/77[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/77"' -S /tmp/vtg7wvv/76[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/77" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/75" 8L, 182C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/78[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/78" 7L, 115C appended8L, 137C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/79[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/79"' -S /tmp/vtg7wvv/78[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/79" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/75" 8L, 181C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/80[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/80" 12L, 180C appended13L, 202C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/81[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/81"' -S /tmp/vtg7wvv/80[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/81" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/75" 10L, 209C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/82[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/82" 8L, 139C appended9L, 161C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/83[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/83"' -S /tmp/vtg7wvv/82[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/83" 2L, 11C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/75" 10L, 217C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/84[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/84" 5L, 87C appended6L, 109C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/85[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir!

>/tmp/vtg7wvv/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin =

1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/85"' -c 'breakadd file 4 /tmp/vtg7wvv

/84' -S /tmp/vtg7wvv/84[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/85" 1L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/75" [noeol] 9L, 202C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/86[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/86" 7L, 189C appended8L, 211C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/87[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/87"' -S /tmp/vtg7wvv/86[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/87" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/75" 9L, 252C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/88[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/88" 7L, 199C appended8L, 221C8L, 220C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/89[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/89"' -S /tmp/vtg7wvv/88[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/89" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/75" 9L, 214C
"test49.in" 32L, 705C

*** Test  52: OK (1247112011)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/91[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/91" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/92[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/92"' -S /tmp/vtg7wvv/91[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/92" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/93[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/93" 3L, 39C appended4L, 61C

3 substitutions on 3 lines
"/tmp/vtg7wvv/93" 4L, 58C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/94[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/94"' -S /tmp/vtg7wvv/93[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/94" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/95[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/95" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vtg7wvv/95" 5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/96[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/96"' -S /tmp/vtg7wvv/95[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/96" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/97[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/97" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vtg7wvv/97" 4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/98[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/98"' -S /tmp/vtg7wvv/97[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/98" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/99[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/99" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vtg7wvv/99" 6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/100[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/100"' -S /tmp/vtg7wvv/99[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/100" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/101[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/101" 1L, 9C appended2L, 31C2L, 30C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/102[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/102"' -S /tmp/vtg7wvv/101[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/102" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 153C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/103[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/103" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vtg7wvv/103"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/104[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/104"' -S /tmp/vtg7wvv/103[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/104" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/105[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/105" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vtg7wvv/105"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/106[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/106"' -S /tmp/vtg7wvv/105[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/106" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/107[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/107" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vtg7wvv/107"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/108[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/108"' -S /tmp/vtg7wvv/107[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/108" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/109[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/109" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vtg7wvv/109"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/110[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/110"' -S /tmp/vtg7wvv/109[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/110" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/111[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/111" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/112[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/112"' -S /tmp/vtg7wvv/111[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/112" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/113[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/113" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vtg7wvv/113"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/114[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/114"' -S /tmp/vtg7wvv/113[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/114" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/115[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/115" 4L, 46C appended5L, 68C

4 substitutions on 4 lines
"/tmp/vtg7wvv/115"5L, 64C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/116[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/116"' -S /tmp/vtg7wvv/115[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/116" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/117[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/117" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vtg7wvv/117"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/118[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/118"' -S /tmp/vtg7wvv/117[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/118" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/119[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/119" 5L, 66C appended6L, 88C

5 substitutions on 5 lines
"/tmp/vtg7wvv/119"6L, 83C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/120[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/120"' -S /tmp/vtg7wvv/119[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/120" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/121[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/121" 4L, 37C appended5L, 59C

4 substitutions on 4 lines
"/tmp/vtg7wvv/121"5L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/122[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/122"' -S /tmp/vtg7wvv/121[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/122" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 150C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/123[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/123" 4L, 41C appended5L, 63C

4 substitutions on 4 lines
"/tmp/vtg7wvv/123"5L, 59C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/124[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vtg7wvv/124"' -S /tmp/vtg7wvv/123[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/124" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/90" 6L, 159C
"test49.in" 32L, 705C

*** Test  53: OK (131071)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/126[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/126" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/127[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/127"' -S /tmp/vtg7wvv/126[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/127" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/125" 6L, 164C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/128[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/128" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vtg7wvv/128"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/129[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/129"' -S /tmp/vtg7wvv/128[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/129" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/130[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/130" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vtg7wvv/130"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/131[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/131"' -S /tmp/vtg7wvv/130[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/131" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/132[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/132" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vtg7wvv/132"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/133[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/133"' -S /tmp/vtg7wvv/132[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/133" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/134[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/134" 4L, 53C appended5L, 75C

4 substitutions on 4 lines
"/tmp/vtg7wvv/134"5L, 71C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/135[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/135"' -S /tmp/vtg7wvv/134[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/135" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/136[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/136" 5L, 62C appended6L, 84C

5 substitutions on 5 lines
"/tmp/vtg7wvv/136"6L, 79C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/137[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/137"' -S /tmp/vtg7wvv/136[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/137" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/138[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/138" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vtg7wvv/138"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/139[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/139"' -S /tmp/vtg7wvv/138[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/139" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/140[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/140" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vtg7wvv/140"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/141[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/141"' -S /tmp/vtg7wvv/140[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/141" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/142[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/142" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vtg7wvv/142"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/143[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/143"' -S /tmp/vtg7wvv/142[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/143" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/125" 6L, 167C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/144[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/144" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vtg7wvv/144"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/145[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/145"' -S /tmp/vtg7wvv/144[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/145" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/146[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/146" 7L, 95C appended8L, 117C

7 substitutions on 7 lines
"/tmp/vtg7wvv/146"8L, 110C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/147[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/147"' -S /tmp/vtg7wvv/146[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/147" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/125" 6L, 167C
"test49.in" 32L, 705C

*** Test  54: OK (2047)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/149[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/149" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/150[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/150"' -S /tmp/vtg7wvv/149[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/150" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/148" 6L, 172C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/151[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/151" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vtg7wvv/151"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/152[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/152"' -S /tmp/vtg7wvv/151[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/152" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/153[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/153" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vtg7wvv/153"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/154[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/154"' -S /tmp/vtg7wvv/153[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/154" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/155[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/155" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vtg7wvv/155"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/156[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/156"' -S /tmp/vtg7wvv/155[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/156" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/157[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/157" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vtg7wvv/157"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/158[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/158"' -S /tmp/vtg7wvv/157[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/158" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/159[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/159" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/160[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/160"' -S /tmp/vtg7wvv/159[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/160" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/148" 6L, 166C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/161[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/161" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vtg7wvv/161"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/162[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/162"' -S /tmp/vtg7wvv/161[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/162" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/163[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/163" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vtg7wvv/163"5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/164[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/164"' -S /tmp/vtg7wvv/163[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/164" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/165[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/165" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vtg7wvv/165"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/166[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/166"' -S /tmp/vtg7wvv/165[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/166" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/167[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/167" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vtg7wvv/167"6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/168[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/168"' -S /tmp/vtg7wvv/167[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/168" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/148" 6L, 170C
"test49.in" 32L, 705C

*** Test  55: OK (1023)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/170[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/170" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/171[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/171"' -S /tmp/vtg7wvv/170[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/171" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/169" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/172[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/172" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vtg7wvv/172"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/173[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/173"' -S /tmp/vtg7wvv/172[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/173" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/174[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/174" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vtg7wvv/174"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/175[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/175"' -S /tmp/vtg7wvv/174[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/175" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/176[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/176" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vtg7wvv/176"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/177[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/177"' -S /tmp/vtg7wvv/176[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/177" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/178[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/178" 3L, 35C appended4L, 57C

3 substitutions on 3 lines
"/tmp/vtg7wvv/178"4L, 54C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/179[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/179"' -S /tmp/vtg7wvv/178[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/179" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/180[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/180" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vtg7wvv/180"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/181[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/181"' -S /tmp/vtg7wvv/180[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/181" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/182[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/182" 4L, 47C appended5L, 69C

4 substitutions on 4 lines
"/tmp/vtg7wvv/182"5L, 65C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/183[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/183"' -S /tmp/vtg7wvv/182[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/183" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/184[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/184" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vtg7wvv/184"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/185[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/185"' -S /tmp/vtg7wvv/184[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/185" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/186[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/186" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vtg7wvv/186"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/187[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vtg7wvv/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vtg7wvv/187"' -S /tmp/vtg7wvv/186[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/187" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vtg7wvv/169" 6L, 155C
"test49.in" 32L, 705C

*** Test  56: OK (511)

   function FuncException()

1      let g:exception = v:exception

   endfunction"/tmp/vtg7wvv/188" [noeol] 4L, 80C
Pattern not found: ^\s*$
"/tmp/vtg7wvv/188"1L, 36C written
"test49.in" 32L, 705C
   function FuncThrowpoint()

1      let g:throwpoint = v:throwpoint

   endfunction"/tmp/vtg7wvv/189" [noeol] 4L, 83C
Pattern not found: ^\s*$
"/tmp/vtg7wvv/189"1L, 38C written
"test49.in" 32L, 705C
   function T(arg, line)

1      if a:line == 2

2throw a:arg" in line 2

3      elseif a:line == 4

4throw a:arg" in line 4

5      elseif a:line == 6

6throw a:arg" in line 6

7      elseif a:line == 8

8throw a:arg" in line 8

9      endif

   endfunction"/tmp/vtg7wvv/190"[noeol] 12L, 341C
9 substitutions on 9 lines
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vtg7wvv/190"9L, 292C written
"test49.in" 32L, 705C
   function G(arg, line)
1      call T(a:arg, a:line)
   endfunction"/tmp/vtg7wvv/191"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vtg7wvv/191"1L, 30C written
"test49.in" 32L, 705C
   function F(arg, line)
1      call G(a:arg, a:line)
   endfunction"/tmp/vtg7wvv/192"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vtg7wvv/192"1L, 30C written
"test49.in" 32L, 705C
*** Test  57: OK (2147450880)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/193[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/193" 87L, 1700C appended88L, 1722C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/194[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/194"' -c 'break

add func 4 T' -S /tmp/vtg7wvv/193[?25h[?0c
[?25l[?1c"/tmp/vtg7wvv/194" 8L, 36C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  58: OK (624945)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/195[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/195" 293L, 5789C appended294L, 5811C

3 substitutions on 3 lines
"/tmp/vtg7wvv/195"294L, 5808C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/196[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/196"' -c 'br

eakadd file 115 /tmp/vtg7wvv/195' -c 'breakadd file 225 /tmp/vtg7wvv/195' -S /tm

p/vtg7wvv/195[?25h[?0c
[?25l[?1c"/tmp/vtg7wvv/196" 28L, 162C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  59: OK (2038431743)
"/n/o/n/w/r/i/t/a/b/l/e/_/f/i/l/e"
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/197[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/197" 33L, 765C appended34L, 787C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/198[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/198"' -c 'break

add file 7 /tmp/vtg7wvv/197' -S /tmp/vtg7wvv/197[?25h[?0c
[?25l[?1c"/tmp/vtg7wvv/198" 3L, 27C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  60: OK (311511339)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/199[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/199" 115L, 2272C appended116L, 2294C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/200[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vimin

fo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/

200"' -c 'breakadd file 8 /tmp/vtg7wvv/199' -c 'breakadd file 36 /tmp/vtg7wvv/19

9' -c 'breakadd file 40 /tmp/vtg7wvv/199' -c 'breakadd file 69 /tmp/vtg7wvv/199'

-c 'breakadd file 95 /tmp/vtg7wvv/199' -c 'breakadd file 97 /tmp/vtg7wvv/199' -

S/tmp/vtg7wvv/199[?25h[?0c
[?25l[?1c"/tmp/vtg7wvv/200" 14L, 81C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  61: OK (374889517)

   function F()

1      while 1

2      " Missing :endwhile

   endfunction"/tmp/vtg7wvv/201"[noeol] 5L, 73C
Pattern not found: ^\s*$
"/tmp/vtg7wvv/201"2L, 40C written
"test49.in" 32L, 705C
*** Test  62: OK (286331153)
"/i/m/p/o/s/s/i/b/l/e" line 5500:

"/i/m/p/o/s/s/i/b/l/e" E212: Can't open file for writing

*** Test  63: OK (236978127)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/202[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/202" 149L, 2828C appended150L, 2850C

6 substitutions on 6 lines
"/tmp/vtg7wvv/202"150L, 2844C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/203[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/203"' -c 'break

add file 63 /tmp/vtg7wvv/202' -S /tmp/vtg7wvv/202[?25h[?0c
[?25l[?1c"/tmp/vtg7wvv/203" 16L, 97C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  64: OK (1499645335)

*** Test  65: OK (70187)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/204[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/204" 78L, 1520C appended79L, 1542C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/205[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/205"' -c 'break

add func 8 F' -S /tmp/vtg7wvv/204[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/205" 6L, 22C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  66: OK (5464)

*** Test  67: OK (212514423)

*** Test  68: OK (212514423)

*** Test  69: OK (8995471)

*** Test  70: OK (69544277)

*** Test  71: OK (34886997)

*** Test  72: OK (1789569365)

   function F0()

   endfunction

   function F1()

   endfunction

*** Test  73: OK (9032615)
"/tmp/vtg7wvv/206" [New File]
"test49.in" 32L, 705C
"/tmp/vtg7wvv/207" [New File]
"test49.in" 32L, 705C

*** Test  74: OK (224907669)

*** Test  75: OK (2000403408)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/208[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/208" 253L, 6369C appended254L, 6391C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/209[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|

set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp

/vtg7wvv/209"' -c 'breakadd func 2 INT' -S /tmp/vtg7wvv/208[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/209" 28L, 167C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  76: OK (1610087935)

Error detected while processing function ERR:

line    2:

E492: Not an editor command:     asdf

E492: Not an editor command:     asdf

E492: Not an editor command:     asdf

*** Test  77: OK (1388671)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/210[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/210" 161L, 4543C appended162L, 4565C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/211[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/211"' -S /tmp/vtg7

wvv/210[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/211" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  78: OK (134217728)

Error detected while processing function NEXT:

line    1:

E121: Undefined variable: novar

E15: Invalid expression: novar | Xloop 1

E121: Undefined variable: novar

E488: Trailing characters

E108: No such variable: "novar"

E488: Trailing characters

E121: Undefined variable: novar

E15: Invalid expression: novar

E475: Invalid argument: {novar} | Xloop 1

E121: Undefined variable: novar

E15: Invalid expression:  novar

E475: Invalid argument: { novar} | Xloop 1

*** Test  79: OK (70288929)

Error detected while processing /<<PKGBUILDDIR>>/src/vim-gtk/test

dir/test49.vim:

line 7985:

E584: :elseif after :else: elseif 1 ||| 2

line 7995:

E584: :elseif after :else: elseif 1 ||| 2

line 8003:

E582: :elseif without :if: elseif 1 ||| 2

line 8011:

E582: :elseif without :if:     elseif 1 ||| 2

*** Test  80: OK (17895765)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/212[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/212" 15L, 272C appended16L, 294C16L, 293C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/213[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/213"' -S /tmp/vtg7

wvv/212[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/213" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/214[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/214" 12L, 227C appended13L, 249C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/215[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/215"' -c 'break

add file 8 /tmp/vtg7wvv/214' -S /tmp/vtg7wvv/214[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/215" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  81: OK (387)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/216[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/216" 20L, 417C appended21L, 439C21L, 438C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/217[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/217"' -S /tmp/vtg7

wvv/216[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/217" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/218[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/218" 24L, 480C appended25L, 502C25L, 501C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/219[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/219"' -S /tmp/vtg7

wvv/218[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/219" 1L, 4C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/220[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/220" 17L, 390C appended18L, 412C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/221[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/221"' -c 'break

add file 7 /tmp/vtg7wvv/220' -S /tmp/vtg7wvv/220[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/221" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/222[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/222" 21L, 444C appended22L, 466C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/223[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/223"' -c 'break

add func 6 I' -S /tmp/vtg7wvv/222[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/223" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  82: OK (8454401)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/224[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/224" 17L, 307C appended18L, 329C18L, 328C written
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/225[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/225"' -S /tmp/vtg7

wvv/224[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/225" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/226[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/226" 14L, 266C appended15L, 288C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/227[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/227"' -c 'break

add file 8 /tmp/vtg7wvv/226' -S /tmp/vtg7wvv/226[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vtg7wvv/227" 3L, 13C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  83: OK (2835)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/228[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/228" 154L, 3580C appended155L, 3602C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/229[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/229"' -c 'br

eakadd func 1 INT' -S /tmp/vtg7wvv/228[?25h[?0c
[?25l[?1c"/tmp/vtg7wvv/229" 18L, 118C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  84: OK (934782101)

TMP
"/tmp/vtg7wvv/230" [noeol] 2L, 6C/  
"test49.in" 32L, 705C
"/n/o/n/e/x/i/s/t/e/n/t"

"/tmp/vtg7wvv/232" 1L, 1C
"test49.in" 32L, 705C

:!echo XYZ >/tmp/vtg7wvv/233[?25h[?0c
[?25l[?1c"/tmp/vtg7wvv/234" [New File]
"test49.in" 32L, 705C

*** Test  85: OK (198689)

line 8769:

E123: Undefined function: F

Make_all.mak
"Make_all.mak" line 1 of 207 --0%-- col 1

line 8772:

E926: Current location list was changed

line 8773:

E193: :endfunction not inside a function

Error detected while processing function ExecAsScript[2]..MakeScript:

line    3:

E123: Undefined function: F
"/tmp/vtg7wvv/235" [noeol] 4L, 109C

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/vtg7wvv/235"3L, 109C written
"Make_all.mak" 207L, 3846C

Error detected while processing /tmp/vtg7wvv/235:

line    1:

E492: Not an editor command: Error detected while processing function ExecAsScr

ipt[2]..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 /<<PKGBUILDDIR>>/src/vim-gtk/test

dir/test49.vim:

line 8779:

E130: Unknown function: F

*** Test  86: OK (0)

5
*** Test  87: OK (0)
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vtg7wvv/0' >/tmp/vtg7wvv/236[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vtg7wvv/236" 151L, 3929C appended152L, 3951C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vtg7wvv/237[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nvimi

nfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vtg7wvv/237"' -c

'breakadd func 5 ThrowOnInterrupt' -S /tmp/vtg7wvv/236[?25h[?0c
[?25l[?1c"/tmp/vtg7wvv/237" 16L, 281C
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-gtk/testdir/test49.vim" [readonly] 9009L, 206880C
"Make_all.mak" 207L, 3846C

*** Test  88: OK (50443995)

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c" Go back to this file and append the results from register r.
[?25l[?1c#
# Common Makefile, defines the list of tests to run.
#

NO_PLUGIN = -U NONE --noplugin --not-a-term

# The first script creates small.vim.
SCRIPTS_FIRST = \test1.out

# Tests that run on all systems.
SCRIPTS_ALL = \test3.out \test4.out \test5.out \test7.out \test8.out \test9.out \test14.out \test15.out \test19.out \test20.out \test22.out \[?25h[?0c[?25l[?1c:[?25h[?0cbuf test49.in
[?25l[?1c"test49.in" 32L, 705C:so test49.vim
:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:":" make valgrind happy
:redir => funclis: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!ENDTESTResults of test49.vim:[?25h[?0c
[?25l[?1c
83 more lines
*** Test  16: OK (8722)83 more lines[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 84L, 2484C written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make valgrind happy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => funclist
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csilent func
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor line in split(funclist, "\n")
[?25l[?1c
:  [?25h[?0c:  let name = matchstr(line, 'function \zs[A-Z]\w*\ze(')

[?25l[?1c:  [?25h[?0c:  if name != ''

[?25l[?1c:    [?25h[?0c:    exe "delfunc " . name

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:"
:" make valgrind happy[?25h[?0c[?25l[?1c
:[?25h[?0cfor v in keys(g:)
[?25l[?1c
:  [?25h[?0c:  silent! exe "unlet " . v

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:" Go back to this file and append the results from register r.
:buf test49.in[?25h[?0c[?25l[?1c
:[?25h[?0cunlet v
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test49 = test61; then \
#	  if diff test.out test49.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test49.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test49.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test97.failed test.ok test.out X* viminfo
cp test97.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test97.in
[?25h[?8c[?25h[?0c[?25l[?1c"test97.in" 23 lines, 484 charactersTest whether glob()/globpath() return correct results with certain escaped
characters.

STARTTEST
:so small.vim
:" make sure glob() doesn't use the shell
:set shell=doesnotexist
:" consistent sorting of file names
:set nofileignorecase
:e! test.out
:$put =glob('Xxx\{')
:$put =glob('Xxx\$')
:w! Xxx{
:w! Xxx\$
:$put =glob('Xxx\{')
:$put =glob('Xxx\$')
:"
:$put =string(globpath('sautest/autoload', '*.vim'))
:$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest whether glob()/globpath() return correct results with certain escaped[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 377 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure glob() doesn't use the shell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset shell=doesnotexist
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" consistent sorting of file names
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nofileignorecase
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\{')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xxx{
[?25l[?1c
Cannot execute shell doesnotexist


E79: Cannot expand wildcards

"Xxx{" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! Xxx\$
[?25l[?1c"Xxx$" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\{')
[?25l[?1cXxx{
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\$')
[?25l[?1cXxx$[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(globpath('sautest/autoload', '*.vim'))
[?25l[?1c'sautest/autoload/Test104.vimsautest/autoload/footest.vim'[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
[?25l[?1c['sautest/autoload/Test104.vim', 'sautest/autoload/footest.vim'][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 8 lines, 138 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test97 = test61; then \
#	  if diff test.out test97.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test97.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test97.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listlbr_utf8.failed test.ok test.out X* viminfo
cp test_listlbr_utf8.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr_utf8.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listlbr_utf8.in" 134 lines, 4027 charactersTest for linebreak and list option in utf-8 mode

STARTTEST
:so small.vim
:if !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!
test.out | qa! | endif
:so mbyte.vim
:set encoding=utf8
:if &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
:10new|:vsp|:vert resize 20
:put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width, lines)
:let c=''
:for j in range(1,a:lines)
:for i in range(1,a:width)
:let c.=nr2char(screenchar(j, i))
:endfor
:let c.="\n"
:endfor
:return c
:endfu[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for linebreak and list option in utf-8 mode[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 129 lines, 3948 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set list nolinebreak cc=3
:sign define foo text=^Vuff0b
:sign place 1 name=foo line=50 buffer=2
:norm! 2kztj
:let line1=line('.')
0GGlGGlGGlGGl
:let line2=line('.')
:let attr2=attr
:let attr=[]
0GGlGGlGGlGGl
:redraw!
:let line=ScreenChar(winwidth(0),3)
:call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!

test.out | qa! | endif
[?25l[?1c:set list nolinebreak cc=3[?25h[?0c[?25l[?1c
:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf8
[?25l[?1c:set list nolinebreak cc=3
:sign define foo text=^Vuff0b
:sign place 1 name=foo line=50 buffer=2
:norm! 2kztj
:let line1=line('.')
0GGlGGlGGlGGl
:let line2=line('.')
:let attr2=attr
:let attr=[]
0GGlGGlGGlGGl
:redraw!
:let line=ScreenChar(winwidth(0),3)
:call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
[?25h[?0c[?25l[?1c
:[?25h[?0cif &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c10new|:vsp|:vert resize 20
[?25l[?1c                    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name]            ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name]                                                  call DoRecordScreen()" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")else   call append('$', "Screen attributes are the same!")
:endif%w! test.out
:qaENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0cput =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [+][?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25l[?1cabcdef          
+hijklmn            
+pqrstuvwxyz 1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [?25h[?0c[?25l[?1c:[?25h[?0cfu! ScreenChar(width, lines)
[?25l[?1c
:  [?25h[?0c:^Ilet c=''

[?25l[?1c:  [?25h[?0c:^Ifor j in range(1,a:lines)

[?25l[?1c:    [?25h[?0c:^I    for i in range(1,a:width)

[?25l[?1c:      [?25h[?0c:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l[?1c:      [?25h[?0c:^I    endfor

[?25l[?1c:    [?25h[?0c:           let c.="\n"

[?25l[?1c:    [?25h[?0c:^Iendfor

[?25l[?1c:  [?25h[?0c:^Ireturn c

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0cfu! DoRecordScreen()
[?25l[?1c
:  [?25h[?0c:^Iwincmd l

[?25l[?1c:  [?25h[?0c:^I$put =printf(\"\n%s\", g:test)

[?25l[?1c:  [?25h[?0c:^I$put =g:line

[?25l[?1c:  [?25h[?0c:^Iwincmd p

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 1: set linebreak + set list + fancy listchars"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eo

l:\ub6"
[?25l[?1c▕———abcdef|▕———␣ˑ¶[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c▕———abcdef|
+hijklmn▕———|
+pqrstuvwxyz␣1060ABC|
+DEFGHIJKLMNOPˑ¶|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines¶                   
Test 1: set         
+linebreak + set    
+list + fancy       
+listchars¶         
▕———abcdefˑˑˑˑˑˑˑˑˑˑ
@                   Test 1: set linebreak + set list + fancy listchars▕———abcdef          +hijklmn▕———        +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶    [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 2: set nolinebreak list"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list nolinebreak
[?25l[?1chijklmn▕—pqrstuvwxyz␣1060ABCDEFGHIJKLMNOPˑ¶    
¶               
Test 1: set linebrea
+k + set list + fancy listchars¶   
▕———abcdefˑˑˑˑˑˑˑˑˑˑ¶         
+hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c▕———abcdef hijklmn▕—|
+pqrstuvwxyz␣1060ABC|
+DEFGHIJKLMNOPˑ¶|
¶|
Test 1: set linebrea|
+k + set list + fanc|
+y listchars¶|
▕———abcdefˑˑˑˑˑˑˑˑˑˑ|
+¶|
+hijklmn▕———ˑˑˑˑˑˑˑˑ|
@                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOPTest 1: set linebreak + set list + fancy listchars▕———abcdef+hijklmn▕———+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶~                                                          ~                                                          [No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            +hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines▕———abcdef                                                 +hijklmn▕———                                               +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 3: set linebreak nolist"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\t*mask = nil;\"
[?25l[?1c▕———▕—¶                  
+pqrstuvwxyz␣1060ABC
+¶+DEFGHIJKLMNOPˑ¶ˑˑˑˑ¶                 
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ
+¶                  
▕———*mask = nil;¶~[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c▕———*mask = nil;¶   
~                   
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak
[?25l[?1c     
    [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c*mask = nil;    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ▕———abcdef+hijklmn▕———+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 3: set         
+linebreak nolist   
    *mask = nil;    
~                   
~                   
~                   +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ¶                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       *mask = nil;Test 3: set linebreak nolist*mask = nil;~~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 4: set linebreak list listchars and concealing"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet c_defines=['#define ABCDE^I^I1','#define ABCDEF^I^I1','#define ABCDEFG^I^I

1','#define ABCDEFGH^I1', '#define MSG_MODE_FILE^I^I^I1','#define MSG_MODE_CONSO

LE^I^I2','#define MSG_MODE_FILE_AND_CONSOLE^I3','#define MSG_MODE_FILE_THEN_CONS

OLE^I4']
[?25l[?1c*mask = nil;    ||
Test 3: set|+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', c_defines)
[?25l[?1c#define             
+ABCDE      1       [?25h[?0c[?25l[?1c:[?25h[?0cvert resize 40
[?25l[?1c                    |                    |linebreak nolist|
    *mask = nil;                        |
~                    |                    |                    |
#define ABCDE1 |ABCDEF      1 |
#define ABCDEFG     1 |                    +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶*mask = nil;Test 3: set linebreak nolist*mask = nil;~~~[No Name] [+][?25h[?0c[?25l[?1c:[?25h[?0c$-7
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c#define ABCDE       1                   
#define ABCDEF      1                   
#define ABCDEFG     1                   
                                        
                                        
                                        
                                        
                                        
                                        
                                        #define ABCDEFGH    1
#define MSG_MODE_FILE1
#define MSG_MODE_CONSOLE2
#define MSG_MODE_FILE_AND_CONSOLE   3
#define MSG_MODE_FILE_THEN_CONSOLE  4
~                                       
~                                       [?25h[?0c[?25l[?1c:[?25h[?0cset list linebreak listchars=tab:>- cole=1
[?25l[?1c>-->--->->--->>--->--->-->--->--->--->--->-->-[?25h[?0c[?25l[?1c:[?25h[?0csyn match Conceal conceal cchar=>'AB\|MSG_MODE'
[?25l[?1cAB>CDEF>->CDEFG>->CDEFGH>->_FILE>------->_CONSOLE>------->_FILE_AND_CONSOLE>------->_FILE_THEN_CONSOLE>-------AB[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c#define ABCDE>-->---1|
#define >CDEF>-->---1|
#define >CDEFG>->---1|
#define >CDEFGH>----1|
#define >_FILE>--------->--->---1|
#define >_CONSOLE>---------->---2|
#define >_FILE_AND_CONSOLE>---------3   |
#define >_FILE_THEN_CONSOLE>--------4   |||~                                       
~                                       
[No Name] [+]                            +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶*mask = nil;Test 3: set linebreak nolist*mask = nil;~~~[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),7)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c>CDE>-7 more lines                                        
Test 4: set linebreak list listchars    
@                                       #define >CDEFG>->---1+ #define >CDEFGH>----1+#define >_FILE>--------->--->---1+ #define >_CONSOLE>---------->---2+#define >_FILE_AND_CONSOLE>---------3+ABCDE>
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 5: set linebreak list listchars and concealing part2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet c_defines=['bbeeeeee^I^I;^Isome text']
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', c_defines)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c@                                       
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        Test 4: set linebreak list listchars    
+and concealing
#define >CDE>-->---1
#define >CDEF>-->---1
#define >CDEFG>->---1
#define >CDEFGH>----1
#define >_FILE>--------->--->---1
#define >_CONSOLE>---------->---2
#define >_FILE_AND_CONSOLE>---------3
bbeeeeee>--->---;>--some text[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1cbbeeeeee>--->---;>--some text           
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       [?25h[?0c[?25l[?1c:[?25h[?0cset nowrap ts=2 list linebreak listchars=tab:>- cole=2 concealcursor=n
[?25l[?1c>;>some text      [?25h[?0c[?25l[?1c:[?25h[?0csyn clear
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match meaning    /;\s*\zs.*/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match hasword    /^\x\{8}/    contains=word
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match word       /\<\x\{8}\>/ contains=beginword,endword contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match beginword  /\<\x\x/     contained conceal
[?25l[?1ceeeeee>--[?25h[?0c[?25l[?1c:[?25h[?0csyn match endword    /\x\{6}\>/   contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi meaning   guibg=blue
[?25l[?1csome text[?25h[?0c[?25l[?1c:[?25h[?0chi beginword guibg=green
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi endword   guibg=red
[?25l[?1ceeeeee[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1ceeeeee>--->-;>some text||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
[No Name] [+]                            #define >CDEFG>->---1+#define >CDEFGH>----1+#define >_FILE>--------->--->---1+#define >_CONSOLE>---------->---2+#define >_FILE_AND_CONSOLE>---------3+[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c                                        
Test 5: set linebreak list listchars and
eeeeee>--->-;>some text                 #define >_CONSOLE>---------->---2      +                                      #define >_FILE_AND_CONSOLE>---------3  +                                                                                                                                                                                                                                                                                bbeeeeee    ; some textTest 5: set linebreak list listchars an+d concealing part2eeeeee>--->-;>some text                + [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 6: Screenattributes for comment"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 6: Screenattributes for comment    [?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', ' /*^I^I and some more */')
[?25l[?1c /*>>- and some more */                 [?25h[?0c[?25l[?1c:[?25h[?0cexe "set ft=c ts=7 linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail

:\u02d1,eol:\ub6"
[?25l[?1ceeeeee▕———————▕——————;▕—————some text¶|
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ¶▕———▕—————— and some more */¶#define >_CONSOLE>---------->---2         ;      some text[?25h[?0c[?25l[?1c:[?25h[?0csyntax on
[?25l[?1cbbeeeeee▕some text5>some text6for
 /* and some more */#define >_CONSOLE>---------->---2       #define >_FILE_AND_CONSOLE>---------3   bbeeeeeesome text5>some text                 [?25h[?0c[?25l[?1c:[?25h[?0chi SpecialKey term=underline ctermfg=red guifg=red
[?25l[?1c▕—————▕——————▕—————ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ▕———▕——————[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnnoremap <expr> GG ":let attr += ['".screenattr(screenrow(),screencol())."']\n

"[?25l[?1cbbeeeeee▕—————▕——————;▕—————some text¶|#define >_CONSOLE>---------->---2      [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt0
[?25l[?1c /*▕———▕—————— and some more */¶        
~                                       
~                                       
~                                       
~                                       
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       [?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['83']
[?25h[?0c[?25l[?1c:let attr += ['83']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', ['ScreenAttributes for test6:'])
[?25l[?1cScreenAttributes for test6:¶            [?25h[?0c[?25l[?1c:[?25h[?0cif attr[0] != attr[1] && attr[1] != attr[3] && attr[3] != attr[5]
[?25l[?1c
:  [?25h[?0c:   call append('$', "Attribut 0 and 1 and 3 and 5 are different!")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:   call append('$', "Not all attributes are different")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c/*▕———▕—————— and some more */¶|
ScreenAttributes for test6:¶|
Attribut 0 and 1 and 3 and 5 are differe||
~                                       #define >_CONSOLE>---------->---2      + #define >_FILE_AND_CONSOLE>---------3  + [?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 8: set linebreak with visual block mode and v_b_A and select

ion=exclusive and multibyte char"
[?25l[?1c/*▕———▕—————— and some more */¶|#define >_CONSOLE>---------->---2      [?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 8: set linebreak with visual block [?25h[?0c[?25l[?1clong line:ˑ¶                            [?25h[?0c[?25l[?1c¶                               
¶                           
¶                                       
¶                                      
oobar foobar foobar foobar foobarˑ¶[?25h[?0c[?25l[?1c
foobar foobar TARGET¶              [?25h[?0c[?25l[?1cÃ' at end¶[?25h[?0c[?25l[?1c:[?25h[?0cexe "norm! $3B\<C-v>eAx\<Esc>"
[?25l[?1cx' at end¶[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 9: a multibyte sign and colorcolumn"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr2=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c /*▕———▕—————— and some more */¶ScreenAttributes for test6:¶Attribut 0 and 1 and 3 and 5 are differe
Test 8: set linebreak with visual block
long line: foobar foobar foobar foobar f
¶                                       [?25h[?0c[?25l[?1c:[?25h[?0c$put ='a b c'
[?25l[?1ca b c¶                                  [?25h[?0c[?25l[?1c:[?25h[?0c$put ='a b c'
[?25l[?1ca b c¶                                  [?25h[?0c[?25l[?1c:[?25h[?0cset list nolinebreak cc=3
[?25l[?1c*
Scr
Att
Tesn 
a b
a b[?25h[?0c[?25l[?1c:[?25h[?0csign define foo text=^+
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csign place 1 name=foo line=50 buffer=2
[?25l[?1c   /*▕—▕—— and some more */¶  ScreenAttributes for test6:¶  Attribut 0 and 1 and 3 and 5 are diff
  Test 8: set linebreak with visual bloc
  long line: foobar foobar foobar foobar
  ¶ 
+a b c¶  a b c¶  
  ~~  #define >_CONSOLE>-->---2  +     #define >_FILE_AND_CONSOLE>--3  +     bbeeeeee  ;      some text    Test 5: set linebreak list listchars   +and concealing part2  eeeeee>--->-;>some text  +[?25h[?0c[?25l[?1c:[?25h[?0cnorm! 2kztj
[?25l[?1c  ¶                                     
+a b c¶                                
  a b c¶                                
  ~                                     
  ~                                     
                                        
                                        
                                        
                                        
                                          
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     [?25h[?0c[?25l[?1c:[?25h[?0clet line1=line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['93']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:[?25h[?0clet line2=line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr2=attr
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['93']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c  ¶ |
+a b c¶|
  a b c¶||||||||  
  
  
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     
[No Name] [+]                              #define >_CONSOLE>---------->---2      +     #define >_FILE_AND_CONSOLE>---------3  +     bbeeeeee;      some text    Test 5: set linebreak list listchars  +and concealing part2  eeeeee>--->-;>some text  +[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),3)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c3 more lines¶                                     Test 9: a multibyte sign and colorcolu  ¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ+a b c¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ  a b c¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑa b cTest 9: a multibyte sign and colorcolumn  ¶                     ++a b c¶                                 a b c¶               [?25h[?0c[?25l[?1c:[?25h[?0c" expected: attr[2] is different because of colorcolumn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
[?25l[?1c
:  [?25h[?0c:   call append('$', "Screen attributes are different!")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:   call append('$', "Screen attributes are the same!")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c  ¶ |
+a b c¶|
  a b c¶|
  ¶ |Screen attributes are the same!¶        a b c    Test 9: a multibyte sign and colorcol  +umn[?25h[?0c[?25l[?1c:[?25h[?0c%w! test.out
[?25l[?1c"test.out" [New File] 57 lines, 1882 characters writtentest.out     test.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listlbr_utf8 = test61; then \
#	  if diff test.out test_listlbr_utf8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listlbr_utf8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr_utf8.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test54.failed test.ok test.out X* viminfo
cp test54.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test54.in
[?25h[?8c[?25h[?0c[?25l[?1c"test54.in" 22 lines, 658 charactersSome tests for buffer-local autocommands

STARTTEST
:so small.vim
:e xx
:if has("vms")
: !del test.out.*
: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out
:else
: !rm -f test.out
: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out
:endif
:e somefile" here, autocommand for xx shall write test.out
:" but autocommand shall not apply to buffer named <buffer>:bwipe xx" here, autocommand shall be auto-deleted
:e xx" nothing shall be written
:e somefile" nothing shall be written
:qa!
ENDTEST

start of test file xx
end of test file xx[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cSome tests for buffer-local autocommands[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 15 lines, 555 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce xx
[?25l[?1c"xx" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: !del test.out.*

[?25l[?1c:  [?25h[?0c: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > te

st.out

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: !rm -f test.out

[?25l[?1c:!rm -f test.out[?25h[?0c
[?25l[?1c:  [?25h[?0c: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce somefile           " here, autocommand for xx shall write test.out 
[?25l[?1c:!echo buffer-local autommand in xx>> test.out

[?25h[?0c[?25l[?1c"somefile" [New File]

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c                     " but autocommand shall not apply to buffer named <buffer

>[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe xx             " here, autocommand shall be auto-deleted
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce xx                 " nothing shall be written
[?25l[?1c"xx" [New File][?25h[?0c[?25l[?1c:[?25h[?0ce somefile           " nothing shall be written
[?25l[?1c"somefile" [New File][?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test54 = test61; then \
#	  if diff test.out test54.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test54.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test54.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test17.in
[?25h[?8c[?25h[?0c[?25l[?1c"test17.in" 135 lines, 2431 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
:"
:if has("unix")
:let $CDIR = "."
/CDIR
:else
:if has("amiga")
:let $TDIR = "/testdir"
:else
:let $TDIR = "."
:endif
/TDIR
:endif[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 564 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("ebcdic")
[?25l[?1c
:  [?25h[?0c: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:if has("unix")
:let $CDIR = "."
/CDIR[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:let $CDIR = "."

[?25l[?1c:  [?25h[?0c/CDIR

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:if has("amiga")

[?25l[?1c:    [?25h[?0c:let $TDIR = "/testdir"

[?25l[?1c:    [?25h[?0c:else

[?25l[?1c:    [?25h[?0c:let $TDIR = "."

[?25l[?1c:    [?25h[?0c:endif

[?25l[?1c:  [?25h[?0c/TDIR

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:if has("unix")
:let $CDIR = "."
/CDIR
:else
:if has("amiga")
:let $TDIR = "/testdir"
:else
:let $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.outw! test.outgf:set ff=unix
:w! test.out
:brewindENDTEST${CDIR}/test17a.in[?25h[?0c[?25l[?1c
:[?25h[?0c" Dummy writing for making that sure gf doesn't fail even if the current
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" file is modified. It can be occurred when executing the following command
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" directly on Windows without fixing the 'fileformat':
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  > nmake -f Make_dos.mak test17.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 135 lines, 2431 characters written[?25h[?0c[?25l[?1c
"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/./test17a.in" 3 lines, 88 c

haracters

Press ENTER or type command to continue[?25h[?0c[?25l[?1cThis file is just to test "gf" in test 17.
The contents is not important.
Just testing!
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" 3 lines, 88 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 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.outgf:set ff=unix:w! test.out:brewindENDTEST        ${CDIR}/test17a.in        $TDIR/test17a.inSTARTTEST:" check for 'include' without \zs or \ze:lang C:call delete("./Xbase.a"):call delete("Xdir1", "rf"):!mkdir Xdir1:!mkdir "Xdir1/dir2":e! Xdir1/dir2/foo.ai#include   "bar.a"^[:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 23 lines, 396 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:e Xdir1/dir2/baz.a
i#include"foo.a"^[:
:w
:e Xbase.a
:set path=Xdir1/dir2
i#include    <foo.a>^[:
:w
:redir! >>test.out
:checkpath!
:redir END
:brewind
ENDTEST

STARTTEST
:" check for 'include' with \zs and \ze
:call delete("./Xbase.b")
:call delete("Xdir1", "rf")
:!mkdir Xdir1
:!mkdir "Xdir1/dir2"
:let &include='^\s*%inc\s*/\zs[^/]\+\ze'
:function! DotsToSlashes()
:  return substitute(v:fname, '\.', '/', 'g') . '.b'
:endfunction[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' without \zs or \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.a")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.a
[?25l[?1c"Xdir1/dir2/foo.a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c#include   "bar.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.a" [New File] 1 line, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.a
[?25l[?1c"Xdir1/dir2/bar.a" [New File][?25h[?0c[?25l[?1c#include      "baz.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.a" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.a
[?25l[?1c"Xdir1/dir2/baz.a" [New File][?25h[?0c[?25l[?1c#include"foo.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.a" [New File] 1 line, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.a
[?25l[?1c"Xbase.a" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c#include    <foo.a>[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.a" [New File] 1 line, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c#include    <foo.a>
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 charactersi#include            "foo.a"^[:
:w:e Xbase.a:set path=Xdir1/dir2i#include    <foo.a>^[::w:redir! >>test.out:checkpath!:redir END:brewindENDTESTSTARTTEST:" check for 'include' with \zs and \ze:call delete("./Xbase.b"):call delete("Xdir1", "rf"):!mkdir Xdir1:!mkdir "Xdir1/dir2":let &include='^\s*%inc\s*/\zs[^/]\+\ze':function! DotsToSlashes():  return substitute(v:fname, '\.', '/', 'g') . '.b':endfunction:let &includeexpr='DotsToSlashes()'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 27 lines, 532 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 delete("Xdir1", "rf")
:!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][?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' with \zs and \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.b")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0clet &include='^\s*%inc\s*/\zs[^/]\+\ze'
[?25l[?1c: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 delete("Xdir1", "rf")
:!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][?25h[?0c[?25l[?1c:[?25h[?0cfunction! DotsToSlashes()
[?25l[?1c
:  [?25h[?0c:  return substitute(v:fname, '\.', '/', 'g') . '.b'

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:e Xdir1/dir2/baz.b
i%inc/foo/^[:[?25h[?0c[?25l[?1c:[?25h[?0clet &includeexpr='DotsToSlashes()'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.b
[?25l[?1c"Xdir1/dir2/foo.b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c%inc   /bar/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.b" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.b
[?25l[?1c"Xdir1/dir2/bar.b" [New File][?25h[?0c[?25l[?1c%inc      /baz/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.b" [New File] 1 line, 16 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.b
[?25l[?1c"Xdir1/dir2/baz.b" [New File][?25h[?0c[?25l[?1c%inc/foo/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.b" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.b
[?25l[?1c"Xbase.b" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c%inc    /foo/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.b" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c%inc    /foo/
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 charactersi%inc            /foo/^[:
:w:e Xbase.b:set path=Xdir1/dir2i%inc    /foo/^[::w:redir! >>test.out:checkpath!:redir END:brewindENDTESTSTARTTEST:" check for 'include' with \zs and no \ze:call delete("./Xbase.c"):call delete("Xdir1", "rf"):!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[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 39 lines, 745 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' with \zs and no \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.c")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0clet &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0cfunction! StripNewlineChar()
[?25l[?1c
:  [?25h[?0c:  if v:fname =~ '\n$'

[?25l[?1c:    [?25h[?0c:    return v:fname[:-2]

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  return v:fname

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:w
:e Xdir1/dir2/baz.c
i%incfoo.c^[:
:w
:e Xdir1/dir2/FALSE.c[?25h[?0c[?25l[?1c
:[?25h[?0clet &includeexpr='StripNewlineChar()'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.c
[?25l[?1c"Xdir1/dir2/foo.c" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c%inc   bar.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.c" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.c
[?25l[?1c"Xdir1/dir2/bar.c" [New File][?25h[?0c[?25l[?1c%inc      baz.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.c" [New File] 1 line, 16 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.c
[?25l[?1c"Xdir1/dir2/baz.c" [New File][?25h[?0c[?25l[?1c%incfoo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/FALSE.c
[?25l[?1c"Xdir1/dir2/FALSE.c" [New File][?25h[?0c[?25l[?1c%incfoo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/FALSE.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.c
[?25l[?1c"Xbase.c" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c%inc    FALSE.c foo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c%inc    FALSE.c foo.c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 characters:w:e Xdir1/dir2/baz.ci%inc            foo.c^[::w:e Xdir1/dir2/FALSE.ci%inc            foo.c^[::w:e Xbase.c:set path=Xdir1/dir2i%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:qENDTEST[?25h[?0c[?25l[?1c:[?25h[?0c" change "\" to "/" for Windows and fix 'fileformat'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce test.out
[?25l[?1c"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)[?25h[?0c[?25l[?1c:[?25h[?0c%s#\\#/#g
[?25l[?1cE486: Pattern not found: \\[?25h[?0c[?25l[?1c:[?25h[?0cset ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 33 lines, 655 characters written[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test17 = test61; then \
#	  if diff test.out test17.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test17.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test17.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test30.in
[?25h[?8c[?25h[?0c[?25l[?1c"test30.in" 237 lines, 3762 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=
:/^unix/;/eof/-1w! XXUnix
:/^dos/;/eof/-1w! XXDos
:set bin noeol
:$w! XXMac
Gonoeol^[
:$w! XXEol
:set nobin eol
:enew!
:bwipe XXUnix XXDos XXMac
:" create mixed format files
:if has("vms")
: !copy XXUnix,XXDos XXUxDs.
: !copy XXUnix,XXMac XXUxMac.
: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for a lot of variations of the 'fileformats' option[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 221 lines, 3592 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72
Go8^[:$r XXtt81
:$r XXtt82
Go9^[:$r XXtt91
:$r XXtt92
:$r XXtt93
Go10^[:$r XXUnix
:set nobinary ff&
:w
:qa!
ENDTEST

unix
unix
eof

dos^M
dos^M
eof

mac^Mmac^M[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" first write three test files, one in each format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^unix/;/eof/-1w! XXUnix
[?25l[?1c"XXUnix" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^dos/;/eof/-1w! XXDos
[?25l[?1c"XXDos" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset bin noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$w! XXMac
[?25l[?1c"XXMac" [New File][Incomplete last line] 1 line, 8 characters written[?25h[?0c[?25l[?1c
noeol[?25h[?0c[?25l[?1c
:[?25h[?0c$w! XXEol
[?25l[?1c"XXEol" [New File][Incomplete last line] 1 line, 5 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset nobin eol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cenew!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c3 buffers wiped out[?25h[?0c[?25l[?1c:[?25h[?0c" create mixed format files
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: !copy XXUnix,XXDos XXUxDs.

[?25l[?1c:  [?25h[?0c: !copy XXUnix,XXMac XXUxMac.

[?25l[?1c:  [?25h[?0c: !copy XXDos,XXMac  XXDosMac.

[?25l[?1c:  [?25h[?0c: !copy XXMac,XXEol  XXMacEol.

[?25l[?1c:  [?25h[?0c: !copy XXUnix,XXDos,XXMac XXUxDsMc.

[?25l[?1c:  [?25h[?0c:elseif has("win32")

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXDos XXUxDs

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXMac XXUxMac

[?25l[?1c:  [?25h[?0c: !copy /b XXDos+XXMac XXDosMac

[?25l[?1c:  [?25h[?0c: !copy /b XXMac+XXEol XXMacEol

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXDos+XXMac XXUxDsMc

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: !cat XXUnix XXDos >XXUxDs

[?25l[?1c:!cat XXUnix XXDos >XXUxDs[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXUnix XXMac >XXUxMac

[?25l[?1c:!cat XXUnix XXMac >XXUxMac[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXDos XXMac >XXDosMac

[?25l[?1c:!cat XXDos XXMac >XXDosMac[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXMac XXEol >XXMacEol

[?25l[?1c:!cat XXMac XXEol >XXMacEol[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXUnix XXDos XXMac >XXUxDsMc

[?25l[?1c:!cat XXUnix XXDos XXMac >XXUxDsMc[?25h[?0c
[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' empty
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" 2 lines, 10 charactersunix
unix[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" 2 lines, 10 charactersdos^M
dos^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt01
[?25l[?1c"XXtt01" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [Incomplete last line] 1 line, 8 charactersmacmac^M
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt02
[?25l[?1c"XXtt02" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=dos
[?25l[?1c:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72Go8^[:$r XXtt81:$r XXtt82Go9^[:$r XXtt91:$r XXtt92:$r XXtt93Go10^[:$r XXUnix:set nobinary ff&:w:qa!ENDTESTunixunixeofdos^Mdos^Meofmac^Mmac^M[?25h[?0c[?25l[?1c
:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" [CR missing][dos format] 2 lines, 10 charactersunixunix~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt11
[?25l[?1c"XXtt11" [New File][dos format] 2 lines, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" [dos format] 2 lines, 10 charactersdosdos[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt12
[?25l[?1c"XXtt12" [New File][dos format] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [Incomplete last line][dos format] 1 line, 8 charactersmac^Mmac^M
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt13
[?25l[?1c"XXtt13" [New File][dos format] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=mac
[?25l[?1c:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72Go8^[:$r XXtt81:$r XXtt82Go9^[:$r XXtt91:$r XXtt92:$r XXtt93Go10^[:$r XXUnix:set nobinary ff&:w:qa!ENDTESTunixunixeofdosdoseofmac^Jmac[?25h[?0c[?25l[?1c
:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" [Incomplete last line][mac format] 1 line, 10 charactersunix^Junix^J
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt21
[?25l[?1c"XXtt21" [New File][mac format] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" [Incomplete last line][mac format] 3 lines, 10 charactersdos^Jdos^J[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt22
[?25l[?1c"XXtt22" [New File][mac format] 3 lines, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [mac format] 2 lines, 8 charactersmac
mac~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt23
[?25l[?1c"XXtt23" [New File][mac format] 2 lines, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c^Jdos
^Jeof^J^Jmac
mac^J[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to one format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt31
[?25l[?1c"XXtt31" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt32
[?25l[?1c"XXtt32" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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] 237 lines, 3762 characters[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [mac format] 4 lines, 28 charactersunix^Junix^Jdos^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt33
[?25l[?1c"XXtt33" [New File][mac format] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters^Jdoseof^J^Jmac
mac^J[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to two formats
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt41
[?25l[?1c"XXtt41" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxMac
[?25l[?1c"XXUxMac" [Incomplete last line] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt42
[?25l[?1c"XXtt42" [New File] 3 lines, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDosMac
[?25l[?1c"XXDosMac" [Incomplete last line][dos format] 3 lines, 18 charactersdodos
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt43
[?25l[?1c"XXtt43" [New File][dos format] 3 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXDosMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDs
[?25l[?1c"XXUxDs" 4 lines, 20 charactersunixunix
dos^Mdos^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt51
[?25l[?1c"XXtt51" [New File] 4 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDs
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt52
[?25l[?1c"XXtt52" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDosMac
[?25l[?1c"XXDosMac" [mac format] 4 lines, 18 charactersdo^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt53
[?25l[?1c"XXtt53" [New File][mac format] 4 lines, 18 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXDosMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cunix,mac:unix[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt54
[?25l[?1c"XXtt54" [New File] 2 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDs
[?25l[?1c"XXUxDs" [CR missing][dos format] 4 lines, 20 charactersunixunix
dosdos
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt61
[?25l[?1c"XXtt61" [New File][dos format] 4 lines, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDs
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxMac
[?25l[?1c"XXUxMac" [Incomplete last line][CR missing][dos format] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cdos,mac:dos[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt62
[?25l[?1c"XXtt62" [New File][dos format] 4 lines, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxMac
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt63
[?25l[?1c"XXtt63" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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] 237 lines, 3762 characters[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMacEol
[?25l[?1c"XXMacEol" [Incomplete last line][mac format] 3 lines, 13 charactersmacmac
noeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cdos,mac:mac[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt64
[?25l[?1c"XXtt64" [New File][mac format] 4 lines, 26 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXMacEol
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to three formats
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt71
[?25l[?1c"XXtt71" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cunix,dos,mac:unix[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt72
[?25l[?1c"XXtt72" [New File] 2 lines, 24 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac,dos,unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt81
[?25l[?1c"XXtt81" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line][mac format] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cmac,dos,unix:mac[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt82
[?25l[?1c"XXtt82" [New File][mac format] 2 lines, 23 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0c" try with 'binary' set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac,unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset binary
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt91
[?25l[?1c"XXtt91" [New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt92
[?25l[?1c"XXtt92" [New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt93
[?25l[?1c"XXtt93" [New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Append "END" to each file so that we can see what the last written char was.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix nobin
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cEND[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt01
[?25l[?1c"XXtt01" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt02
[?25l[?1c"XXtt02" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt11
[?25l[?1c"XXtt11" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt12
[?25l[?1c"XXtt12" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt13
[?25l[?1c"XXtt13" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt21
[?25l[?1c"XXtt21" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt22
[?25l[?1c"XXtt22" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt23
[?25l[?1c"XXtt23" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt31
[?25l[?1c"XXtt31" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt32
[?25l[?1c"XXtt32" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt33
[?25l[?1c"XXtt33" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt41
[?25l[?1c"XXtt41" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt42
[?25l[?1c"XXtt42" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt43
[?25l[?1c"XXtt43" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt51
[?25l[?1c"XXtt51" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt52
[?25l[?1c"XXtt52" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt53
[?25l[?1c"XXtt53" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt54
[?25l[?1c"XXtt54" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt61
[?25l[?1c"XXtt61" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt62
[?25l[?1c"XXtt62" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt63
[?25l[?1c"XXtt63" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt64
[?25l[?1c"XXtt64" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt71
[?25l[?1c"XXtt71" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt72
[?25l[?1c"XXtt72" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt81
[?25l[?1c"XXtt81" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt82
[?25l[?1c"XXtt82" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt91
[?25l[?1c"XXtt91" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt92
[?25l[?1c"XXtt92" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt93
[?25l[?1c"XXtt93" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Concatenate the results.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Make fileformat of test.out the native fileformat.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Add a newline at the end.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset binary
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 2 lines, 10 charactersunix
unix[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt01
[?25l[?1c"XXtt01" 3 lines, 14 charactersdos^Mdos^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt02
[?25l[?1c"XXtt02" 2 lines, 13 charactersmac^Mmac^MEND[?25h[?0c
[?25l[?1c
1[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt11
[?25l[?1c"XXtt11" 3 lines, 16 charactersunix^Munix^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt12
[?25l[?1c"XXtt12" 3 lines, 14 charactersdos^Mdos^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt13
[?25l[?1c"XXtt13" 2 lines, 14 charactersmac^Mmac^M^MEND[?25h[?0c
[?25l[?1c
2[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt21
[?25l[?1c"XXtt21" 3 lines, 15 charactersunixunix^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt22
[?25l[?1c"XXtt22" 3 lines, 15 charactersdos^Mdos^M^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt23
[?25l[?1c"XXtt23" 1 line, 12 characters
mac^Mmac^MEND[?25h[?0c[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt31
[?25l[?1c"XXtt31" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt32
[?25l[?1c"XXtt32" 6 lines, 36 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt33
[?25l[?1c"XXtt33" 5 lines, 32 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
unix[?25h[?0c[?25l[?1cunix
dos^M
dos^M
mac^Mmac^MEND
[?25h[?0c[?25l[?1c
4[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt41
[?25l[?1c"XXtt41" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt42
[?25l[?1c"XXtt42" 4 lines, 23 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt43
[?25l[?1c"XXtt43" 4 lines, 24 charactersunix
mac^Mmac^M
END
dos^M[?25h[?0c[?25l[?1cdos^M
mac^Mmac^M^M
END
[?25h[?0c[?25l[?1c
5[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt51
[?25l[?1c"XXtt51" 5 lines, 24 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt52
[?25l[?1c"XXtt52" 6 lines, 33 charactersunix
dos^M
dos^M
END
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt53
[?25l[?1c"XXtt53" 3 lines, 22 charactersunix
dos^M
dos^M
mac^Mmac^M
END
dos^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt54
[?25l[?1c"XXtt54" 3 lines, 24 charactersdos^M
mac^Mmac^MEND
unix,mac:unix[?25h[?0c[?25l[?1cnoeol
END
[?25h[?0c[?25l[?1c
6[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt61
[?25l[?1c"XXtt61" 5 lines, 26 characters
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt62
[?25l[?1c"XXtt62" 5 lines, 39 charactersunix^M
dos^M
dos^M
END
dos,mac:dos^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt63
[?25l[?1c"XXtt63" 6 lines, 36 charactersunix^M
unix^M
mac^Mmac^M^M
END
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt64
[?25l[?1c"XXtt64" 1 line, 30 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
dos,mac:mac^Mmac^Mmac^Mnoeol^MEND[?25h[?0c[?25l[?1c
7[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt71
[?25l[?1c"XXtt71" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt72
[?25l[?1c"XXtt72" 3 lines, 28 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix,dos,mac:unix[?25h[?0c[?25l[?1cnoeol
END
[?25h[?0c[?25l[?1c
8[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt81
[?25l[?1c"XXtt81" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt82
[?25l[?1c"XXtt82" 1 line, 27 charactersunix
dos^M
dos^M
mac^Mmac^M
END
mac,dos,unix:mac^Mnoeol^MEND[?25h[?0c[?25l[?1c
9[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt91
[?25l[?1c"XXtt91" 5 lines, 32 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt92
[?25l[?1c"XXtt92" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt93
[?25l[?1c"XXtt93" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?25h[?0c[?25l[?1cunix
dos^M
dos^M
mac^Mmac^MEND
[?25h[?0c[?25l[?1c
10[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXUnix
[?25l[?1c"XXUnix" 2 lines, 10 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0cset nobinary ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 130 lines, 786 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test30 = test61; then \
#	  if diff test.out test30.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test30.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test30.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test32.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for insert expansion[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c[?25l[?1c
:so small.vim[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 533 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cse nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
[?25l[?1c"Xtestfile" [New] 3L, 57C written[?25h[?0c[?25l[?1c:[?25h[?0cse cot=
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       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
ENDTESTstart of testfile
run1run2test32.in                                                                       [?25h[?0c[?25l[?1c-- 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[+][?25h[?0c[?25l[?1c-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?25h[?0c[?25l[?1c3[?25h[?0c
[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?25h[?0c
[?25l[?1c:[?25h[?0cse cpt=.,w,i
[?25l[?1c[?25h[?0c[?25l[?1c-- 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 matchMakefileto      run3
Makefileto      run3
Makefileto      run3[?25h[?0c[?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=kXtestfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw Xtest11.one
[?25l[?1c"Xtest11.one" [New] 9L, 104C writtenXtest11.one  [?25h[?0c[?25l[?1c:[?25h[?0cw Xtest11.two
[?25l[?1c"Xtest11.two" [New] 9L, 104C written[?25h[?0c[?25l[?1c-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning dictionary: Xtestfilematch in file Xtestfile-- Keyword completion (^N^P) match 1 of 9test11[+]I[?25h[?0c [?25l[?1c-- Keyword completion (^N^P) match 1 of 9-- INSERT --[?25h[?0c[?25l[?1c-- INSERT --Xtest11
[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0c" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" CTRL-X CTRL-F again to verify this doesn't cause trouble.
[?25l[?1c[?25h[?0c[?25l[?1c-- 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 442
Make_all.mak
run1 run2d[?25h[?0c [?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c
run1 run2~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0cse cpt=w
[?25l[?1c[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=u nohid
[?25l[?1c[?25h[?0c[?25l[?1c

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
[?25l[?1c[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c
ru[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New] 15L, 175C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test32 = test61; then \
#	  if diff test.out test32.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test32.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test32.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test58.in
[?25h[?8c[?25h[?0c[?25l[?1c"test58.in" 656 lines, 11024 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for spell checking.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2591 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" NOSLITSUGS
:call TestOne('8', '8')
:" Numbers
:call TestOne('9', '9')
:"
:" clean up for valgrind
:delfunc TestOne
:set spl= enc=latin1
:"
gg:/^test output:/,$wq! test.out
ENDTEST

1affstart
SET ISO8859-1


[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Don't want to depend on the locale from the environment
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c:"
:" NOSLITSUGS
:call TestOne('8', '8')
:" Numbers
:call TestOne('9', '9')
:"
:" clean up for valgrind
:delfunc TestOne
:set spl= enc=latin1
:"
gg:/^test output:/,$wq! test.out
ENDTEST

1affstart
SET ISO8859-1


:"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check using z= in new buffer (crash fixed by patch 7.4a.028).
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset maxmem=512 spell
[?25l[?1cvim

STARTTESTlatin1maxmem
iasdaff/.dic
:func TestOne(aff, dicspellfilea:affa:dicspldic and .aff
  exea:aff . 'affstarta:aff . 'affend/-1w! Xtest.aff
  exea:dic . 'dicstarta:dic . 'dicend/-1w! Xtest.dic
  mkspell! Xtest Xtest[?25h[?0c[?25l[?1casdTests for spell checking.     vim: set ft=vim :[?25h[?0c[?25l[?1cChange "asdTests" to:

 1 "Acid tests"

 2 "Attests"

 3 "Ass Tests"

 4 "As Tests"

 5 "Sad Tests"

 6 "Ads Tests"

 7 "As tests"

 8 "As detests"

 9 "Add Tests"

10 "Aid Tests"

11 "Ash Tests"

12 "Ad Tests"

13 "And Tests"

14 "Ask Tests"

15 "Asp Tests"

16 "USD Tests"

17 "Astutest"

18 "Autotests"

19 "Sadists"

20 "Asst Tests"

21 "Assad Tests"

22 "SSD Tests"

Type number and <Enter> or click with mouse (empty cancels): [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Function to test .aff/.dic with list of good and bad words.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc TestOne(aff, dic)
[?25l[?1c
:  [?25h[?0c  set spellfile=

[?25l[?1c:  [?25h[?0c  $put =''

[?25l[?1c:  [?25h[?0c  $put ='test '. a:aff . '-' . a:dic

[?25l[?1c:  [?25h[?0c  " Generate a .spl file from a .dic and .aff file.

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l[?1c:  [?25h[?0c  mkspell! Xtest Xtest

[?25l[?1c:  [?25h[?0c  " use that spell file

[?25l[?1c:  [?25h[?0c  set spl=Xtest.latin1.spl spell

[?25l[?1c:  [?25h[?0c  " list all valid words

[?25l[?1c:  [?25h[?0c  spelldump

[?25l[?1c:  [?25h[?0c  %yank

[?25l[?1c:  [?25h[?0c  quit

[?25l[?1c:  [?25h[?0c  $put

[?25l[?1c:  [?25h[?0c  $put ='-------'

[?25l[?1c:  [?25h[?0c  " find all bad words and suggestions for them

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'good:'

[?25l[?1c:  [?25h[?0c  normal 0f:]s

[?25l[?1c:  [?25h[?0c  let prevbad = ''

[?25l[?1c:  [?25h[?0c  while 1

[?25l[?1c:    [?25h[?0c    let [bad, a] = spellbadword()

[?25l[?1c:    [?25h[?0c    if bad == '' || bad == prevbad || bad == 'badend'

[?25l[?1c:      [?25h[?0c      break

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let prevbad = bad

[?25l[?1c:    [?25h[?0c    let lst = spellsuggest(bad, 3)

[?25l[?1c:    [?25h[?0c    normal mm

[?25l[?1c:    [?25h[?0c    $put =bad

[?25l[?1c:    [?25h[?0c    $put =string(lst)

[?25l[?1c:    [?25h[?0c    normal `m]s

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('1', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1cthe 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']
end
['put', 'uk', 'test']th['put', 'uk', 'test']gebletegek[?25h[?0c[?25l[?1c
kepereneven[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
everles gesvets etele[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l[?1c"Xtest.aff" 151 lines, 3412 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest Xtest
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1c-------
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']
end['put', 'uk', 'test']
the['put', 'uk', 'test']gebletegekkepereneveneverles gesvet etelekbltykk[?25h[?0c[?25l[?1c
kprnfn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
*fls kswts tl[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" also use an addition file
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^addstart/+1,/^addend/-1w! Xtest.latin1.add
[?25l[?1c"Xtest.latin1.add" [New File] 3 lines, 38 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest.latin1.add.spl Xtest.latin1.add
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0cset spellfile=Xtest.latin1.add
[?25l[?1casdTests for spell checking.     vim: set ft=vim :

STARTTEST
:so small.vim
:"
:" Don't want to depend on the locale from the environment[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cinputs
['input', 'puts', 'outputs']
comment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_us.latin1.spl
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['input', 'puts', 'outputs']
comment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ccomment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_gb.latin1.spl
[?25l[?1celequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
elekwent
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_nz.latin1.spl
[?25l[?1celequint
elekwint
elekwint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
elekwent
elequint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cOk
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_ca.latin1.spl
[?25l[?1celequint
elekwint
elekwint

elequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ctest
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet str a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Postponed prefixes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('2', '1')
[?25l[?1c"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

2affend

2good: puts
badendaddstar
/regions=usgbnz
elequ/2/3
addendtest2:test elekwint test elekwent asdf[?25h[?0c[?25l[?1c:[?25h[?0c" Compound words
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('3', '3')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('4', '4')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('5', '5')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('6', '6')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('7', '7')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c1234
mee/391,111,9999
bar/17,61003,123
lead/2
tail/123
middle/77,1
7dicend

bad: mee meea2 prabar probarmaat middle leadmiddle middletail tailleadleadprobar
badend

Test NOSLITSUGS

8affstart
SET ISO8859-1

NOSPLITSUGS
8affend

8dicstart[?25h[?0c[?25l[?1c:[?25h[?0c" NOSLITSUGS
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('8', '8')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c" Numbers
[?25l[?1cNOSPLITSUGS
8affend

8dicstart
1234
foo
bar
faabar
8dicend

8good: foo bar faabar
bad: foobar barfooTest Numbers9affstart9affend9dicstart
1234
foo[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('9', '9')
[?25l[?1cError detected while processing function TestOne:

line    5:

E493: Backwards range given: 1;/^9affstart/+1,/^9affend/-1w! Xtest.aff

"Xtest.dic" 3 lines, 13 characters written

Reading affix file Xtest.aff ...

Reading dictionary file Xtest.dic ...

line      2, word      0 - foo
Compressing word tree...
Compressed 2 of 15 nodes; 13 (86%) remaining

Writing spell file Xtest.latin1.spl ...

Done!

Estimated runtime memory use: 65 bytes

3 lines yanked

3 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1cTest Numbers

9affstart
9affend

9dicstart
1234
foo
bar
9dicend

9good: 0b1011 0777 1234 0x01ff
badend


test output:

test 1-1# ile: Xtest.latin1.spl
Comment
input[?25h[?0c[?25l[?1c:[?25h[?0c" clean up for valgrind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestOne
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset spl= enc=latin1
[?25l[?1cTest Numbers

9affstart
9affend

9dicstart
1234
foo
bar
9dicend

9good: 0b1011 0777 1234 0x01ff
badend


test output:

test 1-1
# file: Xtest.latin1.spl
Comment
deol
input[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^test output:/,$wq! test.out
[?25l[?1c"test.out" [New File] 289 lines, 3844 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test58 = test61; then \
#	  if diff test.out test58.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test58.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test58.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test59.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 106 lines, 2520 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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


[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Don't want to depend on the locale from the environment.  The .aff and .dic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" text is in latin1, the test text is utf-8.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c: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


:" 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[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf-8
[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Function to test .aff/.dic with list of good and bad words.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc TestOne(aff, dic)
[?25l[?1c
:  [?25h[?0c  set spellfile=

[?25l[?1c:  [?25h[?0c  $put =''

[?25l[?1c:  [?25h[?0c  $put ='test '. a:aff . '-' . a:dic

[?25l[?1c:  [?25h[?0c  " Generate a .spl file from a .dic and .aff file.

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l[?1c:  [?25h[?0c  mkspell! Xtest Xtest

[?25l[?1c:  [?25h[?0c  " use that spell file

[?25l[?1c:  [?25h[?0c  set spl=Xtest.utf-8.spl spell

[?25l[?1c:  [?25h[?0c  " list all valid words

[?25l[?1c:  [?25h[?0c  spelldump

[?25l[?1c:  [?25h[?0c  %yank

[?25l[?1c:  [?25h[?0c  quit

[?25l[?1c:  [?25h[?0c  $put

[?25l[?1c:  [?25h[?0c  $put ='-------'

[?25l[?1c:  [?25h[?0c  " find all bad words and suggestions for them

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'good:'

[?25l[?1c:  [?25h[?0c  normal 0f:]s

[?25l[?1c:  [?25h[?0c  let prevbad = ''

[?25l[?1c:  [?25h[?0c  while 1

[?25l[?1c:    [?25h[?0c    let [bad, a] = spellbadword()

[?25l[?1c:    [?25h[?0c    if bad == '' || bad == prevbad || bad == 'badend'

[?25l[?1c:      [?25h[?0c      break

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let prevbad = bad

[?25l[?1c:    [?25h[?0c    let lst = spellsuggest(bad, 3)

[?25l[?1c:    [?25h[?0c    normal mm

[?25l[?1c:    [?25h[?0c    $put =bad

[?25l[?1c:    [?25h[?0c    $put =string(lst)

[?25l[?1c:    [?25h[?0c    normal `m]s

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('1', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1cthe 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[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('kóopërÿnôven')
[?25l[?1c
kepereneven[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
everles gesvets etele[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l[?1c"Xtest.aff" 153 lines, 3426 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest Xtest
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1c-------
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[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('kóopërÿnôven')
[?25l[?1c
kprnfn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
*fls kswts tl[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" also use an addition file
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^addstart/+1,/^addend/-1w! Xtest.utf-8.add
[?25l[?1c"Xtest.utf-8.add" [New File] 3 lines, 38 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest.utf-8.add.spl Xtest.utf-8.add
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0cset spellfile=Xtest.utf-8.add
[?25l[?1cTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1ctomato 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 !![?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cinputs
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_us.utf-8.spl
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ccomment
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_gb.utf-8.spl
[?25l[?1celequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cok
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_nz.utf-8.spl
[?25l[?1celequint
elekwint
elekwint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cOk
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_ca.utf-8.spl
[?25l[?1celequint
elekwint
elekwint

elequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ctest
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet str a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Postponed prefixes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('2', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1caddstart
/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[?25h[?0c[?25l[?1c:[?25h[?0c" Compound words
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('3', '3')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('4', '4')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('5', '5')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('6', '6')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('7', '7')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c1234
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[?25h[?0c[?25l[?1c:[?25h[?0c" clean up for valgrind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestOne
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset spl= enc=latin1
[?25l[?1c1234
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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^test output:/,$wq! test.out
[?25l[?1c"test.out" [New File] 270 lines, 3685 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test59 = test61; then \
#	  if diff test.out test59.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test59.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test59.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test72.in
[?25h[?8c[?25h[?0c[?25l[?1c"test72.in" 146 lines, 2110 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/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for undo file.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 135 lines, 1913 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:bwipe!
:e Xtestfile
foo2bar
:set key=
/bar
:.w >>test.out
u:.w >>test.out
u:.w >>test.out
u:.w >>test.out
:"
:" Rename the undo file so that it gets cleaned up.
:if has("vms")
: call rename("_un_Xtestfile", "Xtestundo")
:else
: call rename(".Xtestfile.un~", "Xtestundo")
:endif
:qa!
ENDTEST

1111 -----
2222 -----

123456789[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile': first a simple one-line change.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100 undofile nomore
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-- INSERT --this is one line[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cs/one/ONE/
[?25l[?1cONE
[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" [New] 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!:e Xtestfilefoo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 1L, 17Cthis is ONE line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1 change; before #2  0 seconds agoone
[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New] 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile', change in original file fails check
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noundofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 1L, 17CONE
[?25h[?0c[?25l[?1c:[?25h[?0cs/line/Line/
[?25l[?1cL
[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cset undofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!:e Xtestfilefoo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 1L, 17Cthis is ONE Line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" TODO: this beeps
[?25l[?1c[?25h[?0c[?5h[?5l[?25l[?1cAlready at oldest change[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 17C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile', add 10 lines, delete 6 lines, undo 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset undofile
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --one
twothreefourfivesixseveneightnineten[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" 4L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2bar
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Conetwonineten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1 more line; before #7  0 seconds agoeight[?25h[?0c[?25l[?1c1 more line; before #6  0 seconds agoseven[?25h[?0c[?25l[?1c1 more line; before #5  0 seconds agosix[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 7L, 33C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test that reading the undofiles when setting undofile works
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noundofile ul=0
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --six
u[?25h[?0cs[?25l[?1c[?25h[?0c[?25l[?1c1 line less; before #8  0 seconds ago
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Cnine
ten~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset undofile ul=100
[?25l[?1c[?25h[?0c[?25l[?1c1 more line; before #7  0 seconds agoeight[?25h[?0c[?25l[?1c1 more line; before #6  0 seconds agoseven[?25h[?0c[?25l[?1c1 more line; before #5  0 seconds agosix[?25h[?0c[?25l[?1c1 more line; before #4  0 seconds agofive[?25h[?0c[?25l[?1c1 more line; before #3  0 seconds agofour[?25h[?0c[?25l[?1c1 more line; before #2  0 seconds agothree[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 10L, 49C appended[?25h[?0c[?25l[?1c:[?25h[?0c" And now with encryption, cryptmethod=zip
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Cninten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=zip
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --monday
tuesdaywednesdaythursdayfriday[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1cEnter same key again: [?25h[?0c******

[?25l[?1cmonday
friday
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile" [crypted] 2L, 14C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1c"Xtestfile" [crypted] 2L, 14Cmonday
friday
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [crypted] 2L, 14C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
[?25l[?1c[?25h[?0c[?25l[?1c1 more line; before #11  1 seconds agothursday[?25h[?0c[?25l[?1c1 more line; before #10  1 seconds agowednesday[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 4L, 33C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" With encryption, cryptmethod=blowfish
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c*******

~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][crypted] 1L, 14C[?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=blowfish ff&
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --jan
febmaraprjun[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c-- INSERT --foo mar[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --bar apr[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1cEnter same key again: [?25h[?0c******

[?25l[?1cjan
feb
bar apr[?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile" [blowfish] 4L, 20C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2ba
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1c"Xtestfile" [blowfish] 4L, 20Cjan
feb
bar apr
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish] 4L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #15  1 seconds agoap[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c1 more line; before #14  1 seconds agofoo mar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #13  1 seconds agomar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" With encryption, cryptmethod=blowfish2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c*******

~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][blowfish] 1L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=blowfish2 ff&
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --jan
febmaraprjun[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c-- INSERT --foo mar[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --bar apr[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cEnter encryption key: [?25h[?0c*******

[?25l[?1cEnter same key again: [?25h[?0c*******

[?25l[?1cjan
feb[?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile" [blowfish2] 4L, 20C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2ba
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Enter encryption key: [?25h[?0c*******

[?25l[?1c"Xtestfile" [blowfish2] 4L, 20Cjan
feb
bar ap
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish2] 4L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #19  1 seconds agoap[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c1 more line; before #18  1 seconds agofoo mar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #17  1 seconds agomar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Rename the undo file so that it gets cleaned up.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: call rename("_un_Xtestfile", "Xtestundo")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: call rename(".Xtestfile.un~", "Xtestundo")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cjan
feb
mar
apr[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test72 = test61; then \
#	  if diff test.out test72.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test72.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test72.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test78.failed test.ok test.out X* viminfo
cp test78.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test78.in
[?25h[?8c[?25h[?0c[?25l[?1c"test78.in" 46 lines, 1464 charactersInserts 10000 lines with text to fill the swap file with two levels of pointer
blocks.  Then recovers from the swap file and checks all text is restored.

We need about 10000 lines of 100 characters to get two levels of pointer
blocks.

STARTTEST
:so small.vim
:set nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
:e! Xtest
ggdG
:let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
:let i = 1
:let linecount = 10000
:while i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
:preserve
:" get the name of the swap file
:redir => swapname
:swapname
:redir END
:let swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][:cntrl:]]*$', '\1', '')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cInserts 10000 lines with text to fill the swap file with two levels of pointer[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1208 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set nobin
:new
:only!
:bwipe! Xtest
:call rename('Xswap', swapname)
:recover Xtest
:call delete(swapname)
:new
:call append(0, 'recovery start')
:wincmd w
:let linedollar = line('$')
:if linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected ". linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let linecount = linedollar | endif
:let i = 1
:while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call append(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
:q!
:call append(line('$'), 'recovery end')
:w! test.out
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest
[?25l[?1c"Xtest" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01

23456789abcdefghijklmnoparstuvwxyz0123456789"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet linecount = 10000
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
[?25l[?1c9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899991    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899992    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899993    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899994    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899995    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899996    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899997    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899998    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678910000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[?25h[?0c[?25l[?1c:[?25h[?0cpreserve
[?25l[?1cFile preserved[?25h[?0c[?25l[?1c:[?25h[?0c" get the name of the swap file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => swapname
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cswapname
[?25l[?1c.Xtest.swp[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][

:cntrl:]]*$', '\1', '')
[?25l[?1c9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[?25h[?0c[?25l[?1c
:[?25h[?0c" make a copy of the swap file in Xswap
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe 'sp ' . swapname
[?25l[?1c".Xtest.swp"[noeol] 611L, 1224704Cb0VIM 8.0^@^@^@^@^P^@^@^@^@^@^@^@^@^@^@~C^P^@^@buildd^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@testbuildd.raspbian.org^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtest^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@.Xtest.swp                                                                      789

10000~                                                                               Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cw! Xswap
[?25l[?1c"Xswap" [New][noeol] 611L, 1224704C written[?25h[?0c[?25l[?1c:[?25h[?0cecho swapname
[?25l[?1c.Xtest.sw[?25h[?0c[?25l[?1c:[?25h[?0cset nobin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       b0VIM 8.0^@^@^@^@^P^@^@^@^@^@^@^@^@^@^@~C^P^@^@buildd^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@testbuildd.raspbian.org^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtest^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@.Xtest.swp                                                                      9999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
10000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789

~                                                                               Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe! Xtest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall rename('Xswap', swapname)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0crecover Xtest
[?25l[?1cUsing swap file ".Xtest.swp"

Original file "/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtest"

"/<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xtest" [New File]Recovery completed. You should check if everything is OK.

(You might want to write out this file under another name

and run diff with the original file to check for changes)

You may want to delete the .swp file now.



Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ccall delete(swapname)
[?25l[?1c1abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
2abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
3abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
4abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
5       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567896       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567897       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567898       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678910      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678911      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678912      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1

2

3

4 

5 

Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, 'recovery start')
[?25l[?1crecovery start[+][?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name] [+]                                                                   Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet linedollar = line('$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected 

" . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let li

necount = linedollar | endif
[?25l[?1crecovery start[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appen

d(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
[?25l[?1crecovery start[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), 'recovery end')
[?25l[?1crecovery end[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New] 3L, 29C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test78 = test61; then \
#	  if diff test.out test78.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test78.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test78.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test83.failed test.ok test.out X* viminfo
cp test83.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test83.in
[?25h[?8c[?25h[?0c[?25l[?1c"test83.in" 76 lines, 1273 charactersTests for tag search with !_TAG_FILE_ENCODING.

STARTTEST
:so mbyte.vim
:set enc=utf8
:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
: e! test.ok
: w! test.out
: qa!
:endif
:
:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
:
ggdG:
:
:call setline('.', 'Results of test83')
:
:" case1:
:new
:set tags=Xtags1[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for tag search with !_TAG_FILE_ENCODING.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 58 lines, 1021 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'
:else
: close
: put ='case3: ok'
:endif
:close
:
:wq! test.out
ENDTEST

text for tags1
abcdefghijklmnopqrs

text for tags2
ABC

text for tags3
ABC

tags1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf8
[?25l[?1c:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'
:else
: close
: put ='case3: ok'
:endif
:close
:
:wq! test.out
ENDTEST

text for tags1
abcdefghijklmnopqrs

text for tags2
ABC

text for tags3
ABC

tags1[?25h[?0c[?25l[?1c:[?25h[?0cif !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
[?25l[?1c"Xtags1.txt" [New File] 2 lines, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
[?25l[?1c"Xtags2.txt" [New File] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
[?25l[?1c"Xtags3.txt" [New File] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^tags1$/+1,/^tags1-end$/-1w! Xtags1
[?25l[?1c"Xtags1" [New File] 2 lines, 81 characters written[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTests for tag search with !_TAG_FILE_ENCODING.

STARTTEST
:so mbyte.vim
:set enc=utf8
:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
: e! test.ok
: w! test.out
: qa!
:endif
:
:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
:
ggdG:
:
:call setline('.', 'Results of test83')
:
:" case1:
:new
:set tags=Xtags1[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setline('.', 'Results of test83')
[?25l[?1cResults of test83
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case1:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c[No Name]                                                                       Results of test83test83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=Xtags1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag abcdefghijklmnopqrs
[?25l[?1c"Xtags1.txt" 2 lines, 35 characterstext for tags1
abcdefghijklmnopqrsXtags1.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case1: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case1: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case2:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               [No Name]                                                                       Results of test83case1: oktest83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=test83-tags2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag /.BC
[?25l[?1c"Xtags2.txt" 2 lines, 25 characterstext for tags2
ABCXtags2.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case2: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case2: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
case2: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case3:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       case1: okcase2: oktest83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=test83-tags3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag abc50
[?25l[?1c"Xtags3.txt" 2 lines, 25 characterstext for tags3
ABCXtags3.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case3: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case3: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
case2: ok
case3: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 4 lines, 48 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test83 = test61; then \
#	  if diff test.out test83.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test83.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test83.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test89.failed test.ok test.out X* viminfo
cp test89.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test89.in
[?25h[?8c[?25h[?0c[?25l[?1c"test89.in" 71 lines, 1514 characters- Some tests for setting 'number' and 'relativenumber'
  This is not all that useful now that the options are no longer reset when
  setting the other.
- Some tests for findfile() function

STARTTEST
:so small.vim
:set hidden nocp nu rnu viminfo+=nviminfo
:redir @a | set nu? rnu? | redir END
:e! xx
:redir @b | set nu? rnu? | redir END
:e! #
:$put ='results:'
:$put a
:$put b
:"
:set nonu nornu
:setglobal nu
:setlocal rnu
:redir @c | setglobal nu? | redir END
:set nonu nornu
:setglobal rnu
:setlocal nu[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c- Some tests for setting 'number' and 'relativenumber'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 63 lines, 1305 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =':set MUST reset the other global value'
:$put g
:$put h
:"
:let cwd=getcwd()
:cd ..
:" Tests may be run from a shadow directory, so an extra cd needs to be done to
:" get above src/
:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
:$put =''
:$put ='Testing findfile'
:$put =''
:set ssl
:$put =findfile('test19.in','src/test*')
:exe "cd" cwd
:cd ..
:$put =findfile('test19.in','test*')
:$put =findfile('test19.in','testdir')
:exe "cd" cwd
:/^results/,$w! test.out
:q!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden nocp nu rnu viminfo+=nviminfo
[?25l[?1c 21 :$put g 20 :$put h
 19 :" 18 :let cwd=getcwd()
 17 :cd .. 16 :" Tests may be run from a shadow directory, so an extra cd needs to be done     to 15 :" get above src/
 14 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 13 :$put =''
 12 :$put ='Testing findfile'
 11 :$put =''
 10 :set ssl
  9 :$put =findfile('test19.in','src/test*')
  8 :exe "cd" cwd
  7 :cd ..
  6 :$put =findfile('test19.in','test*')
  5 :$put =findfile('test19.in','testdir')
  4 :exe "cd" cwd
  3 :/^results/,$w! test.out
  2 :q!
  1 ENDTEST
71  [?25h[?0c[?25l[?1c:[?25h[?0credir @a | set nu? rnu? | redir END
[?25l[?1c  number

  relativenumber

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! xx
[?25l[?1c"xx" [New File]1   
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0credir @b | set nu? rnu? | redir END
[?25l[?1c  number

  relativenumber

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! #
[?25l[?1c"test89.in" line 71 of 71 --100%-- col 1 21 :$put g
 20 :$put h
 19 :" 18 :let cwd=getcwd() 17 :cd .. 16 :" Tests may be run from a shadow directory, so an extra cd needs to be done     to 15 :" get above src/ 14 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif 13 :$put ='' 12 :$put ='Testing findfile' 11 :$put ='' 10 :set ssl  9 :$put =findfile('test19.in','src/test*')  8 :exe "cd" cwd  7 :cd ..  6 :$put =findfile('test19.in','test*')  5 :$put =findfile('test19.in','testdir')  4 :exe "cd" cwd  3 :/^results/,$w! test.out  2 :q!  1 ENDTEST71  "test89.in" line 71 of 71 --100%-- col 1[?25h[?0c[?25l[?1c:[?25h[?0c$put ='results:'
[?25l[?1c
1
 20
 19
 18
 17

 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
72  results:[?25h[?0c[?25l[?1c
:[?25h[?0c$put a
[?25l[?1c3 more lines21
 20

 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
75    relativenumber3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put b
[?25l[?1c3 more lines22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
78    relativenumber3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:" get above src/:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif:$put ='':$put ='Testing findfile':$put ='':set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal rnu
[?25l[?1c 22 :" get above src/
 21 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 20 :$put =''
 19 :$put ='Testing findfile'
 18 :$put =''
 17 :set ssl
 16 :$put =findfile('test19.in','src/test*')
 15 :exe "cd" cwd
 14 :cd ..
 13 :$put =findfile('test19.in','test*')
 12 :$put =findfile('test19.in','testdir')
 11 :exe "cd" cwd
 10 :/^results/,$w! test.out
  9 :q!
  8 ENDTEST
  7 
  6 results:
  5 
  4   number
  3   relativenumber
  2 
  1   number
  0   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0credir @c | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:" get above src/:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif:$put ='':$put ='Testing findfile':$put ='':set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal nu
[?25l[?1c 56 :" get above src/
 57 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 58 :$put =''
 59 :$put ='Testing findfile'
 60 :$put =''
 61 :set ssl
 62 :$put =findfile('test19.in','src/test*')
 63 :exe "cd" cwd
 64 :cd ..
 65 :$put =findfile('test19.in','test*')
 66 :$put =findfile('test19.in','testdir')
 67 :exe "cd" cwd
 68 :/^results/,$w! test.out
 69 :q!
 70 ENDTEST
 71 
 72 results:
 73 
 74   number
 75   relativenumber
 76 
 77   number
 78   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0credir @d | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':setlocal must NOT reset the other global value'
[?25l[?1c
 79 :setlocal must NOT reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put c
[?25l[?1c 80 
 81   number[?25h[?0c[?25l[?1c
:[?25h[?0c$put d
[?25l[?1c 82 
 83   relativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber:setlocal must NOT reset the other global value  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir @e | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir @f | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':setglobal MUST reset the other global value'
[?25l[?1c
:setglobal MUST reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put e
[?25l[?1cnumber[?25h[?0c[?25l[?1c
:[?25h[?0c$put f
[?25l[?1crelativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c 66 :$put =findfile('test19.in','testdir')
 67 :exe "cd" cwd
 68 :/^results/,$w! test.out
 69 :q!
 70 ENDTEST
 71 
 72 results:
 73 
 74   number
 75   relativenumber
 76 
 77   number
 78   relativenumber
 79 :setlocal must NOT reset the other global value
 80 
 81   number
 82 
 83   relativenumber
 84 :setglobal MUST reset the other global value
 85 
 86   number
 87 
 88   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset rnu
[?25l[?1c22
 21
 20
 1
 18
 17
 16
 15
 1
 13
 12
 11
 10
  
  8
  7
  6
  5
  
  3
  2
  1
88    [?25h[?0c[?25l[?1c:[?25h[?0credir @g | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber:setlocal must NOT reset the other global value  number  relativenumber:setglobal MUST reset the other global value  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset rnu
[?25l[?1c 22 :$put =findfile('test19.in','testdir')
 21 :exe "cd" cwd
 20 :/^results/,$w! test.out
 19 :q!
 18 ENDTEST
 17 
 16 results:
 15 
 14   number
 13   relativenumber
 12 
 11   number
 10   relativenumber
  9 :setlocal must NOT reset the other global value
  8 
  7   number
  6 
  5   relativenumber
  4 :setglobal MUST reset the other global value
  3 
  2   number
  1 
  0   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c88    [?25h[?0c[?25l[?1c:[?25h[?0credir @h | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':set MUST reset the other global value'
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
89  :set MUST reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put g
[?25l[?1c2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
91    number[?25h[?0c[?25l[?1c
:[?25h[?0c$put h
[?25l[?1c2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
93    relativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk[?25h[?0c[?25l[?1c:[?25h[?0c" Tests may be run from a shadow directory, so an extra cd needs to be done to
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" get above src/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[?25l[?1c/<<PKGBUILDDIR>>[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
94  [?25h[?0c[?25l[?1c
:[?25h[?0c$put ='Testing findfile'
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
95  Testing findfile[?25h[?0c[?25l[?1c
:[?25h[?0c$put =''
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
96  [?25h[?0c[?25l[?1c
:[?25h[?0cset ssl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =findfile('test19.in','src/test*')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
97  src/testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0cexe "cd" cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk[?25h[?0c[?25l[?1c:[?25h[?0c$put =findfile('test19.in','test*')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
98  testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0c$put =findfile('test19.in','testdir')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
99  testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0cexe "cd" cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-gtk/testdir[?25h[?0c[?25l[?1c:[?25h[?0c/^results/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 28L, 356C written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test89 = test61; then \
#	  if diff test.out test89.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test89.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test89.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_arglist.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_arglist.vim" 318 lines, 6653 characters

Executing Test_argadd()
"a" [New File]bababababd

Executing Test_argc()
"a" [New File]
Executing Test_argdelete()
"a" [New File]a" [New File]
"bb

Executing Test_argedit()
"a" [New File]ba

"c" [New File]
"x

"y" [New File]

Executing Test_argidx()
"a" [New File]cabc

Executing Test_arglist_autocmd()
"Xxx1" 1L, 15C
"Xxx21L, 15C1L, 15C
"Xxx1" line 1 of 1 --100%-- col 1 ((3) of 2)
"Xxx21 of 2)
3 buffers wiped out

Executing Test_arglistid()
"a" [New File]
Executing Test_argpos()
"a" [New File]d

"c" [New File]
"ba

"d" [New File]
"a

Executing Test_argument()
"d" [New File]cbafile] --No lines in buffer-- (1 of 4)
"c3

a b [c] d
"c" [New File]

"x" [New File]
"z

Executing Test_argv()
"a" [New file] --No lines in buffer--

Executing Test_zero_argadd()
"b" [New file] --No lines in buffer-- (2 of 4)
"aFbedited" [New File]
"a" [New File]test_arglist.res" [New File][New] 0L, 0C written

Executed 11 tests
"messages" [New File][New] 15L, 326C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_assert.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_assert.vim" 127 lines, 2933 characters

Executing Test_assert_equal()

Executing Test_assert_exception()

Executing Test_assert_fail_fails()

Executing Test_assert_false()

Executing Test_assert_inrange()

Executing Test_assert_notequal()

Executing Test_assert_true()

Executing Test_compare_fail()

Executing Test_match()

Executing Test_notmatch()

Executing Test_user_is_happy()


oooo$$$$$$$$$$$$oooo

oo$$$$$$$$$$$$$$$$$$$$$$$$o

oo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$oo$   $$ o$

     o $ ooo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o$$ $$ $$o$

  oo $ $ "$      o$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$o$$$o$$o$

  "$$$$$$o$     o$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$o    $$$$$$$$

    $$$$$$$    $$$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$

    $$$$$$$$$$$$$$$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$$$$$$  """$$$

     "$$$""""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$

      $$$   o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$o

     o$$"   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o

     $$$    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" "$$$$$$ooooo$$$$o

    o$$$oooo$$$$$  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$   o$$$$$$$$$$$$$$$$$

    $$$$$$$$"$$$$   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     $$$$""""""""

   """"$$$$    "$$$$$$$$$$$$$$$$$$$$$$$$$$$$"      o$$$

"$$$o     """$$$$$$$$$$$$$$$$$$"$$"$$$

$$$o"$$""$$$$$$""""o$$$

$$$$oo$$$"

"$$$$o      o$$$$$$o"$$$$oo$$$$

"$$$$$oo     ""$$$$o$$$$$o   o$$$$""

""$$$$$oooo  "$$$o$$$$$$$$$"""

""$$$$$$$oo $$$$$$$$$$

""""$$$$$$$$$$$

$$$$$$$$$$$$

$$$$$$$$$$"

"$$$""""

[?25h[?0c[?25l[?1cExecuting Test_wrong_error_type()
"test_assert.res" [New File][New] 0L, 0C written

Executed 12 tests
"messages" 15L, 326C30L, 734C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_autochdir.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_autochdir.vim" 17 lines, 332 characters

Executing Test_set_filename()
"samples/Xtest" [New] 0L, 0C written
"test_autochdir.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"30L, 734C34L, 806C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_backspace_opt.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_backspace_opt.vim" 59 lines, 1673 characters

Executing Test_backspace_option()
"test_backspace_opt.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"34L, 806C38L, 886C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_breakindent.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_breakindent.vim" 241 lines, 7365 characters

Executing Test_breakindent01()|
    abcdefghijklmnop|
    qrstuvwxyzABCDEF|
    GHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent02()|
    abcdefghijklmnop|
    >>qrstuvwxyzABCD|
    >>EFGHIJKLMNOP  |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent03()|
    abcdefghijklmnop|
++  qrstuvwxyzABCDEF|
++  GHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent04()|
    abcdefghijklmnop|
  qrstuvwxyzABCDEFGH|
  IJKLMNOP|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent05()|
    abcdefghijklmnop|qrstuvwxyzABCD|EFGHIJKLMNOP  |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent06()|
    abcdefghijklmnop|
   qrstuvwxyzABCDEFG|
   HIJKLMNOP|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent07()  1 |
  2     abcdefghijkl|
?mnopqrstuvw|
?xyzABCDEFGH|
?IJKLMNOP   ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent07a()  1 |
  2     abcdefghijkl|
    ?    mnopqrstuvw|
    ?    xyzABCDEFGH|
    ?    IJKLMNOP   ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent08()  1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent08a()  1 $|
  2 ^Iabcdefghijklmn|
    #  opqrstuvwxyzA|
    #  BCDEFGHIJKLMN|
    #  OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent09()  1 $|
  2 ^Iabcdefghijklmn|
       #opqrstuvwxyz|
       #ABCDEFGHIJKL|
       #MNOP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent10()  1 |
  2 abcdefgh|
~ijklmnop|
~qrstuvwx|
~yzABCDEF|
~GHIJKLMN|
~OP      ||||~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 |
  2     abcdefghijkl|
~mnopqrstuvwx|
~yzABCDEFGHIJ|
~KLMNOP      ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 |
  2     abcdefghijkl|
~mnopqrstuvwx|
~yzABCDEFGHIJ|
~KLMNOP      ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent11()

Executing Test_breakindent12() 1 |
 2 >--->--->--->--->|
   ---{      ||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        {~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent13()

Executing Test_breakindent14()|
e|||||||||~                             
~                             
~                             
~                             
~                             
~                             
~                             
~                             
[No Name] [+]                  e~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                [No Name] [+]                                    " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent15()|1234567890|||||||||~                             
~                             
~                             
~                             
~                             
~                             
~                             
~                             
[No Name] [+]                  1234567890~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                [No Name] [+]                                    " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent16()1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            "test_breakindent.res" [New File][New] 0L, 0C written

Executed 18 tests
"messages" 38L, 886C59L, 1492C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_bufwintabinfo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_bufwintabinfo.vim" 116 lines, 3459 characters

Executing Test_get_buf_options()

Executing Test_get_win_options()

Executing Test_getbufwintabinfo()
"Xtestfile1" [New File]212

Already only one window
"test_bufwintabinfo.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"59L, 1492C65L, 1639C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cdo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cdo.vim" 205 lines, 5116 characters

Executing Test_cdo()
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile1" 3L, 18C33L, 18C

(1 of 1): Line3
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2

(5 of 8): Line2

(1 of 1): Line2

Executing Test_ldo()
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile1" 3L, 18C33L, 18C

(1 of 1): Line3
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2

(5 of 8): Line2

(1 of 1): Line2
"test_cdo.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"65L, 1639C70L, 1718C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_channel.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_channel.vim" 1641 lines, 47075 characters
"test_channel.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"70L, 1718C73L, 1758C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_charsearch.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_charsearch.vim" 62 lines, 1475 characters

Executing Test_charsearch()

Executing Test_search_cmds()
"test_charsearch.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"73L, 1758C78L, 1859C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cmdline.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cmdline.vim" 243 lines, 7346 characters

Executing Test_complete_list():e test

test1.intest85.ok

test1.oktest85.out

test1.outtest86.in

test103.intest86.ok

test103.oktest86.out

test103.outtest87.in

test104.intest87.ok

test104.oktest87.out

test104.outtest88.in

test107.intest88.ok

test107.oktest88.out

test107.outtest89.in

test108.intest89.ok

test108.oktest89.out

test108.outtest9.in

test11.intest9.ok

test11.oktest9.out

test11.outtest90.in

test12.intest90.ok

test12.oktest90.out

test12.outtest91.in

test14.intest91.ok

test14.oktest91.out

test14.outtest94.in

test15.intest94.ok

test15.oktest94.out

test15.outtest95.in

test17.intest95.ok

test17.oktest95.out

test17.outtest97.in

test17a.intest97.ok

test19.intest97.out

test19.oktest98.in

test19.outtest98.ok

test20.intest98.out

test20.oktest99.in

test20.outtest99.ok

test22.intest99.out

test22.oktest_alot.vim

test22.outtest_alot_latin.vim

test23.intest_alot_utf8.vim

test23.oktest_arglist.res

test23.outtest_arglist.vim

test24.intest_assert.res

test24.oktest_assert.vim

test24.outtest_assign.vim

test25.intest_autochdir.res

test25.oktest_autochdir.vim

test25.outtest_autocmd.vim

test26.intest_autocmd_option.in

test26.oktest_autocmd_option.ok

test26.outtest_autocmd_option.out

test28.intest_autoformat_join.in

test28.oktest_autoformat_join.ok

test28.outtest_autoformat_join.out

test29.intest_backspace_opt.res

test29.oktest_backspace_opt.vim

test29.outtest_breakindent.res

test3.intest_breakindent.vim

test3.oktest_bufwintabinfo.res

test3.outtest_bufwintabinfo.vim

test30.intest_cdo.res

test30.oktest_cdo.vim

test30.outtest_changelist.in

test31.intest_changelist.ok

test31.oktest_changelist.out

test31.outtest_channel.py

test32.intest_channel.res

test32.oktest_channel.vim

test32.outtest_channel_pipe.py

test33.intest_charsearch.res

test33.oktest_charsearch.vim

test33.outtest_close_count.in

test34.intest_close_count.ok

test34.oktest_close_count.out

test34.outtest_cmdline.vim

test36.intest_command_count.vim

test36.oktest_comparators.in

test36.outtest_comparators.ok

test37.intest_comparators.out

test37.oktest_crypt.vim

test37.outtest_cscope.vim

test38.intest_cursor_func.vim

test38.oktest_delete.vim

test38.outtest_diffmode.vim

test39.intest_digraph.vim

test39.oktest_display.vim

test39.outtest_erasebackword.in

test4.intest_erasebackword.ok

test4.oktest_erasebackword.out

test4.outtest_eval.in

test40.intest_eval.ok

test40.oktest_eval.out

test40.outtest_eval_func.vim

test41.intest_ex_undo.vim

test41.oktest_execute_func.vim

test41.outtest_expand.vim

test42.intest_expand_dllpath.vim

test42.oktest_expr.vim

test42.outtest_expr_utf8.vim

test43.intest_farsi.vim

test43.oktest_feedkeys.vim

test43.outtest_file_perm.vim

test44.intest_fileformat.vim

test44.oktest_filter_cmd.vim

test44.outtest_filter_map.vim

test45.intest_fixeol.in

test45.oktest_fixeol.ok

test45.outtest_fixeol.out

test48.intest_float_func.vim

test48.oktest_fnameescape.vim

test48.outtest_fnamemodify.vim

test49.intest_fold.vim

test49.oktest_functions.vim

test49.outtest_getcwd.in

test49.vimtest_getcwd.ok

test5.intest_getcwd.out

test5.oktest_gf.vim

test5.outtest_glob2regpat.vim

test50.intest_gn.vim

test50.oktest_goto.vim

test51.intest_gui.vim

test51.oktest_hardcopy.vim

test51.outtest_help_tagjump.vim

test52.intest_hide.vim

test52.oktest_history.vim

test52.outtest_hlsearch.vim

test53.intest_increment.vim

test53.oktest_increment_dbcs.vim

test53.outtest_insertcount.in

test54.intest_insertcount.ok

test54.oktest_insertcount.out

test54.outtest_job_fails.vim

test55.intest_join.vim

test55.oktest_json.vim

test55.outtest_jumps.vim

test56.intest_lambda.vim

test56.oktest_langmap.vim

test56.outtest_largefile.vim

test57.intest_lispwords.vim

test57.oktest_listchars.in

test57.outtest_listchars.ok

test58.intest_listchars.out

test58.oktest_listlbr.in

test58.outtest_listlbr.ok

test59.intest_listlbr.out

test59.oktest_listlbr_utf8.in

test59.outtest_listlbr_utf8.ok

test60.intest_listlbr_utf8.out

test60.oktest_man.vim

test60.outtest_mapping.vim

test60.vimtest_marks.vim

test64.intest_match.vim

test64.oktest_matchadd_conceal.vim

test64.outtest_matchadd_conceal_utf8.vim

test65.intest_menu.vim

test65.oktest_messages.vim

test65.outtest_mksession.vim

test66.intest_mksession_utf8.vim

test66.oktest_nested_function.vim

test66.outtest_netbeans.py

test67.intest_netbeans.vim

test67.oktest_normal.vim

test67.outtest_options.vim

test68.intest_packadd.vim

test68.oktest_partial.vim

test68.outtest_perl.vim

test69.intest_popup.vim

test69.oktest_profile.vim

test69.outtest_quickfix.vim

test7.intest_regexp_latin.vim

test7.oktest_regexp_utf8.vim

test7.outtest_reltime.vim

test70.intest_ruby.vim

test70.oktest_search.vim

test70.outtest_search_mbyte.in

test72.intest_search_mbyte.ok

test72.oktest_search_mbyte.out

test72.outtest_searchpos.vim

test73.intest_set.vim

test73.oktest_signs.vim

test73.outtest_smartindent.vim

test75.intest_sort.vim

test75.oktest_source_utf8.vim

test75.outtest_startup.vim

test77.intest_startup_utf8.vim

test77.oktest_stat.vim

test77.outtest_statusline.vim

test77a.intest_substitute.vim

test77a.oktest_syn_attr.vim

test78.intest_syntax.vim

test78.oktest_system.vim

test78.outtest_tabline.vim

test79.intest_tabpage.vim

test79.oktest_tagcase.vim

test79.outtest_tagjump.vim

test8.intest_textobjects.vim

test8.oktest_timers.vim

test8.outtest_true_false.vim

test80.intest_undo.vim

test80.oktest_unlet.vim

test80.outtest_usercommands.vim

test82.intest_utf8.in

test82.oktest_utf8.ok

test82.outtest_utf8.out

test83-tags2test_viminfo.vim

test83-tags3test_viml.vim

test83.intest_visual.vim

test83.oktest_window_cmd.vim

test83.outtest_window_id.vim

test84.intest_wordcount.in

test84.oktest_wordcount.ok

test84.outtest_wordcount.out

test85.intest_writefile.vim

:e test
"test" [New File]

Executing Test_complete_tab():e Xtest...file
"Xtestfile" 1L, 9C

Executing Test_complete_wildmenu():e Xtest...file1...

Xtestfile1  Xtestfile2  
Xtestfile1                                                        :e Xtest...Xtestfile1
Xtestfile1file1...Xtestfile1Xtestfile22:e Xtestfile2"Xtestfile2" 1L, 10C
Executing Test_expand_star_star():find **/fileXname...a/b/fileXname
"a/b/fileXname" 1L, 9C
"Xtestfile2" [New File]

Executing Test_getcompletion():cscope find 

a  c  d  e  f  g  i  s  t

:cscope find :sign list 

Testing

:sign list Executing Test_illegal_address()

Executing Test_paste_in_cmdline():abc "def ghi
:"abc def ghi
:"
:aaa "asdf bbb
:"aaa asdf bbb
:"
:aaa "/tmp/some bbb
:"aaa /tmp/some bbb
:"
:aaa veryl"ongword bbb
:"aaa verylongword bbb
:"
:aaa "a;b-c*d bbb
:"aaa a;b-c*d bbb
:"
:=toupper(getline(1))
:ASDF.X /TMP/SOME VERYLONGWORD A;B-C*D 
:"ASDF.X /TMP/SOME VERYLONGWORD A;B-C*D
:"

Executing Test_remove_char_in_cmdline():abc defef
:"abc ef
:"
:abc defdef
:"abcdef
:"
:abc def ghighi
:"abc ghi
:"
:abc def
:def"def
"test_cmdline.res" [New File][New] 0L, 0C written

Executed 8 tests
"messages"78L, 1859C89L, 2168C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_command_count.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_command_count.vim" 191 lines, 4742 characters

Executing Test_command_count_0()
"DoesNotExistEver" [New File]
Executing Test_command_count_1()

"a" [New File]

loading buffers

"b" [New File]

loading buffers

"c" [New File]

loading buffers

"d" [New File]

loading buffers

"e" [New File]

loading buffers
"c" [New File]beb

Executing Test_command_count_2()

"d" [New File]
"a

Already only one window
"x" [New File]
Already only one window

Executing Test_command_count_3()
"aaa" [New File]bbb
"ccc
"test_command_count.vim" 191L, 4742C

2 buffers deleted

Executing Test_command_count_4()
"cc" [New File]
"dd" [New File]

"ee" [New File]
"aa

"bb" [New File]

"cc" [New File]

"dd" [New File]

"ee" [New File]
"cc

"ee" [New File]

"ff" [New File]
"test_command_count.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"89L, 2168C97L, 2380C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_crypt.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_crypt.vim" 83 lines, 2590 characters

Executing Test_crypt_blowfish()
"Xtest.txt" [New File]:X

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

Enter same key again: ******

"Xtest.txt" [New][blowfish] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [blowfish] 3L, 98C

Executing Test_crypt_blowfish2()
"Xtest.txt" [New File]:X
Enter encryption key: ******
Enter same key again: ******

"Xtest.txt" [New][blowfish2] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: ******

"Xtest.txt" [blowfish2] 3L, 98C

Executing Test_crypt_zip()
"Xtest.txt" [New File]:X

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

Enter same key again: ******

"Xtest.txt" [New][crypted] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [crypted] 3L, 98C

Executing Test_head_only_2()
"Xtest.txt" [New File][New] 1L, 16C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [readonly] 1L, 16C

Executing Test_head_only_3()
"Xtest.txt" [New File][New] 1L, 16C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: ******

"Xtest.txt" [readonly] 1L, 16C

Executing Test_uncrypt_blowfish()
"Xtest.txt" [New File][converted][New][noeol] 1L, 80C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [blowfish] 2L, 27C

Executing Test_uncrypt_blowfish2()
"Xtest.txt" [New File][converted][New][noeol] 1L, 103C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: *******

"Xtest.txt" [blowfish2] 2L, 44C

Executing Test_uncrypt_zip()
"Xtest.txt" [New File][converted][New][noeol] 1L, 45C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [converted][crypted] 2L, 26C"test_crypt.res" [New File][converted][New] 0L, 0C written
Executed 8 tests
"messages"97L, 2380C108L, 2667C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cscope.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cscope.vim" 279 lines, 10568 characters
"test_cscope.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"108L, 2667C111L, 2706C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_diffmode.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_diffmode.vim" 237 lines, 4954 characters

Executing Test_diff_fold_sync()

Executing Test_diffget_diffput()

Executing Test_diffoff()  -------------------------------------|
  -------------------------------------|
  Two|
  Three|||||||||||||||||||  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    
[No Name] [+]                             One                                                                             Two  Three                                    ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     [No Name] [+]                           Two                                    
Three                                  
~                                      
~                                      
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  OneTwoThree~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  

Executing Test_filler_lines()

7 more lines

10 more lines

Executing Test_setting_cursor()
"Xtest1" [New File]
90 more lines
"Xtest1" [New] 91L, 262C written2" [New File]
100 more lines
"Xtest2"[New] 101L, 293C written101L, 293C191L, 262C

Executing Test_vert_split()
"Xtest" [New] 5L, 25C written"Xtest2" [New] 6L, 29C written

"Nop" [Modified][Not edited] line 4 of 6 --66%-- col 3"Xtest" 5L, 25C2" 6L, 29C
"test_diffmode.vim" 237L, 4954Cres" [New File][New] 0L, 0C written

Executed 6 tests
"messages"111L, 2706C120L, 2928C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_digraph.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_digraph.vim" 461 lines, 14928 characters

Executing Test_digraph_cmndline()
Executing T

Executing Test_digraphs()
Executing Test_digraphs_option()
Executing Test_digraphs_output()

Executing Test_loadkeymap()"test_digraph.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"120L, 2928C128L, 3123C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_display.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_display.vim" 39 lines, 849 characters[?25h[?0cExecuting Test_display_foldcolumn()e more noise blah blah<82|
> more stuff here||||||||||~                        
~                        
~                        
~                        
~                        
~                        
~                        
~                        
~                        
[No Name] [+]             ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     [No Name]                                             " Test for displaying stuff
if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum, nr) abort
  let line = []
  for j in range(a:nr)
    for c in range(1, winwidth(0))call add(line, nr2char(screenchar(a:lnum+j, c)))
test_display.vim                                                                  e more noise blah blah<|
  82> more stuff here    ||||||||||  
  
  
  
  
  
  
  
  ~                      ~                      ~                      ~                      ~                      ~                      ~                      ~                      ~                      
[No Name] [+]             ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     [No Name]                                             " Test for displaying stuff
if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum, nr) abort
  let line = []
  for j in range(a:nr)
    for c in range(1, winwidth(0))call add(line, nr2char(screenchar(a:lnum+j, c)))
test_display.vim                                                                "test_display.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"128L, 3123C132L, 3199C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_farsi.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_farsi.vim" 84 lines, 2881 characters

Executed 2 tests
"messages"[converted] 132L, 3199C[converted] 137L, 3295C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fnameescape.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_fnameescape.vim" 21 lines, 467 characters

Executing Test_fnameescape()
"Xspa ce"[New] 21L, 467C written
"Xemark![New] 21L, 467C written
"test_fnameescape.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"137L, 3295C141L, 3368C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fold.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_fold.vim" 97 lines, 3328 characters

Executing Test_address_fold()

7 lines yanked

7 lines yanked

7 lines yanked

7 lines yanked

7 lines yanked

8 lines yanked

10 lines yanked

4 lines yanked

Executing Test_indent_fold()

Executing Test_indent_fold2()
"test_fold.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"141L, 3368C147L, 3495C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gf.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gf.vim" 33 lines, 1138 characters

Executing Test_gf_url()
"test_gf.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"147L, 3495C151L, 3554C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gn.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gn.vim" 93 lines, 2821 characters

Executing Test_gn_command()/[u]niquepattern/s
/a:0\@!\zs\d\+
"test_gn.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"151L, 3554C155L, 3617C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gui.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gui.vim" 36 lines, 838 characters
"test_gui.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"155L, 3617C158L, 3653C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hardcopy.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hardcopy.vim" 62 lines, 2001 characters

Executing Test_printheader_parsing()

Executing Test_printmbfont_parsing()

Executing Test_printoptions_parsing()

Executing Test_with_syntax()Printing page 1 (0%)Printed: test_hardcopy.vim
"test_hardcopy.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"158L, 3653C165L, 3836C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hide.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hide.vim" 97 lines, 2443 characters

Executing Test_hide()
"Xf1" [New File]
"Xf1" [New File]
"Xf212121

one|two
"Xf1" [New File]
"Xf212
"test_hide.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"165L, 3836C169L, 3895C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_history.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_history.vim" 106 lines, 3567 characters

Executing Test_History()

Executing Test_Search_history_window()/a
/b
/a
b
a
b
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Tests for the history functions

test_history.vim                                                                /a
/b
/
/
/
/
/~                                                                              ~                                                                              ~                                                                              ~                                                                              [Command Line]                                                                  [?25h[?0c[?25l[?1c/a
"test_history.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"169L, 3895C174L, 4000C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hlsearch.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hlsearch.vim" 34 lines, 1013 characters

Executing Test_hlsearch()/aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
~                                                                               [No Name] [+]                                                                   " Test for v:hlsearch

function! Test_hlsearch()
  new
  call setline(1, repeat(['aaa'], 10))
  set hlsearch nolazyredraw
  let r=[]
  " redraw is needed to make hlsearch highlight the matches
  exe "normal! /aaa\<CR>" | redraw
  let r1 = screenattr(1, 1)
test_hlsearch.vim                                                               aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa


/aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa//aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa//aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa


"test_hlsearch.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"174L, 4000C178L, 4067C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_increment.vim" 760 lines, 19011 characters

Executing Test_normal_increment_01()
"dummy" [New File]
Executing Test_normal_increment_02()
"dummy" [New File]
Executing Test_normal_increment_03()
"dummy" [New File]
Executing Test_visual_increment_01()
"dummy" [New File]
Executing Test_visual_increment_02()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_03()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_04()
"dummy" [New File]
Executing Test_visual_increment_05()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_06()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_07()
"dummy" [New File]5 lines changed
Executing Test_visual_increment_08()
"dummy" [New File]
Executing Test_visual_increment_09()
"dummy" [New File]
Executing Test_visual_increment_10()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_11()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_12()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_13()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_14()
"dummy" [New File]
Executing Test_visual_increment_15()
"dummy" [New File]
Executing Test_visual_increment_16()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_17()
"dummy" [New File]
Executing Test_visual_increment_18()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_19()
"dummy" [New File]
Executing Test_visual_increment_20()
"dummy" [New File]
Executing Test_visual_increment_21()
"dummy" [New File]
Executing Test_visual_increment_22()
"dummy" [New File]
Executing Test_visual_increment_23()
"dummy" [New File]
Executing Test_visual_increment_24()
"dummy" [New File]
Executing Test_visual_increment_25()
"dummy" [New File]
Executing Test_visual_increment_26()
"dummy" [New File]
Executing Test_visual_increment_27()
"dummy" [New File]
Executing Test_visual_increment_28()
"dummy" [New File]
Executing Test_visual_increment_29()
"dummy" [New File]
Executing Test_visual_increment_30()
"dummy" [New File]
Executing Test_visual_increment_31()
"dummy" [New File]
Executing Test_visual_increment_32()
"dummy" [New File]_31" [New File]

Executing Test_visual_increment_33()
"dummy" [New File]
Executing Test_visual_increment_34()
"dummy" [New File]
Executing Test_visual_increment_35()
"dummy" [New File]
Executing Test_visual_increment_36()
"dummy" [New File]
Executing Test_visual_increment_37()
"dummy" [New File]
Executing Test_visual_increment_38()
"dummy" [New File]"test_increment.res" [New File][New] 0L, 0C written

Executed 41 tests
"messages" 178L, 4067C222L, 5628C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment_dbcs.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_increment_dbcs.vim" 30 lines, 604 characters

Executing Test_increment_dbcs_1()
"test_increment_dbcs.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"[converted] 222L, 5628C[converted] 226L, 5709C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_job_fails.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_job_fails.vim" 19 lines, 598 characters

Executing Test_job_start_fails()[?25h[?0c[?25l[?1c
"test_job_fails.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"226L, 5709C230L, 5784C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_json.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_json.vim" 287 lines, 10700 characters

Executing Test_js_decode()

Executing Test_js_encode()

Executing Test_json_decode()

Executing Test_json_encode()

"test_json.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"230L, 5784C237L, 5934C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_langmap.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_langmap.vim" 28 lines, 628 characters

Executing Test_langmap()
"test_langmap.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"237L, 5934C241L, 5999C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_man.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_man.vim" 60 lines, 1358 characters

Executing Test_g_ft_man_open_mode()


Cannot find a 'vim'.

Executing Test_nomodifiable()


Cannot find a 'vim'.
"test_man.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"241L, 5999C246L, 6102C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_marks.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_marks.vim" 26 lines, 775 characters

Executing Test_Incr_Marks()

Executing Test_Restore_DelMark()1 more line; before #2  0 seconds ago
1 line less; after #2  0 seconds agomore line; before #2  0 seconds ago
"test_marks.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"246L, 6102C251L, 6202C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_matchadd_conceal.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_matchadd_conceal.vim" 289 lines, 9276 characters[?25h[?0cExecuting Test_clearmatches()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #ZThisZisZaZTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_default_conceal_char()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #+This+is+a+Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_and_conceallevel_3()#ThisisaTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #Thisisa Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_and_syn_conceal()Inductive - : Type := | true : - | false : -.

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Inductive - : Type := | true : - | false : -.

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_repeat_conceal_with_syntax_off()TARGET_TARGETTARGET
t_ttsimple_matchadd()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_simple_matchadd_and_conceal()#XThisXisXaXTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_syn_and_match_conceal()#ZThisZisZaZTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #*This*is*a*Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_using_matchaddpos()#Pis a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       "test_matchadd_conceal.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"251L, 6202C263L, 6616C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_mksession.vim" 104 lines, 2315 characters

Executing Test_mksession()
"/tmp/vaf3bJI/0" [New] 9L, 203C written

search hit BOTTOM, continuing at TOP
"test_mksession.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"[converted] 263L, 6616C[converted] 267L, 6685C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_mksession_utf8.vim" 104 lines, 2328 characters

Executing Test_mksession_utf8()
"/tmp/vs4jkve/0" [New] 9L, 215C written

search hit BOTTOM, continuing at TOP
"test_mksession_utf8.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"267L, 6685C271L, 6764C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_nested_function.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_nested_function.vim" 67 lines, 1305 characters

Executing Test_max_nesting()

Executing Test_nested_argument()

[]

Executing Test_nested_functions()
"test_nested_function.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"271L, 6764C277L, 6909C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_netbeans.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_netbeans.vim" 80 lines, 2145 characters
"test_netbeans.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"277L, 6909C280L, 6950C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_normal.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_normal.vim" 2280 lines, 58740 characters

Executing Test_normal00_optrans()
Executing Test_normal01_keymodel()
4 lines yankedExecuting Test_normal02_selectmode()10 fewer lines
Executing Test_normal02_selectmode2():set im
[?25h[?0c[?25l[?1c:set noim

Executing Test_normal03_join()

Executing Test_normal04_filter():.!sed -e 's/^/|    /'
[?25h[?0cone
[?25l[?1c:.!sed -e 's/^/|    /'
[?25h[?0c[?25l[?1c:.!
:!echo one
[?25h[?0c
[No write since last change]

one
[?25l[?1c:.!!
[?25h[?0c
[?25l[?1cExecuting Test_normal05_formatexpr()

Executing Test_normal05_formatexpr_newbuf()
"another" [New File]
Executing Test_normal05_formatexpr_setopt()

Executing Test_normal06_formatprg():.,$!./Xsed_format.sh
[?25h[?0c[?25l[?1c7 lines filtered:.,$!./Xsed_format.sh
[?25h[?0c[?25l[?1c7 lines filtered
Executing Test_normal07_internalfmt()
7 fewer lin
Executing Test_normal08_fold()

Executing Test_normal09_operatorfunc()

11 substitutions on 11 lines

Executing Test_normal09a_operatorfunc()

11 substitutions on 11 lines

Executing Test_normal10_expand()

Executing Test_normal11_showcmd()
Executing Test_normal12_nv_error()

Executing Test_normal13_help()
"help.txt" [readonly] 225L, 8437C

Executing Test_normal14_page()

Executing Test_normal14_page_eol()
Executing Test_normal15_z_scroll_vert()

Executing Test_normal16_z_scroll_hor()

Executing Test_normal17_z_scroll_hor2()

Executing Test_normal18_z_fold()

Executing Test_normal19_z_spell()
Word 'goood' added to ./Xspellfile.add
search hit BOTTOM, continuing at TOPWord 'goood' added to ./Xspellfile.add2 goood' added to ./Xspellfile.add/tmp/v15LkaE/11removed from /tmp/v15LkaE/11goood' added to /tmp/v15LkaE/11removed from /tmp/v15LkaE/11added to ./Xspellfile.addremoved from ./Xspellfile.add2 goood' added to ./Xspellfile.addremoved from ./Xspellfile.addgoood' added to ./Xspellfile2.add
Executing Test_normal20_exmode()

Executing Test_normal21_nv_hat()
"Xfoobar" [New File]ile2" [New File]
Executing Test_normal22_zet()

Executing Test_normal23_K()
"version8.txt" [readonly] 14932L, 562906Cline 1 of 14932 --0%-- col 1
"man" [New File]aa%bb" [New File]
"cc|dd
:! man --pager=cat 'man'[?25h[?0c
[No write since last change]

stdin not open for reading!

shell returned 2


[?25l[?1cExecuting Test_normal24_rot13()

Executing Test_normal25_tag()
"help.txt" [readonly] 225L, 8437C
"change.txt" [readonly] 1830L, 74768C
"help.txt" [readonly] 225L, 8437C
"change.txt" [readonly] 1830L, 74768C
"help.txt" [readonly] 225L, 8437C
"insert.txt" [readonly] 2003L, 82815Cline 49 of 2003 --2%-- col 7-49

Executing Test_normal26_put()

Executing Test_normal27_bracket()

21 substitutions on 21 lines

Executing Test_normal28_parenthesis()

Executing Test_normal29_brace()
17 fewer lines4 fewer lines3
Executing Test_normal30_changecase()

Executing Test_normal31_r_cmd()
Executing Test_normal32_g_cmd1()
/x_foo?abc
Executing Test_normal33_g_cmd2()/[1-8]
search hit BOTTOM, continuing at TOP
9 substitutions on 9 linesblock of 3 lines yanked5
Executing Test_normal34_g_cmd3()

Executing Test_normal35_g_cmd4()

Executing Test_normal36_g_cmd5()

Executing Test_normal37_g_cmd6()
"1.txt" [New File]23

Executing Test_normal38_nvhome()

Executing Test_normal39_cw()
Executing Test_normal40_ctrl_bsl()
Executing Test_normal41_insert_reg()=a
=a
=a

Executing Test_normal42_halfpage()

Executing Test_normal43_textobject1()

Executing Test_normal44_textobjects2()

Executing Test_normal45_drop()

Executing Test_normal46_ignore()

Executing Test_normal47_autocmd()

Executing Test_normal47_visual_buf_wipe()

Executing Test_normal48_wincmd()

Executing Test_normal49_counts()

Executing Test_normal50_commandline()q:  :xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :set im
:set noim
:.!sed -e 's/^/|    /'
:.!
:!echo one
:.!!
:
[Command Line]                                                                  [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:^M   

Executing Test_normal51_FileChangedRO()
"Xreadonly.log" 1L, 4C
Error detected while processing ...13]..Test_normal51_FileChangedRO:
line    8:W10: Warning: Changing a readonly file
Executing Test_normal52_rl()3_digraph()

Executing Test_normal54_Ctrl_bsl()
"test_normal.res" [New File][New] 0L, 0C written

Executed 61 tests
"messages" 280L, 6950C348L, 9314C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_packadd.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_packadd.vim" 238 lines, 8288 characters

Executing Test_colorscheme()

Executing Test_colorscheme_completion():colorscheme ...one')
:ccolorscheme one')
:cacolorscheme one')
:calcolorscheme one')
:callcolorscheme one')
:call colorscheme one')acolorscheme one')dcolorscheme one')dcolorscheme one')(colorscheme one')lcolorscheme one')icolorscheme one'),colorscheme one') colorscheme one')'colorscheme one')
:colorscheme ...one...three')
:ccolorscheme three')
:cacolorscheme three')
:calcolorscheme three')
:callcolorscheme three')
:call colorscheme three')acolorscheme three')dcolorscheme three')dcolorscheme three')(colorscheme three')lcolorscheme three')icolorscheme three'),colorscheme three') colorscheme three')'colorscheme three')
:colorscheme ...one...three...wo')
:ccolorscheme two')
:cacolorscheme two')
:calcolorscheme two')
:callcolorscheme two')
:call colorscheme two')acolorscheme two')dcolorscheme two')dcolorscheme two')(colorscheme two')lcolorscheme two')icolorscheme two'),colorscheme two') colorscheme two')'colorscheme two')
:colorscheme ...one...three...wo...')
:ccolorscheme ')
:cacolorscheme ')
:calcolorscheme ')
:callcolorscheme ')
:call colorscheme ')acolorscheme ')dcolorscheme ')dcolorscheme ')(colorscheme ')lcolorscheme ')icolorscheme '),colorscheme ') colorscheme ')'colorscheme ')

Executing Test_helptags()

Executing Test_packadd()
"./Xdir/pack/mine/opt/mytest/plugin/test.vim" [New File][New] 1L, 24C writtenalso/loaded.vim" [New File][New] 1L, 29C writtenftdetect/test.vim" [New File[New] 1L, 26C written

Executing Test_packadd_completion():packadd ...pluginA')
:cpackadd pluginA')
:capackadd pluginA')
:calpackadd pluginA')
:callpackadd pluginA')
:call packadd pluginA')apackadd pluginA')dpackadd pluginA')dpackadd pluginA')(packadd pluginA')lpackadd pluginA')ipackadd pluginA'),packadd pluginA') packadd pluginA')'packadd pluginA')
:packadd ...pluginA...B')
:cpackadd pluginB')
:capackadd pluginB')
:calpackadd pluginB')
:callpackadd pluginB')
:call packadd pluginB')apackadd pluginB')dpackadd pluginB')dpackadd pluginB')(packadd pluginB')lpackadd pluginB')ipackadd pluginB'),packadd pluginB') packadd pluginB')'packadd pluginB')
:packadd ...pluginA...B...C')
:cpackadd pluginC')
:capackadd pluginC')
:calpackadd pluginC')
:callpackadd pluginC')
:call packadd pluginC')apackadd pluginC')dpackadd pluginC')dpackadd pluginC')(packadd pluginC')lpackadd pluginC')ipackadd pluginC'),packadd pluginC') packadd pluginC')'packadd pluginC')
:packadd ...pluginA...B...C...')
:cpackadd ')
:capackadd ')
:calpackadd ')
:callpackadd ')
:call packadd ')apackadd ')dpackadd ')dpackadd ')(packadd ')lpackadd ')ipackadd '),packadd ') packadd ')'packadd ')

Executing Test_packadd_noload()
"./Xdir/pack/mine/opt/mytest/plugin/test.vim" [New File][New] 1L, 24C written

Executing Test_packloadall()

Executing Test_runtime()
"test_packadd.res" [New File][New] 0L, 0C written

Executed 8 tests
"messages"348L, 9314C359L, 9597C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_perl.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_perl.vim" 123 lines, 3037 characters

Executing Test_SvREFCNT()
"t" [New File]
Executing Test_VIM_package()

Executing Test_change_buffer()/^1

Executing Test_evaluate_list()/^2
search hit BOTTOM, continuing at TOP

Executing Test_perldo()
"__TEST__" [New File]test_perl.vim"123L, 3037C

Executing Test_perleval()

Executing Test_stdio()

&VIM::Msg

STDOUT

STDERR
"test_perl.res" [New File][New] 0L, 0C written

Executed 7 tests
"messages"359L, 9597C369L, 9825C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_profile.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_profile.vim" 146 lines, 6247 characters

Executing Test_profile_completion():profile ...continue file func pause start
:"profile continue file func pause start
:"
:profile start test_prof...ile.vim
:"profile start test_profile.vim
:"

Executing Test_profile_errors()

Executing Test_profile_file()

Executing Test_profile_func()
"test_profile.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"369L, 9825C376L, 9994C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_quickfix.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_quickfix.vim" 1693 lines, 46351 characters

Executing Test_Autocmd()
"F1" [New File]
(1 of 1): Line 10
"F2" [New File]
(1 of 2): Line 10

Executing Test_Autocmd_Exception()

Executing Test_adjust_lnum()

Already only one window
"Xqftestfilec" 20L, 131C

9 fewer lines

Already only one window
"Xqftestfilel" 20L, 131C

9 fewer lines

Executing Test_browse()
"Xqftestfile1" 20L, 131C

(1 of 4): Line5

"Xqftestfile2" 20L, 131C

(3 of 4): Line10
"Xqftestfile1" 20L, 131C

(2 of 4): Line6
"Xqftestfile2" 20L, 131C

(4 of 4): Line11

"Xqftestfile1" 20L, 131C

(1 of 4): Line5

(1 of 4): Line5

"Xqftestfile2" 20L, 131C

(3 of 4): Line10
"Xqftestfile1" 20L, 131C

(2 of 4): Line6
"Xqftestfile2" 20L, 131C

(4 of 4): Line11

"Xqftestfile1" 20L, 131C

(1 of 4): Line5

Executing Test_caddbuffer_to_empty()
"autocmd.txt" [readonly] 1486L, 61530C

(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run

(2 of 1486):

Executing Test_caddbuffer_wrong()
"Xqftestfile2" [New File]
Executing Test_caddexpr_wrong()

(1 of 1):

(1 of 1):

Executing Test_cage()

error list 9 of 10; 1 errors      :cgetexpr ['Xtestfile2:2:2:Line2']

error list 10 of 10; 1 errors     :cgetexpr ['Xtestfile3:3:1:Line3']

error list 8 of 10; 1 errors      :cgetexpr ['Xtestfile1:1:3:Line1']

error list 10 of 10; 1 errors     :cgetexpr ['Xtestfile3:3:1:Line3']

error list 9 of 10; 1 errors      :lgetexpr ['Xtestfile2:2:2:Line2']

error list 10 of 10; 1 errors     :lgetexpr ['Xtestfile3:3:1:Line3']

error list 8 of 10; 1 errors      :lgetexpr ['Xtestfile1:1:3:Line1']

error list 10 of 10; 1 errors     :lgetexpr ['Xtestfile3:3:1:Line3']

Executing Test_cbottom()

Executing Test_cbuffer()
"Xtestfile7" [New File]
(1 of 2): Line 700
"Xtestfile7" [New File]

(1 of 2): Line 700

Executing Test_cexpr()

Executing Test_cfile()
"Xtestfile1" [New File]

(1 of 2): Line 700

"Xtestfile1" [New File]

(1 of 2): Line 700

Executing Test_cgetexpr_works()

Executing Test_clist()

 2 Xtestfile1:1 col 3: Line1

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 1: non-error 1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 5: non-error 3

 6 Xtestfile3:3 col 1: Line3

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 1: non-error 1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 5: non-error 3

 6 Xtestfile3:3 col 1: Line3

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

Executing Test_cwindow()~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       Xtestfile1|1 col 3| Line1                                                       Xtestfile2|2 col 2| Line2
Xtestfile3|3 col 1| Line3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [Quickfix List]                                                                 ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       Xtestfile1|1 col 3| Line1                                                       Xtestfile2|2 col 2| Line2
Xtestfile3|3 col 1| Line3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [Location List]                                                                 Executing Test_dirstack_cleanup()

(1 of 1): 0

Executing Test_duplicate_buf()
"DoesNotExist" [New File]2" [New File]

Xgrepthis
"Xgrepthis" line 1 of 2 --50%-- col 1

(1 of 2): this one

Xgrepthis
(1 of 2): this one

Executing Test_efm()

Executing Test_efm1()
"Xtestfile" 21L, 903C

(1 of 20): 1506-045 (S) Undeclared identifier fd_set.

(20 of 20): What is the title of the quickfix window?

Executing Test_efm2()
"Xtestfile" [New File]

Executing Test_efm_dirstack()

Executing Test_efm_ignore_continuations()

Executing Test_errortitle()

Executing Test_grep()

Already only one window[?25h[?0ctest_quickfix.vim:1418:  " Grep_Test_Text: Match 1
test_quickfix.vim:1419:  " Grep_Test_Text: Match 2
test_quickfix.vim:1424:  silent Xgrep Grep_Test_Text: test_quickfix.vim
test_quickfix.vim:1420:  " GrepAdd_Test_Text: Match 1
test_quickfix.vim:1421:  " GrepAdd_Test_Text: Match 2
test_quickfix.vim:1431:  silent Xgrepadd GrepAdd_Test_Text: test_quickfix.vim
[?25l[?1cAlready only one window[?25h[?0ctest_quickfix.vim:1418:  " Grep_Test_Text: Match 1
test_quickfix.vim:1419:  " Grep_Test_Text: Match 2
test_quickfix.vim:1424:  silent Xgrep Grep_Test_Text: test_quickfix.vim
test_quickfix.vim:1420:  " GrepAdd_Test_Text: Match 1
test_quickfix.vim:1421:  " GrepAdd_Test_Text: Match 2
test_quickfix.vim:1431:  silent Xgrepadd GrepAdd_Test_Text: test_quickfix.vim
[?25l[?1cExecuting Test_helpgrep()
"autocmd.txt" [readonly] 1486L, 61530C

(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run
"autocmd.txt" [readonly] line 1 of 1486 --0%-- col 1
(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run

Executing Test_history()

error list 1 of 10; 1 errors      :  cexpr 'Xtestfile:Line search text'

error list 1 of 2; 1 errors:  cexpr 'Xtestfile:Line search text'

error list 1 of 3; 13 errors      :lexpr ""

error list 1 of 2; 13 errors      :lexpr ""

Executing Test_invalid_efm()

Executing Test_locationlist()

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

W19: Deleting augroup that is still in use
Executing Test_locationlist_cross_tab_jump()
"loclistfoo" 1L, 11Cbar1L, 11C[?25h[?0cloclistfoo:1:loclistfoo

[?25l[?1cAlready only one window

Executing Test_locationlist_curwin_was_closed()

W19: Deleting augroup that is still in use
Executing Test_long_lines()"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Executing Test_nomem()
"/<<PKGBUILDDIR>>/src/vim-gtk/alloc.h" 21L, 485C

Error detected while processing function RunTheTest[13]..Test_nomem:

line    2:

E342: Out of memory!  (allocating 4096 bytes)
"/<<PKGBUILDDIR>>/src/vim-gtk/alloc.h" 21L, 485C

line    5:

E342: Out of memory!  (allocating 4096 bytes)
"/<<PKGBUILDDIR>>/src/vim-gtk/alloc.h" 21L, 485C

line    8:

E342: Out of memory!  (allocating 1025 bytes)
"/<<PKGBUILDDIR>>/src/vim-gtk/alloc.h" 21L, 485C

line   11:

E342: Out of memory!  (allocating 1025 bytes)
"/<<PKGBUILDDIR>>/src/vim-gtk/alloc.h" 21L, 485C

line   14:

E342: Out of memory!  (allocating 1025 bytes)

Executing Test_qf_property()

Executing Test_qf_title()

Executing Test_quickfix_set_list_with_act()

Executing Test_quickfix_was_changed_by_autocmd()

error list 9 of 10; 1 errors      :setqflist()

W19: Deleting augroup that is still in use
error list 9 of 10; 1 errors      :setloclist()

error list 9 of 10; 1 errors      :setloclist()

W19: Deleting augroup that is still in use
Executing Test_setqflist()"Xtestfile" [New File]
(2 of 2):

(3 of 3):

(2 of 2):

(3 of 3):

Executing Test_setqflist_empty_middle()

test_quickfix.vim
"test_quickfix.vim" 1693L, 46351C

(1 of 49): func Test_clist()

test_quickfix.vim
(1 of 13): " With an empty list, command should return error

test_quickfix.vim
(1 of 2): " number of matches is unknown

error list 9 of 10; 13 errors     :vimgrep empty test_quickfix.vim

error list 8 of 10; 49 errors     :vimgrep Test_ test_quickfix.vim

error list 9 of 10; 0 errors      :setqflist()

error list 10 of 10; 2 errors     :vimgrep matches test_quickfix.vim

test_quickfix.vim
(1 of 49): func Test_clist()

test_quickfix.vim
(1 of 13): " With an empty list, command should return error

test_quickfix.vim
(1 of 2): " number of matches is unknown

error list 9 of 10; 13 errors     :lvimgrep empty test_quickfix.vim

error list 8 of 10; 49 errors     :lvimgrep Test_ test_quickfix.vim

error list 9 of 10; 0 errors      :setloclist()

error list 10 of 10; 2 errors     :lvimgrep matches test_quickfix.vim

Executing Test_setqflist_empty_older()

test_quickfix.vim
(1 of 24): \ 'Does anyone know what is the problem and how to correction it?',

test_quickfix.vim
(1 of 21): " Go back two lists

test_quickfix.vim
(1 of 7): " Add three quickfix/location lists

error list 8 of 10; 24 errors     :vimgrep one test_quickfix.vim

error list 9 of 10; 21 errors     :vimgrep two test_quickfix.vim

error list 10 of 10; 7 errors     :vimgrep three test_quickfix.vim

test_quickfix.vim
(1 of 24): \ 'Does anyone know what is the problem and how to correction it?',

test_quickfix.vim
(1 of 21): " Go back two lists

test_quickfix.vim
(1 of 7): " Add three quickfix/location lists

error list 8 of 10; 24 errors     :lvimgrep one test_quickfix.vim

error list 9 of 10; 21 errors     :lvimgrep two test_quickfix.vim

error list 10 of 10; 7 errors     :lvimgrep three test_quickfix.vim

Executing Test_switchbuf()
"Xqftestfile1" 20L, 131C220L, 131C1" line 1 of 20 --5%-- col 1

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" line 1 of 20 --5%-- col 1

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16

(1 of 6): Line5

(2 of 6): Line6

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C220L, 131C

(1 of 6): Line5

(2 of 6): Line6

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" 20L, 131C

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" 20L, 131C

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16

Already only one window
"Xqftestfile1" 20L, 131C220L, 131C320L, 131C

Executing Test_two_windows()
"one" [New File]two

Executing Test_vimgreptitle()

file
"file" [New File]

Cannot open file "file"
"test_quickfix.res" [New File][New] 0L, 0C written

Executed 42 tests
"messages" 376L, 9994C421L, 11297C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_ruby.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_ruby.vim" 34 lines, 820 characters

Executing Test_ruby_change_buffer()/^1

Executing Test_ruby_evaluate_dict()

{"a"=>"foo", "b"=>123}

Executing Test_ruby_evaluate_list()/^2
search hit BOTTOM, continuing at TOP
"test_ruby.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"421L, 11297C427L, 11443C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_search.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_search.vim" 296 lines, 8731 characters

Executing Test_search_cmdline()/foobar
/the
search hit BOTTOM, continuing at TOP/thes
/foobar
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
?the
?the
?the
?the
?the
?the
?the
?the
?the
?the
search hit TOP, continuing at BOTTOM/thes
/thes
/thes
/thes
/thei
/theis
/theiss
/themthe\>
Executing Test_search_cmdline2()/the
/the
/the
/the
/the
/the
/the
/foo
6 their
  7 the
  8 them
  9 these
 10 foobar
[No Name] [+]                                                                   " Test for the search command

func Test_search_cmdline()
  if !exists('+incsearch')
    return
  endif
  " need to disable char_avail,
  " so that expansion of commandline works
  call test_disable_char_avail(1)
  new
  call setline(1, ['  1', '  2 these', '  3 the', '  4 their', '  5 there', '  6their', '  7 the', '  8 them', '  9 these', ' 10 foobar'])
  " Test 1
  " CTRL-N / CTRL-P skips through the previous search history
  set noincsearch
  :1
test_search.vim                                                                 Executing Test_searchpair()

Executing Test_use_sub_pat()
"test_search.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"427L, 11443C434L, 11605C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_signs.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_signs.vim" 199 lines, 6383 characters

Executing Test_sign()
"foo" [New File]a  b  c xd                                                                                 ~
[No Name] [+]                                                                   " Test for signs

if !has('signs')
  finish
endif
test_signs.vim                                                                  ~                                                                               ~                                                                               ~                                                                               ~                                                                               foo                                                                               a
  b
x c
  d
[No Name] [+]                                                                     a  bx c  d  ~   "foo" [New file] --No lines in buffer--
"barF
Executing Test_sign_completion():sign ...define jump list place undefine unplace
:"sign define jump list place undefine unplace
:"
:sign define Sign ...icon= linehl= text= texthl=
:"sign define Sign icon= linehl= text= texthl=
:"
:sign define Sign linehl=Spell...Bad SpellCap SpellLocal SpellRare
:"sign define Sign linehl=SpellBad SpellCap SpellLocal SpellRare
:"
:sign define Sign icon=Xsig...nOne XsignTwo
:"sign define Sign icon=XsignOne XsignTwo
:"
:sign undefine ...Sign1 Sign2
:"sign undefine Sign1 Sign2
:"
:sign place 1 ...buffer= file= line= name=
:"sign place 1 buffer= file= line= name=
:"
:sign place 1 name=...Sign1 Sign2
:"sign place 1 name=Sign1 Sign2
:"
:sign unplace 1 ...buffer= file=
:"sign unplace 1 buffer= file=
:"
:sign list ...Sign1 Sign2
:"sign list Sign1 Sign2
:"
:sign jump 1 ...buffer= file=
:"sign jump 1 buffer= file=
:"

Executing Test_sign_delete_buffer()

Executing Test_sign_invalid_commands()

Executing Test_sign_undefine_still_placed()
"foobar" [New File]test_signs.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"434L, 11605C442L, 11818C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_smartindent.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_smartindent.vim" 14 lines, 376 characters

Executing Test_nosmartindent()/some
search hit BOTTOM, continuing at TOP"test_smartindent.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"442L, 11818C446L, 11893C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_startup.vim" 185 lines, 4581 characters

Executing Test_after_comes_later()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c1: /<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xbefore.vim

  2: /<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xhere/plugin/here.vim

  3: /<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xhere/pack/foo/start/fo

obar/plugin/foo.vim

  4: /<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xafter/plugin/later.vim

  5: /<<PKGBUILDDIR>>/src/vim-gtk/testdir/Xafter.vim
[?25h[?0c

[?25l[?1cExecuting Test_compatible_args()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1cError detected while processing /<<PKGBUILDDIR>>/src/vim-gtk/test

dir/Xafter.vim:

line    2:

E528: Must specify a ' value: viminfo+=nviminfo
[?25h[?0c
[?25h[?8c[?25h[?0c
[?25l[?1cExecuting Test_file_args()[?25h[?0c[?25h[?8c[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
3 files to edit
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
2 files to edit
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
4 files to edit

[?25l[?1cExecuting Test_help_arg()[?25h[?0c
[?25l[?1cExecuting Test_read_stdin()[?25h[?0c[?25l[?1c"-stdin-" 1 line, 10 characters[?25h[?8c[?25h[?0c"Xtestout" [New File] 1 line, 10 characters written
[?25h[?0c
Vim: Reading from stdin...

[?25l[?1cExecuting Test_startup_script()

Executing Test_startuptime()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
[?25l[?1c"test_startup.res" [New File][New] 0L, 0C written

Executed 7 tests
"messages"446L, 11893C456L, 12144C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_startup_utf8.vim" 64 lines, 1366 characters

Executing Test_read_fifo_utf8()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"/dev/fd/63" [readonly] 2 lines, 24 characters

"Xtestout" [New File] 2 lines, 24 characters written
[?25h[?0c

[?25l[?1cExecuting Test_read_stdin_utf8()[?25h[?0c[?25l[?1c"-stdin-" 2 lines, 24 characters[?25h[?8c[?25h[?0c"Xtestout" [New File] 2 lines, 24 characters written
[?25h[?0c
Vim: Reading from stdin...
[?25l[?1c"test_startup_utf8.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"456L, 12144C461L, 12255C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_stat.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_stat.vim" 64 lines, 1598 characters

Executing Test_checktime()
"Xtest.tmp" 1L, 13C[?25h[?0c[?25l[?1c1L, 25C

Executing Test_existent_directory()

Executing Test_existent_file()[?25h[?0c

[?25l[?1cExecuting Test_nonexistent_file()

Executing Test_win32_symlink_dir()
"test_stat.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"461L, 12255C469L, 12456C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_substitute.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_substitute.vim" 41 lines, 1151 characters

Executing Test_multiline_subst()

search hit BOTTOM, continuing at TOP
3 substitutions on 3 lines
3 substitutions on 2 lines
"test_substitute.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"469L, 12456C473L, 12532C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_syntax.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_syntax.vim" 164 lines, 4101 characters

Executing Test_syn_iskeyword()CREATE TABLE FOOBAR(
    DLTD_BY VARCHAR2(100)
);

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for syntax and syntax iskeyword option

if !has("syntax")
  finish
endif

func GetSyntaxItem(pat)
  let c = ''
  let a = ['a', getreg('a'), getregtype('a')]
  0
test_syntax.vim                                                                 
syntax iskeyword not set

syntax iskeyword @,48-57,_,192-255CREATE TABLE FOOBAR(
    DLTD_BY VARCHAR2(100)
);

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for syntax and syntax iskeyword option

if !has("syntax")
  finish
endif

func GetSyntaxItem(pat)
  let c = ''
  let a = ['a', getreg('a'), getregtype('a')]
  0
test_syntax.vim                                                                 
syntax iskeyword not set

Executing Test_syntax_after_reload()
"Xsomefile" [New File][New] 2L, 12C written
"other" [New File]Xsomefile" 2L, 12C

Executing Test_syntax_completion():syn ...case clear cluster conceal enable include iskeyword keyword list manual ma

tch off on region reset spell sync"syn case clear cluster conceal enable include iskeyword keyword list manual match off on region reset spell sync
:syn case ...ignore match
:"syn case ignore match
:"
:syn spell ...default notoplevel toplevel
:"syn spell default notoplevel toplevel
:"
:syn sync ...ccomment clear fromstart linebreaks= linecont lines= match maxlines=

minlines= region"syn sync ccomment clear fromstart linebreaks= linecont lines= match maxlines= minlines= region
:syn list ...Boolean Character ColorColumn Comment Conceal Conditional Constant Cu

rsor CursorColumn CursorLine CursorLineNr Debug Define Delimiter DiffAdd DiffCha

nge DiffDelete DiffText Directory EndOfBuffer Error ErrorMsg Exception Float Fol

dColumn Folded Function Identifier Ignore IncSearch Include Keyword Label LineNr

Macro MatchParen ModeMsg MoreMsg NONE NonText Normal Number Operator Pmenu Pmen

uSbar PmenuSel PmenuThumb PreCondit PreProc Question Quote Repeat SYN Search Sig

nColumn Special SpecialChar SpecialComment SpecialKey SpellBad SpellCap SpellLoc

al SpellRare Statement StatusLine StatusLineNC StorageClass String Structure Tab

Line TabLineFill TabLineSel Tag Title Todo Type Typedef Underlined VertSplit Vis

ual VisualNOS WarningMsg WildMenu lCursor luaBlock luaBraceError luaComment luaC

ond luaConstant luaElse luaElseifThen luaError luaFor luaFunc luaFunction luaFun

ctionBlock luaIfThen luaIn luaInnerComment luaLabel luaLoopBlock luaNumber luaOp

erator luaParen luaParenError luaRepeat luaSpecial luaStatement luaString luaStr

ing2 luaTable luaTableBlock luaThenEnd luaTodo perlAnglesDQ perlAnglesSQ perlArr

ow perlAutoload perlBraces perlBracesDQ perlBracesSQ perlBracketsDQ perlBrackets

SQ perlCharacter perlComment perlConditional perlControl perlDATA perlElseIfErro"syn list Boolean Character ColorColumn Comment Conceal Conditional Constant Cursor CursorColumn CursorLine CursorLineNr Debug Define Delimiter DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer Error ErrorMsg Exception Float FoldColumn Folded Function Identifier Ignore IncSearch Include Keyword Label LineNr Macro MatchParen ModeMsg MoreMsg NONE NonText Normal Number Operator Pmenu PmenuSbar PmenuSel PmenuThumb PreCondit PreProc Question Quote Repeat SYN Search SignColumn Special SpecialChar SpecialComment SpecialKey SpellBad SpellCap SpellLocal SpellRare Statement StatusLine StatusLineNC StorageClass String Structure TabLine TabLineFill TabLineSel Tag Title Todo Type Typedef Underlined VertSplit Visual VisualNOS WarningMsg WildMenu lCursor luaBlock luaBraceError luaComment luaCond luaConstant luaElse luaElseifThen luaError luaFor luaFunc luaFunction luaFunctionBlock luaIfThen luaIn luaInnerComment luaLabel luaLoopBlock luaNumber luaOperator luaParen luaParenError luaRepeat luaSpecial luaStatement luaString luaString2 luaTable luaTableBlock luaThenEnd luaTodo perlAnglesDQ perlAnglesSQ perlArrow perlAutoload perlBraces perlBracesDQ perlBracesSQ perlBracketsDQ perlBracketsSQ perlCharacter perlComment perlConditional perlControl perlDATA perlElseIfErr
:syn match ...Boolean Character ColorColumn Comment Conceal Conditional Constant C
:"syn match Boolean Character ColorColumn Comment Conceal Conditional Constant 
:"

Executing Test_syntax_list()
"../memfile_test.c" [readonly] 143L, 3142C

--- Syntax items ---


--- Syntax items ---

"Xsomefile" [New File]

Executing Test_syntime()
"../memfile_test.c" [readonly] 143L, 3142C/* vi:set ts=8 sts=4 sw=4 noet:
 *
 * VIM - Vi IMproved    by Bram Moolenaar
 *
 * Do ":help uganda"  in Vim to read copying and usage conditions.
 * Do ":help credits" in Vim to see a list of people who contributed.
 * See README.txt for an overview of the Vim source code.
 */

/*
 * memfile_test.c: Unittests for memfile.c
 * Mostly by Ivan Krasilnikov.
 */

#undef NDEBUG
#include <assert.h>

/* Must include main.c because it contains much more than just main() */
#define NO_VIM_MAIN
#include "main.c"

/* This file has to be included because the tested functions are static */
#include "memfile.c"
"Xsomefile" [New File]
"test_syntax.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"473L, 12532C481L, 12729C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_system.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_system.vim" 92 lines, 2910 characters

Executing Test_System()
"Xdummy" [New File]
Executing Test_system_exmode()
"test_system.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"481L, 12729C486L, 12824C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_textobjects.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_textobjects.vim" 43 lines, 946 characters

Executing Test_inner_block_with_cpo_M_left_backslash()

Executing Test_inner_block_with_cpo_M_right_backslash()

Executing Test_inner_block_without_cpo_M()
"test_textobjects.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"486L, 12824C492L, 13023C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_undo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_undo.vim" 265 lines, 6936 characters

Executing Test_U_command()Executing Test_global_local_undolevels()
"one" [New File]
6 fewer lines; before #8  0 seconds ago
"two" [New File]
3 fewer lines; before #11  0 seconds ago
"three" [New File]
Executing Test_insert_expr()=setline('.','1234')
1 line less; before #4  0 seconds ago3=setline('.','1234')
1 line less; before #7  0 seconds ago=string(123)
1 line less; before #9  0 seconds ago

Executing Test_undo_del_chars()
1 change; before #3  0 seconds ago21

1 change; before #6  1 seconds ago5
4s; after #3
1; before #21

3 changes; after #6  1 seconds ago3 changes; before #7  0 seconds ago

3 changes; before #1  3 seconds ago

3 changes; after #6  3 seconds ago

3 changes; after #9  0 seconds ago

Executing Test_undo_write()
"Xtest" [New File]"Xtest" [New] 1L, 12C written"Xtest" 3L, 20C written1 line less; before #4  0 seconds ago

2 fewer lines; before #2  0 seconds ago

1 line less; before #1  0 seconds ago

1 more line; after #1  0 seconds ago

2 more lines; after #3  0 seconds ago

1 more line; after #4  0 seconds ago

Executing Test_undofile_earlier()
"Xfile" [New File]"Xfile" [New] 3L, 14C written3L, 14C

Finished reading undo file Xundofile

3 fewer lines; before #1  2017/03/08 18:46:58

Executing Test_undojoin()1 line less; before #2  0 seconds ago2 fewer lines; before #3  0 seconds ago

Executing Test_undolist()1 change; before #2  0 seconds agoExecuting Test_undotree()
1 change; before #2  0 seconds ago
"Xtest" [New] 1L, 4C written
"test_undo.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"492L, 13023C504L, 13330C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_usercommands.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_usercommands.vim" 104 lines, 2527 characters

Executing Test_Ambiguous()

Executing Test_CmdUndefined()

Executing Test_cmdmods()
"test_usercommands.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"504L, 13330C510L, 13458C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viminfo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_viminfo.vim" 515 lines, 13496 characters

Executing Test_cmdline_history()

Executing Test_cmdline_history_order()

Executing Test_global_vars()

Executing Test_viminfo_bad_syntax()

Executing Test_viminfo_encoding()
"Xviminfo" [converted] 73L, 3414C

Executing Test_viminfo_file_mark_tabclose()
"Xtestfileintab" [New File]viminfo" 83L, 3589C

Executing Test_viminfo_file_mark_zero_time()

Executing Test_viminfo_file_marks()
"ten" [New File]again" [New File]
"thirty" [New File]
"twen
"again" [New File]fourty" [New File]
"Xviminfo" 90L, 3387C

Executing Test_viminfo_jumplist()
"testbuf" [New File]/20
/30
/last pos
/15
/last pos
?30
/15
/last pos
?30
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here

Executing Test_viminfo_marks()
"bufa" [New File]b

Executing Test_viminfo_oldfiles()

Executing Test_viminfo_read_and_write()

Executing Test_viminfo_registers()
"test_viminfo.res" [New File][New] 0L, 0C written

Executed 13 tests
"messages" 510L, 13458C526L, 13970C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viml.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_viml.vim" 1316 lines, 31904 characters

Error detected while processing /<<PKGBUILDDIR>>/src/vim-gtk/test

dir/test_viml.vim:

line  432:

E492: Not an editor command: ^Iasdf

line  444:

E492: Not an editor command: ^Iasdf

line  452:

E492: Not an editor command: asdf

line  455:

E492: Not an editor command: asdf | Xpath 'p'

Error detected while processing function T8_F:

line    5:

E492: Not an editor command: ^I    asdf

line    7:

E492: Not an editor command: ^I    asdf | Xpath 'd'

line   19:

E492: Not an editor command: ^I    asdf

line   21:

E492: Not an editor command: ^I    asdf | Xpath 'l'

line   29:

E121: Undefined variable: novar

E15: Invalid expression: novar^I^I" returns (default return value 0)

Error detected while processing function T8_G:

line    5:

E492: Not an editor command: ^I    asdf^I^I" returns -1

Error detected while processing function T8_H:

line    5:

E492: Not an editor command: ^I    asdf^I^I" returns -1

Error detected while processing function F[2]..G[2]..H[2]..I:

line    2:

E492: Not an editor command:     asdf^I^I" error

Error detected while processing /<<PKGBUILDDIR>>/src/vim-gtk/test

dir/test_viml.vim:

line  663:

E15: Invalid expression: | strlen("\"") | Xpath 'j'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'j'

line  673:

E15: Invalid expression: | strlen("\"") | Xpath 'n'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'n'

line  682:

E15: Invalid expression: | strlen("\"") | Xpath 'r'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'r'

line  717:

E492: Not an editor command:     asdf^I^I" error

1
line  787:

E492: Not an editor command:     asdf^I^I" error

line  794:

E492: Not an editor command:     asdf^I^I" error

line  817:

E121: Undefined variable: asdf

E15: Invalid expression: asdf

line  828:

E121: Undefined variable: asdf

E15: Invalid expression: asdf | Xpath 'f' | endwhile | Xpath 'g'

Error detected while processing function F:

line    8:

E121: Undefined variable: g:boolvar

E15: Invalid expression: g:boolvar^I" possibly undefined

E121: Undefined variable: g:boolvar

E15: Invalid expression: g:boolvar | Xpath 'd' | else | Xpath 'e' | endif

Executing Test_arg_abort()

Executing Test_braces_skipped()

Executing Test_curlies()

Executing Test_defining_functions()

Executing Test_echo_and_string()

foo bar

'foo bar'

-1.2

-1.2

string

function('string')

{'a': {...}}

{'a': {...}}

[[...]]

[[...]]

[{}, {}, {}]

[{}, {}, {}]

{'a': {}, 'b': {}}

{'a': {}, 'b': {}}

[[], [], []]

[[], [], []]

{'a': [], 'b': []}

{'a': [], 'b': []}

[{'one': 'yes', 'two': 'yes', 'three': 'yes'}, {...}, {...}]

[{'one': 'yes', 'two': 'yes', 'three': 'yes'}, {'one': 'yes', 'two': 'yes', 'th

ree': 'yes'}, {'one': 'yes', 'two': 'yes', 'three': 'yes'}]

{'a': {'one': 'yes', 'two': 'yes', 'three': 'yes'}, 'b': {...}}

{'a': {'one': 'yes', 'two': 'yes', 'three': 'yes'}, 'b': {'one': 'yes', 'two':

'yes', 'three': 'yes'}}

[[1, 2, 3], [...], [...]]

[[1, 2, 3], [1, 2, 3], [1, 2, 3]]

{'a': [1, 2, 3], 'b': [...]}

{'a': [1, 2, 3], 'b': [1, 2, 3]}

Executing Test_endwhile_function()

Executing Test_endwhile_script()

   function T1_F()

1      Xpath 'a'

2      let first = 1

3      while 1

4Xpath 'b'

5if first

6Xpath 'c'

7let first = 0

8break

9else

10Xpath 'd'

11return

12endif

13     endwhile

   endfunction"/tmp/vmszK2P/0" [noeol] 16L, 299C
13 substitutions on 13 lines
Pattern not found: ^\s*$
"/tmp/vmszK2P/0" 13L, 248C written
"test_viml.vim" 1316L, 31904C
   function T1_G()
1      Xpath 'h'
2      let first = 1
3      while 1
4Xpath 'i'
5if first
6Xpath 'j'
7let first = 0
8break
9else
10Xpath 'k'
11return

12endif

13if 1    " unmatched :if

14     endwhile

   endfunction"/tmp/vmszK2P/1" [noeol] 17L, 334C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vmszK2P/1" 14L, 281C written
"test_viml.vim" 1316L, 31904C
Executing Test_error_in_function()
Executing Test_error_in_script()
Executing Test_expr_parsing()
Executing Test_finish()
   function T4_F()
1      if 1
2Xpath 'a'
3let loops = 3
4while loops > 0"    3:  2:     1:
5Xpath 'b' . loops
6if (loops == 2)
7Xpath 'c' . loops
8return

9Xpath 'd' . loops

10endif

11Xpath 'e' . loops

12let loops = loops - 1

13endwhile

14Xpath 'f'

15     else

16Xpath 'g'

17     endif

   endfunction"/tmp/vmszK2P/2" [noeol] 20L, 504C
17 substitutions on 17 lines
Pattern not found: ^\s*$
"/tmp/vmszK2P/2" 17L, 445C written
"test_viml.vim" 1316L, 31904C
Executing Test_func_abort()
Executing Test_if_bar_fail()
Executing Test_if_fail()
Executing Test_if_while()
Executing Test_num64()
Executing Test_return()
Executing Test_script_lines()
Executing Test_skip()
Executing Test_type()
Executing Test_while_fail()
"test_viml.res" [New File][New] 0L, 0C written
Executed 21 tests
"messages" 526L, 13970C550L, 14609C written[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_visual.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_visual.vim" 25 lines, 506 characters

Executing Test_block_shift_multibyte()

Executing Test_dotregister_paste()"test_visual.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"550L, 14609C555L, 14723C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_window_id.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_window_id.vim" 103 lines, 2714 characters

Executing Test_win_getid()
"one" [New File]twohree" [New File]
"four" [New File]ive

Executing Test_win_getid_curtab()
"X" [New File]test_window_id.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"555L, 14723C560L, 14827C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_writefile.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_writefile.vim" 16 lines, 490 characters

Executing Test_WriteFile()
"test_writefile.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"560L, 14827C564L, 14896C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_latin.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot_latin.vim" 7 lines, 280 characters

Executing Test_eow_with_optional()

Executing Test_equivalence_re1()

Executing Test_equivalence_re2()

Executing Test_nested_backrefs()

Executing Test_recursive_substitute()
"test_alot_latin.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"[converted] 564L, 14896C[converted] 572L, 15112C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot_utf8.vim" 11 lines, 440 characters[?25h[?0cExecuting Test_classes_re1()

Executing Test_classes_re2()

Executing Test_equivalence_re1()

Executing Test_equivalence_re2()

Executing Test_match_using_multibyte_conceal_char()#ˑThisˑisˑaˑTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " A series of tests that can run in one Vim invocation.
" This makes testing go faster, since Vim doesn't need to restart.

" These tests use utf8 'encoding'.  Setting 'encoding' is already done in
" runtest.vim.  Checking for the multi_byte feature is in the individual
" files, so that they can be run by themselves.

source test_expr_utf8.vim
source test_matchadd_conceal_utf8.vim
source test_regexp_utf8.vim
test_alot_utf8.vim                                                              Executing Test_source_latin()
"Xscript"[New] 2L, 44C written
Executing Test_source_utf8()"Xscript"[New] 2L, 42C written:%s/àx/--à1234--/g
:%s/Àx/--À1234--/g

Executing Test_strcharpart()

Executing Test_strgetchar()
"test_alot_utf8.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"572L, 15112C584L, 15447C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot.vim" 48 lines, 1233 characters

Executing Test_BufEnter()
"NewFile" [New File]Xdir" is a directory

Executing Test_abbreviation()Executing Test_abs()

Executing Test_acos()

Executing Test_asin()

Executing Test_atan()

Executing Test_atan2()

Executing Test_augroup_deleted()

W19: Deleting augroup that is still in use
Executing Test_augroup_warning()
W19: Deleting augroup that is still in useentering

Executing Test_auto_partial_rebind()

Executing Test_autocmd_bufunload_avoiding_SEGV_01()
"aa.txt" [New File]
"bb.txt" [New File]

Executing Test_autocmd_bufunload_avoiding_SEGV_02()
"a.txt" [New File]
"test_alot.vim" 48L, 1233C

Executing Test_autocmd_bufunload_with_tabnext()

Executing Test_autocmd_bufwinleave_with_tabfirst()
"a.txt" [New File]
Executing Test_bind_in_python()

Executing Test_break_undo()Executing Test_bufunload()

Executing Test_cancel_ptjump()

Already only one window:ptjump word
  # pri kind tagfile

  1 Fwordfile2

cmd2

  2 Fwordfile1

cmd1

Type number and <Enter> (empty cancels): 
"help.txt" [readonly] 225L, 8437C

Executing Test_caught_error_in_statusline()source test_messages.vim
source test_partial.vim
source test_popup.vim
source test_reltime.vim
source test_searchpos.vim
source test_set.vim
source test_sort.vim
source test_statusline.vim
source test_syn_attr.vim
source test_tabline.vim
source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis here
new line here

                                                                                Executing Test_caught_error_in_tabline()                                                                                source test_partial.vim
source test_popup.vim
source test_reltime.vim
source test_searchpos.vim
source test_set.vim
source test_sort.vim
source test_statusline.vim
source test_syn_attr.vim
source test_tabline.vim
source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis here
new line here

test_alot.vim                                                                   Executing Test_ceil()

Executing Test_closure_counter()

Executing Test_closure_refcount()

Executing Test_closure_unlet()

Executing Test_color_names()

Executing Test_compare_null_dict()

Executing Test_compare_partials()

Executing Test_compl_vim_cmds_after_register_expr()=s:test_func()
 AAAAA_Group             BufAdd                  BufCreate               BufDelete               BufEnter                BufFilePost             BufFilePre              BufHidden               BufLeave                BufNew                  BufNewFile              BufRead                 BufReadCmd              BufReadPost             BufReadPre              BufUnload               BufWinEnter             BufWinLeave             BufWipeout              BufWrite                BufWriteCmd             BufWritePost           Executing Test_complete_no_undo()=UndoComplete()
xxx
aaa
yyy
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   test_tabpage.vimtest_tagcase.vimtest_tagjump.vimtest_timers.vimtest_true_false.vimtest_unlet.vimsource test_window_cmd.vimsource test_options.vime hereTest3: text with a (parenthesis here
test_alot.vim                                                                   January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       1 change; before #2  0 seconds ago=UndoComplete()

bbb
yyy~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
source test_tab
source test_tagJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        1 change; before #4  0 seconds ago=UndoComplete()

yyy~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
source test_tab
source test_tagJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December           
January

~              
~              
~              
~              
~              
~              
~              
~              February       
March          
April          
May            
June           
July           
August         
September      -- INSERT --January        1 change; before #5  0 seconds ago

Executing Test_completefunc_opens_new_window_one()

search hit BOTTOM, continuing at TOPExecuting Test_completefunc_opens_new_window_two()

search hit BOTTOM, continuing at TOPExecuting Test_completefunc_with_scratch_buffer()January        
February
March    
April  
May     January        
February       info2-1
2-2
2-3

February
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis hereJanuary        
February       
March          
April          
May            

[Scratch]                                                                       test_alot.vim                                                                   [Scratch] [Preview]                                                             [Scratch]                                                                       
March~              
~              
~              
~              
~              January        
February       
March          
April          
May            3
3
3[Scratch]                                                                       [Scratch]                                                                       February       
March          
April
~              
~              
~              
~              
~              January        
February       
March          
April          
May            4
4
4[Scratch]                                                                       [Scratch]                                                                       March          
April          Executing Test_completefunc_works()

search hit BOTTOM, continuing at TOPthreedef       
threeDEF       threedef       
threeDEF       
threeDEF
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~              
~              
~              
~              
~              threedef       
threeDEF       Executing Test_completion_ctrl_e_without_autowrap()Executing Test_cos()

Executing Test_cosh()

Executing Test_cursorhold_insert()[?25h[?0c[?25l[?1cExecuting Test_cursorhold_insert_ctrl_x()[?25h[?0c[?25l[?1cExecuting Test_cursorline_keep_col()

Executing Test_curswant_with_autocommand()
Executing Test_cycle_partial_job()

Executing Test_cyclic_dict_arg()

Executing Test_cyclic_list_arg()

Executing Test_delete_myself()[?25h[?0c

[?25l[?1cExecuting Test_dict()

Executing Test_dictionary()

Executing Test_dir_delete()

Executing Test_early_bar()

Executing Test_empty_buffer()

Executing Test_equal()

Executing Test_ex_undo()
"ex-undo" [New File]
1 line less; before #3  0 seconds ago

1 line less; after #1  0 seconds ago

2 fewer lines; before #1  0 seconds ago

Executing Test_execute_list()

Executing Test_execute_string()

this

theend

something

Executing Test_existing()

Executing Test_exp()

Executing Test_expand()

Executing Test_feedkeys_x_with_empty_string()Executing Test_file_delete()
"Xfile" [New File][New] 2L, 4C written

Executing Test_file_perm()

Executing Test_fileformat_after_bw()
"a.txt" [New File]ex-undo" [New File]

Executing Test_filetype_valid()

Executing Test_filter()
"Xdoesnotmatch" [New File]
"Xwillmatch" [New File]ex-undo" [New File]
Executing Test_filter_cmd_completion():filter ^I"=execute('let cmdline = getcmdline()')
:filter ^I:filter pat^I"=execute('let cmdline = getcmdline()')
:filter pat^I:filter /pat^I"=execute('let cmdline = getcmdline()')
:filter /pat^I:filter /pat/^I"=execute('let cmdline = getcmdline()')
:filter /pat/^I:filter pat pri...nt"=execute('let cmdline = getcmdline()')
:filter pat print:filter /pat/ pri...nt"=execute('let cmdline = getcmdline()')
:filter /pat/ print:filter #pat# pri...nt"=execute('let cmdline = getcmdline()')
:filter #pat# printExecuting Test_filter_fails()

Executing Test_filter_map_dict_expr_funcref()

Executing Test_filter_map_dict_expr_string()

Executing Test_filter_map_list_expr_funcref()

Executing Test_filter_map_list_expr_string()

Executing Test_floor()

Executing Test_fmod()

Executing Test_fnamemodify()
"test_alot.vim" 48L, 1233C

Executing Test_func_unref()

Executing Test_funcref()

0
Executing Test_function_in_dict()

Executing Test_function_with_funcref()

Executing Test_gD()

Executing Test_gD_char()

Executing Test_gD_comment()

Executing Test_gD_inline_comment()

Executing Test_gD_string()

Executing Test_gD_string_same_line()

Executing Test_gD_too()

Executing Test_gd()

Executing Test_gd_comment()

Executing Test_gd_comment_in_string()

Executing Test_gd_inline_comment()

Executing Test_gd_inline_comment_body()

Executing Test_gd_inline_comment_only()

Executing Test_gd_kr_style()

Executing Test_gd_missing_braces()

Executing Test_gd_not_local()

Executing Test_gd_string()

Executing Test_gd_string_in_comment()

Executing Test_gd_string_only()

Executing Test_gd_trailing_comment()

Executing Test_gd_trailing_multiline_comment()

Executing Test_get_partial_items()

Executing Test_getreg_empty_list()

Executing Test_global_local_lispwords()

Executing Test_help_complete()

Executing Test_help_respect_current_file_lang()
"testdoc.abx" [readonly] 2L, 25Cja[readonly] 2L, 25Cline 1 of 2 --50%-- col 2-9txt[readonly] 2L, 25C
Executing Test_help_tagjump()"help.txt" [readonly] 225L, 8437C
"options.txt" [readonly] 8739L, 370255Cline 7652 of 8739 --87%-- col 7-49
"eval.txt" [readonly][converted] 10613L, 408230C line 2406 of 10613 --22%-- col 1
"options.txt" [readonly] line 1320 of 8739 --15%-- col 4-25
"cmdline[readonly] 1147L, 46822C

Executing Test_if()

Executing Test_info()

Executing Test_invalid()

Executing Test_invalid_submatch()

Executing Test_isnan()

Executing Test_join_with_count()

Executing Test_keymap_valid()

Executing Test_keyword_jump()
"Xtestfile" 9L, 141C

Executing Test_lambda_call_lambda_from_lambda()

Executing Test_lambda_capture_by_reference()

Executing Test_lambda_circular_reference()

Executing Test_lambda_closure_counter()

Executing Test_lambda_combination()

Executing Test_lambda_delfunc()

Executing Test_lambda_do_not_share_local_variable()

Executing Test_lambda_fails()

Executing Test_lambda_feature()

Executing Test_lambda_refer_local_variable_from_other_scope()

Executing Test_lambda_scope()

Executing Test_lambda_share_scope()

Executing Test_lambda_side_effect()

Executing Test_lambda_with_a_var()

Executing Test_lambda_with_filter()

Executing Test_lambda_with_map()

Executing Test_lambda_with_partial()

Executing Test_lambda_with_sort()

Executing Test_lambda_with_timer()[?25h[?0c

[?25l[?1c1[?25h[?0c
[?25l[?1c2[?25h[?0c
[?25l[?1c3[?25h[?0c
[?25l[?1c4[?25h[?0c
[?25l[?1c5[?25h[?0c
[?25l[?1c6[?25h[?0c
[?25l[?1c7[?25h[?0c
[?25l[?1c8[?25h[?0c
[?25l[?1cExecuting Test_load_menu()

Executing Test_log()

Executing Test_log10()

Executing Test_loop_over_null_list()

Executing Test_map_ctrl_c_insert()Executing Test_map_ctrl_c_visual():'<,'>$put ='vmap works'

Executing Test_map_cursor()1 line less; before #8  0 seconds ago

Executing Test_map_feedkeys():call feedkeys(".", "in")
:call feedkeys(".", "in")
Executing Test_map_langmap():call append(line('$'), '+')

Executing Test_map_meta_quotes()Executing Test_match()

abcdefghijklmnopq
TEST2: CTRL-C |<ctrl-c>A|
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   abcdΣabcdef
TEST2: CTRL-C |<ctrl-c>A|
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchaddpos()12345
NP
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   12345 
NP 
vmap works 
 
Test1: text with a (here some more text) 
Test1: text with a (here some more text) 
 
 
Test2: text wit a (here some more text [und undo]) 
fooc d 
fooc d 
+ 
+ 
bbbb 
bbbb 
cccc 
bbbb 
+ 
-foo- 
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   012345 
NP 
vmap works 
 
Test1: text with a (here some more text) 
Test1: text with a (here some more text) 
 
 
Test2: text wit a (here some more text [und undo]) 
fooc d 
fooc d 
+ 
+ 
bbbb 
bbbb 
cccc 
bbbb 
+ 
-foo- 
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   1234567890
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   1234567890
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchaddpos_using_negative_priority()x
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   x
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchstrpos()

Executing Test_max_min_errors()

Executing Test_messages()

hello0x
-1 match priority
vmap works   hello1234567898

hello9xhello9
Executing Test_missing_attr()

Executing Test_move_cursor()

Executing Test_named_function_closure()

Executing Test_no_type_checking()

Executing Test_noinsert_complete()=s:complTest1()
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       x
-1 match priority
vmap worksTest1: text with a (here some more text)
Test1: text with a (here some more text)Test2: text wit a (here some more text [und undo])fooc d[No Name]                                                                       source         
soundfold      ndfold=s:complTest2()

~              
~              source         
soundfold      Executing Test_non_zero_arg()

Executing Test_not_existing()

Executing Test_not_lamda()

Executing Test_omnifunc_with_check()

search hit BOTTOM, continuing at TOPfour1
~                                                                               ~                                                                               ~                                                                               [+]four1          
four2          2
~              
~              four1          
four2          four1          
four2          
~              
~              four1          
four2          
four3          
four4          
four5          
four6          search hit BOTTOM, continuing at TOP1
~              
~              
~              
~              
~              
~              four1          
four2          2
~              
~              four1          
four2          four1          
four2          3
~              
~              four1          
four2          
four3          
four4          
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          search hit BOTTOM, continuing at TOP1
~              
~              
~              
~              
~              
~              four1          
four2          2
~              
~              four1          
four2          four1          
four2          3
~              
~              four1          
four2          
four3          
four4          four3          
four4          
four5          
four6          4
~              
~              
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          5
~              
~              
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          four4          
four5          Executing Test_oneshot()[?25h[?0c

[?25l[?1cExecuting Test_option_value()

Executing Test_options()
"option-window" [New File]

Executing Test_partial_args()

Executing Test_partial_dict()

Executing Test_partial_exists()

Executing Test_partial_implicit()

Executing Test_partial_string()

Executing Test_path_keep_commas()

Executing Test_paused()[?25h[?0c

[?25l[?1cExecuting Test_popup_complete()=ListMonths()

June
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               June           
July           -- INSERT --June           
July           =ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       

February       
March          


March          
April          April          
May            May            
June           June           
July           July           
August         =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
June           
July           =ListMonths()

~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

June~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJune           
July           ~              
~              June           
July           -- INSERT --June           
July=ListMonths()
ne
~              
~              June           
July           ~              
~              June           
July           -- INSERT --June           
Julyly
~              
~              July           
July           =ListMonths()
ne
~              
June           
July           ~              
~              June           
July           -- INSERT --June           
July=ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December        
February
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
February       =ListMonths()

January~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
June           
July           
June~              
~              
~              January        
June           
July           -- INSERT --January        
June           ly
~              
~              
~              January        
June           
July           June           
July           
J~              
~              
~              January        
June           
July           
July           =ListMonths()

January
~              
~              
~              January        
June           
July           
June~              
~              
~              January        
June           
July           -- INSERT --January        
June           ly
~              
~              
~              January        
June           
July           June           
July           
J~              
~              
~              January        
June           
July           
July                 
January
~              
~              
~              January        
June           
July           January        =ListMonths()

~              
~              
~              January        
June           
July           =ListMonths()

June~              
~              
~              June           
July           =ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       

February       December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       December       October        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
December
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       
Nov
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
October~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
October        
November         
September
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        September      
October        =ListMonths()

January~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       November       
December       October        
November       September      
October        =ListMonths()
=ListMonths()
December2015
December~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xDecember       =ListMonths()

March~                                                                               ~              March          
May            y~              
~              March          
May            -- INSERT --March          
May              rch
~              
~              March          
May            March          
May            =ListMonths()
March~              
March          
May            y~              
~              March          
May            -- INSERT --March          
May              rch
~              
~              March          
May            March          
May            =ListMonths()

March
~                                                                               ~              
~              March          
May            =ListMonths()
M~              
March          
May            =ListMonths()
M~              
March          
May            Executing Test_popup_complete2()=ListMonths()
Executing Test_popup_completion_insertmode()=ListMonths()
~                                                                               ~                                                                               ~              
~                 January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
February
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
February       
March~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        February       
March          
April
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        March          
April          
May~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        April          
May             
June
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        May            
June           ly
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        June           
July             
August
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        July           
August            
September
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        August         
September      
October~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        September      
October         
November
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
October        
November       
Dec
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
December
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       Executing Test_pow()

Executing Test_printf_64bit()

Executing Test_printf_errors()

0
0
1
0
0
Executing Test_printf_float()

0.000000

Executing Test_printf_misc()

Executing Test_printf_spec_b()

Executing Test_printf_spec_s()

Executing Test_ptag_with_notagstack()

Executing Test_read_only()

Executing Test_recursive_delete()
"Xdir1/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written

Executing Test_redefine_dict_func()

Executing Test_ref_job_partial_dict()

Executing Test_reltime()[?25h[?0c

[?25l[?1cExecuting Test_repeat_many()[?25h[?0c

[?25l[?1cExecuting Test_repeat_three()[?25h[?0c

[?25l[?1cExecuting Test_retain_partial()[?25h[?0c

[?25l[?1cExecuting Test_round()

Executing Test_script_function_in_dict()

Executing Test_script_function_in_dict_arg()

Executing Test_searchpos()
"one" [New File]
Executing Test_set_add()

Executing Test_set_backslash()

Executing Test_set_reg_null_list()

Executing Test_set_tagcase()

Executing Test_setmatches()

Executing Test_signcolumn()

Executing Test_sin()

Executing Test_sinh()

Executing Test_sort_default()

Executing Test_sort_float()

Executing Test_sort_nested()

Executing Test_sort_numbers()

Executing Test_sort_numeric()

Executing Test_sort_strings()

Executing Test_special_char()

Executing Test_sqrt()

Executing Test_static_tagjump()
"Xfile1" [New File][New] 3L, 18C written

Executing Test_statusline_will_be_disabled_with_error()x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                                                                                                               Executing Test_stop_all_in_callback()[?25h[?0c

[?25l[?1cExecuting Test_stop_in_callback()[?25h[?0c

[?25l[?1cExecuting Test_stopall()

Executing Test_str2float()

Executing Test_str2nr()

Executing Test_strcharpart()

Executing Test_strgetchar()

Executing Test_substitute_expr()

Executing Test_substitute_expr_arg()

Executing Test_symlink_delete()
"Xfile" [New File][New] 2L, 4C written[?25h[?0c
[?25l[?1cExecuting Test_symlink_dir_delete()[?25h[?0c
[?25l[?1cExecuting Test_symlink_recursive_delete()
"Xdir3/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written
"Xdir4/Xfile" [New] 2L, 4C written[?25h[?0c
[?25l[?1cExecuting Test_syntax_valid()

Executing Test_tabline_will_be_disabled_with_error()                                                                                x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               [No Name]                                                                       Executing Test_tabnext_on_buf_unload1()

Executing Test_tabnext_on_buf_unload2()

"x" [Not edited] --No lines in buffer--
"y" [New File]
Executing Test_tabpage()
"Xtestfile" [New File]
2 fewer lines; before #1  0 seconds ago
"test1" [New File]newfile" [New File]
"test1" [New File]file] --No lines in buffer--F
Executing Test_tabpage_with_autocmd()

Executing Test_tabpage_with_tab_modifier()
"help.txt" [readonly] line 1 of 225 --0%-- col 1

"ex-undo" [New File]

Executing Test_tagcase()
"Xtext" [New File]
Executing Test_tan()

Executing Test_tanh()

Executing Test_thesaurus()

Executing Test_three_windows()
"Xtestje1" [New File][New] 1L, 8C written2" [New File][New] 1L, 8C written3" [New File][New] 1L, 8C written11L, 8C

"Xtestje3" 1L, 8C21L, 8C11L, 8C

"Xanother" [New File]
"Xtestje11L, 8C
"Xanother" [New File]

Already only one window
"help.txt" [readonly] 225L, 8437C

Executing Test_tostring()

Executing Test_true_false_arg()[?25h[?0c
[?25l[?1c"colored" [New File]

Executing Test_trunc()

Executing Test_valid()

Executing Test_version()

Executing Test_vim_did_enter()

Executing Test_whichwrap()

Executing Test_win_tab_autocmd()

"somefile" [New File]

Executing Test_window_cmd_cmdwin_with_vsp()

Executing Test_window_cmd_ls0_with_split()

Executing Test_window_cmd_wincmd_gf()
"test_gf.txt" 0L, 0C
W19: Deleting augroup that is still in use
Executing Test_with_directories()"Xdir1/file" [New File]
"Xdir1/file" [New] 2L, 4C written

"Xdir3/Xdir4/file" [New] 2L, 4C written2L, 4C
"Xdir?/*/nofile" [New DIRECTORY]
"foo" [New File]Executing Test_with_partial_callback()[?25h[?0c[?25l[?1ctilde()rong_arguments()
"test_alot.res" [New File]
"test_alot.res" [New] 0L, 0C written
Executed 244 tests"messages" 584L, 15447C

"messages" 831L, 23451C written
[?25h[?0c


From test_arglist.vim:
Executing Test_argadd()
Executing Test_argc()
Executing Test_argdelete()
Executing Test_argedit()
Executing Test_argidx()
Executing Test_arglist_autocmd()
Executing Test_arglistid()
Executing Test_argpos()
Executing Test_argument()
Executing Test_argv()
Executing Test_zero_argadd()
Executed 11 tests

From test_assert.vim:
Executing Test_assert_equal()
Executing Test_assert_exception()
Executing Test_assert_fail_fails()
Executing Test_assert_false()
Executing Test_assert_inrange()
Executing Test_assert_notequal()
Executing Test_assert_true()
Executing Test_compare_fail()
Executing Test_match()
Executing Test_notmatch()
Executing Test_user_is_happy()
Executing Test_wrong_error_type()
Executed 12 tests

From test_autochdir.vim:
Executing Test_set_filename()
Executed 1 test

From test_backspace_opt.vim:
Executing Test_backspace_option()
Executed 1 test

From test_breakindent.vim:
Executing Test_breakindent01()
Executing Test_breakindent02()
Executing Test_breakindent03()
Executing Test_breakindent04()
Executing Test_breakindent05()
Executing Test_breakindent06()
Executing Test_breakindent07()
Executing Test_breakindent07a()
Executing Test_breakindent08()
Executing Test_breakindent08a()
Executing Test_breakindent09()
Executing Test_breakindent10()
Executing Test_breakindent11()
Executing Test_breakindent12()
Executing Test_breakindent13()
Executing Test_breakindent14()
Executing Test_breakindent15()
Executing Test_breakindent16()
Executed 18 tests

From test_bufwintabinfo.vim:
Executing Test_get_buf_options()
Executing Test_get_win_options()
Executing Test_getbufwintabinfo()
Executed 3 tests

From test_cdo.vim:
Executing Test_cdo()
Executing Test_ldo()
Executed 2 tests

From test_channel.vim:
Executed 0 test

From test_charsearch.vim:
Executing Test_charsearch()
Executing Test_search_cmds()
Executed 2 tests

From test_cmdline.vim:
Executing Test_complete_list()
Executing Test_complete_tab()
Executing Test_complete_wildmenu()
Executing Test_expand_star_star()
Executing Test_getcompletion()
Executing Test_illegal_address()
Executing Test_paste_in_cmdline()
Executing Test_remove_char_in_cmdline()
Executed 8 tests

From test_command_count.vim:
Executing Test_command_count_0()
Executing Test_command_count_1()
Executing Test_command_count_2()
Executing Test_command_count_3()
Executing Test_command_count_4()
Executed 5 tests

From test_crypt.vim:
Executing Test_crypt_blowfish()
Executing Test_crypt_blowfish2()
Executing Test_crypt_zip()
Executing Test_head_only_2()
Executing Test_head_only_3()
Executing Test_uncrypt_blowfish()
Executing Test_uncrypt_blowfish2()
Executing Test_uncrypt_zip()
Executed 8 tests

From test_cscope.vim:
Executed 0 test

From test_diffmode.vim:
Executing Test_diff_fold_sync()
Executing Test_diffget_diffput()
Executing Test_diffoff()
Executing Test_filler_lines()
Executing Test_setting_cursor()
Executing Test_vert_split()
Executed 6 tests

From test_digraph.vim:
Executing Test_digraph_cmndline()
Executing Test_digraphs()
Executing Test_digraphs_option()
Executing Test_digraphs_output()
Executing Test_loadkeymap()
Executed 5 tests

From test_display.vim:
Executing Test_display_foldcolumn()
Executed 1 test

From test_farsi.vim:
Executing Test_farsi_map()
Executing Test_farsi_toggle()
Executed 2 tests

From test_fnameescape.vim:
Executing Test_fnameescape()
Executed 1 test

From test_fold.vim:
Executing Test_address_fold()
Executing Test_indent_fold()
Executing Test_indent_fold2()
Executed 3 tests

From test_gf.vim:
Executing Test_gf_url()
Executed 1 test

From test_gn.vim:
Executing Test_gn_command()
Executed 1 test

From test_gui.vim:
Executed 0 test

From test_hardcopy.vim:
Executing Test_printheader_parsing()
Executing Test_printmbfont_parsing()
Executing Test_printoptions_parsing()
Executing Test_with_syntax()
Executed 4 tests

From test_hide.vim:
Executing Test_hide()
Executed 1 test

From test_history.vim:
Executing Test_History()
Executing Test_Search_history_window()
Executed 2 tests

From test_hlsearch.vim:
Executing Test_hlsearch()
Executed 1 test

From test_increment.vim:
Executing Test_normal_increment_01()
Executing Test_normal_increment_02()
Executing Test_normal_increment_03()
Executing Test_visual_increment_01()
Executing Test_visual_increment_02()
Executing Test_visual_increment_03()
Executing Test_visual_increment_04()
Executing Test_visual_increment_05()
Executing Test_visual_increment_06()
Executing Test_visual_increment_07()
Executing Test_visual_increment_08()
Executing Test_visual_increment_09()
Executing Test_visual_increment_10()
Executing Test_visual_increment_11()
Executing Test_visual_increment_12()
Executing Test_visual_increment_13()
Executing Test_visual_increment_14()
Executing Test_visual_increment_15()
Executing Test_visual_increment_16()
Executing Test_visual_increment_17()
Executing Test_visual_increment_18()
Executing Test_visual_increment_19()
Executing Test_visual_increment_20()
Executing Test_visual_increment_21()
Executing Test_visual_increment_22()
Executing Test_visual_increment_23()
Executing Test_visual_increment_24()
Executing Test_visual_increment_25()
Executing Test_visual_increment_26()
Executing Test_visual_increment_27()
Executing Test_visual_increment_28()
Executing Test_visual_increment_29()
Executing Test_visual_increment_30()
Executing Test_visual_increment_31()
Executing Test_visual_increment_32()
Executing Test_visual_increment_33()
Executing Test_visual_increment_34()
Executing Test_visual_increment_35()
Executing Test_visual_increment_36()
Executing Test_visual_increment_37()
Executing Test_visual_increment_38()
Executed 41 tests

From test_increment_dbcs.vim:
Executing Test_increment_dbcs_1()
Executed 1 test

From test_job_fails.vim:
Executing Test_job_start_fails()
Executed 1 test

From test_json.vim:
Executing Test_js_decode()
Executing Test_js_encode()
Executing Test_json_decode()
Executing Test_json_encode()
Executed 4 tests

From test_langmap.vim:
Executing Test_langmap()
Executed 1 test

From test_man.vim:
Executing Test_g_ft_man_open_mode()
Executing Test_nomodifiable()
Executed 2 tests

From test_marks.vim:
Executing Test_Incr_Marks()
Executing Test_Restore_DelMark()
Executed 2 tests

From test_matchadd_conceal.vim:
Executing Test_clearmatches()
Executing Test_default_conceal_char()
Executing Test_matchadd_and_conceallevel_3()
Executing Test_matchadd_and_syn_conceal()
Executing Test_matchadd_repeat_conceal_with_syntax_off()
Executing Test_simple_matchadd()
Executing Test_simple_matchadd_and_conceal()
Executing Test_syn_and_match_conceal()
Executing Test_using_matchaddpos()
Executed 9 tests

From test_mksession.vim:
Executing Test_mksession()
Executed 1 test

From test_mksession_utf8.vim:
Executing Test_mksession_utf8()
Executed 1 test

From test_nested_function.vim:
Executing Test_max_nesting()
Executing Test_nested_argument()
Executing Test_nested_functions()
Executed 3 tests

From test_netbeans.vim:
Executed 0 test

From test_normal.vim:
Executing Test_normal00_optrans()
Executing Test_normal01_keymodel()
Executing Test_normal02_selectmode()
Executing Test_normal02_selectmode2()
Executing Test_normal03_join()
Executing Test_normal04_filter()
Executing Test_normal05_formatexpr()
Executing Test_normal05_formatexpr_newbuf()
Executing Test_normal05_formatexpr_setopt()
Executing Test_normal06_formatprg()
Executing Test_normal07_internalfmt()
Executing Test_normal08_fold()
Executing Test_normal09_operatorfunc()
Executing Test_normal09a_operatorfunc()
Executing Test_normal10_expand()
Executing Test_normal11_showcmd()
Executing Test_normal12_nv_error()
Executing Test_normal13_help()
Executing Test_normal14_page()
Executing Test_normal14_page_eol()
Executing Test_normal15_z_scroll_vert()
Executing Test_normal16_z_scroll_hor()
Executing Test_normal17_z_scroll_hor2()
Executing Test_normal18_z_fold()
Executing Test_normal19_z_spell()
Executing Test_normal20_exmode()
Executing Test_normal21_nv_hat()
Executing Test_normal22_zet()
Executing Test_normal23_K()
Executing Test_normal24_rot13()
Executing Test_normal25_tag()
Executing Test_normal26_put()
Executing Test_normal27_bracket()
Executing Test_normal28_parenthesis()
Executing Test_normal29_brace()
Executing Test_normal30_changecase()
Executing Test_normal31_r_cmd()
Executing Test_normal32_g_cmd1()
Executing Test_normal33_g_cmd2()
Executing Test_normal34_g_cmd3()
Executing Test_normal35_g_cmd4()
    Skipped
Executing Test_normal36_g_cmd5()
Executing Test_normal37_g_cmd6()
Executing Test_normal38_nvhome()
Executing Test_normal39_cw()
Executing Test_normal40_ctrl_bsl()
Executing Test_normal41_insert_reg()
Executing Test_normal42_halfpage()
Executing Test_normal43_textobject1()
Executing Test_normal44_textobjects2()
Executing Test_normal45_drop()
Executing Test_normal46_ignore()
Executing Test_normal47_autocmd()
    Skipped
Executing Test_normal47_visual_buf_wipe()
Executing Test_normal48_wincmd()
Executing Test_normal49_counts()
Executing Test_normal50_commandline()
Executing Test_normal51_FileChangedRO()
Executing Test_normal52_rl()
Executing Test_normal53_digraph()
Executing Test_normal54_Ctrl_bsl()
Executed 61 tests
SKIPPED Test_normal35_g_cmd4(): output of g< can't be tested currently
SKIPPED Test_normal47_autocmd(): not possible to test cursorhold autocmd while waiting for input in normal_cmd

From test_packadd.vim:
Executing Test_colorscheme()
Executing Test_colorscheme_completion()
Executing Test_helptags()
Executing Test_packadd()
Executing Test_packadd_completion()
Executing Test_packadd_noload()
Executing Test_packloadall()
Executing Test_runtime()
Executed 8 tests

From test_perl.vim:
Executing Test_SvREFCNT()
Executing Test_VIM_package()
Executing Test_change_buffer()
Executing Test_evaluate_list()
Executing Test_perldo()
Executing Test_perleval()
Executing Test_stdio()
Executed 7 tests

From test_profile.vim:
Executing Test_profile_completion()
Executing Test_profile_errors()
Executing Test_profile_file()
Executing Test_profile_func()
Executed 4 tests

From test_quickfix.vim:
Executing Test_Autocmd()
Executing Test_Autocmd_Exception()
Executing Test_adjust_lnum()
Executing Test_browse()
Executing Test_caddbuffer_to_empty()
Executing Test_caddbuffer_wrong()
Executing Test_caddexpr_wrong()
Executing Test_cage()
Executing Test_cbottom()
Executing Test_cbuffer()
Executing Test_cexpr()
Executing Test_cfile()
Executing Test_cgetexpr_works()
Executing Test_clist()
Executing Test_cwindow()
Executing Test_dirstack_cleanup()
Executing Test_duplicate_buf()
Executing Test_efm()
Executing Test_efm1()
Executing Test_efm2()
Executing Test_efm_dirstack()
Executing Test_efm_ignore_continuations()
Executing Test_errortitle()
Executing Test_grep()
Executing Test_helpgrep()
Executing Test_history()
Executing Test_invalid_efm()
Executing Test_locationlist()
Executing Test_locationlist_cross_tab_jump()
Executing Test_locationlist_curwin_was_closed()
Executing Test_long_lines()
Executing Test_nomem()
Executing Test_qf_property()
Executing Test_qf_title()
Executing Test_quickfix_set_list_with_act()
Executing Test_quickfix_was_changed_by_autocmd()
Executing Test_setqflist()
Executing Test_setqflist_empty_middle()
Executing Test_setqflist_empty_older()
Executing Test_switchbuf()
Executing Test_two_windows()
Executing Test_vimgreptitle()
Executed 42 tests

From test_ruby.vim:
Executing Test_ruby_change_buffer()
Executing Test_ruby_evaluate_dict()
Executing Test_ruby_evaluate_list()
Executed 3 tests

From test_search.vim:
Executing Test_search_cmdline()
Executing Test_search_cmdline2()
Executing Test_searchpair()
Executing Test_use_sub_pat()
Executed 4 tests

From test_signs.vim:
Executing Test_sign()
Executing Test_sign_completion()
Executing Test_sign_delete_buffer()
Executing Test_sign_invalid_commands()
Executing Test_sign_undefine_still_placed()
Executed 5 tests

From test_smartindent.vim:
Executing Test_nosmartindent()
Executed 1 test

From test_startup.vim:
Executing Test_after_comes_later()
Executing Test_compatible_args()
Executing Test_file_args()
Executing Test_help_arg()
Executing Test_read_stdin()
Executing Test_startup_script()
Executing Test_startuptime()
Executed 7 tests

From test_startup_utf8.vim:
Executing Test_read_fifo_utf8()
Executing Test_read_stdin_utf8()
Executed 2 tests

From test_stat.vim:
Executing Test_checktime()
Executing Test_existent_directory()
Executing Test_existent_file()
Executing Test_nonexistent_file()
Executing Test_win32_symlink_dir()
Executed 5 tests

From test_substitute.vim:
Executing Test_multiline_subst()
Executed 1 test

From test_syntax.vim:
Executing Test_syn_iskeyword()
Executing Test_syntax_after_reload()
Executing Test_syntax_completion()
Executing Test_syntax_list()
Executing Test_syntime()
Executed 5 tests

From test_system.vim:
Executing Test_System()
Executing Test_system_exmode()
Executed 2 tests

From test_textobjects.vim:
Executing Test_inner_block_with_cpo_M_left_backslash()
Executing Test_inner_block_with_cpo_M_right_backslash()
Executing Test_inner_block_without_cpo_M()
Executed 3 tests

From test_undo.vim:
Executing Test_U_command()
Executing Test_global_local_undolevels()
Executing Test_insert_expr()
Executing Test_undo_del_chars()
Executing Test_undo_write()
Executing Test_undofile_earlier()
Executing Test_undojoin()
Executing Test_undolist()
Executing Test_undotree()
Executed 9 tests

From test_usercommands.vim:
Executing Test_Ambiguous()
Executing Test_CmdUndefined()
Executing Test_cmdmods()
Executed 3 tests

From test_viminfo.vim:
Executing Test_cmdline_history()
Executing Test_cmdline_history_order()
Executing Test_global_vars()
Executing Test_viminfo_bad_syntax()
Executing Test_viminfo_encoding()
Executing Test_viminfo_file_mark_tabclose()
Executing Test_viminfo_file_mark_zero_time()
Executing Test_viminfo_file_marks()
Executing Test_viminfo_jumplist()
Executing Test_viminfo_marks()
Executing Test_viminfo_oldfiles()
Executing Test_viminfo_read_and_write()
Executing Test_viminfo_registers()
Executed 13 tests

From test_viml.vim:
Executing Test_arg_abort()
Executing Test_braces_skipped()
Executing Test_curlies()
Executing Test_defining_functions()
Executing Test_echo_and_string()
Executing Test_endwhile_function()
Executing Test_endwhile_script()
Executing Test_error_in_function()
Executing Test_error_in_script()
Executing Test_expr_parsing()
Executing Test_finish()
Executing Test_func_abort()
Executing Test_if_bar_fail()
Executing Test_if_fail()
Executing Test_if_while()
Executing Test_num64()
Executing Test_return()
Executing Test_script_lines()
Executing Test_skip()
Executing Test_type()
Executing Test_while_fail()
Executed 21 tests

From test_visual.vim:
Executing Test_block_shift_multibyte()
Executing Test_dotregister_paste()
Executed 2 tests

From test_window_id.vim:
Executing Test_win_getid()
Executing Test_win_getid_curtab()
Executed 2 tests

From test_writefile.vim:
Executing Test_WriteFile()
Executed 1 test

From test_alot_latin.vim:
Executing Test_eow_with_optional()
Executing Test_equivalence_re1()
Executing Test_equivalence_re2()
Executing Test_nested_backrefs()
Executing Test_recursive_substitute()
Executed 5 tests

From test_alot_utf8.vim:
Executing Test_classes_re1()
Executing Test_classes_re2()
Executing Test_equivalence_re1()
Executing Test_equivalence_re2()
Executing Test_match_using_multibyte_conceal_char()
Executing Test_source_latin()
Executing Test_source_utf8()
Executing Test_strcharpart()
Executing Test_strgetchar()
Executed 9 tests

From test_alot.vim:
Executing Test_BufEnter()
Executing Test_abbreviation()
Executing Test_abs()
Executing Test_acos()
Executing Test_asin()
Executing Test_atan()
Executing Test_atan2()
Executing Test_augroup_deleted()
Executing Test_augroup_warning()
Executing Test_auto_partial_rebind()
Executing Test_autocmd_bufunload_avoiding_SEGV_01()
Executing Test_autocmd_bufunload_avoiding_SEGV_02()
Executing Test_autocmd_bufunload_with_tabnext()
Executing Test_autocmd_bufwinleave_with_tabfirst()
Executing Test_bind_in_python()
Executing Test_break_undo()
Executing Test_bufunload()
Executing Test_cancel_ptjump()
Executing Test_caught_error_in_statusline()
Executing Test_caught_error_in_tabline()
Executing Test_ceil()
Executing Test_closure_counter()
Executing Test_closure_refcount()
Executing Test_closure_unlet()
Executing Test_color_names()
Executing Test_compare_null_dict()
Executing Test_compare_partials()
Executing Test_compl_vim_cmds_after_register_expr()
Executing Test_complete_no_undo()
Executing Test_completefunc_opens_new_window_one()
Executing Test_completefunc_opens_new_window_two()
Executing Test_completefunc_with_scratch_buffer()
Executing Test_completefunc_works()
Executing Test_completion_ctrl_e_without_autowrap()
Executing Test_cos()
Executing Test_cosh()
Executing Test_cursorhold_insert()
Executing Test_cursorhold_insert_ctrl_x()
Executing Test_cursorline_keep_col()
Executing Test_curswant_with_autocommand()
Executing Test_cycle_partial_job()
Executing Test_cyclic_dict_arg()
Executing Test_cyclic_list_arg()
Executing Test_delete_myself()
Executing Test_dict()
Executing Test_dictionary()
Executing Test_dir_delete()
Executing Test_early_bar()
Executing Test_empty_buffer()
Executing Test_equal()
Executing Test_ex_undo()
Executing Test_execute_list()
Executing Test_execute_string()
Executing Test_existing()
Executing Test_exp()
Executing Test_expand()
Executing Test_feedkeys_x_with_empty_string()
Executing Test_file_delete()
Executing Test_file_perm()
Executing Test_fileformat_after_bw()
Executing Test_filetype_valid()
Executing Test_filter()
Executing Test_filter_cmd_completion()
Executing Test_filter_fails()
Executing Test_filter_map_dict_expr_funcref()
Executing Test_filter_map_dict_expr_string()
Executing Test_filter_map_list_expr_funcref()
Executing Test_filter_map_list_expr_string()
Executing Test_floor()
Executing Test_fmod()
Executing Test_fnamemodify()
Executing Test_func_unref()
Executing Test_funcref()
Executing Test_function_in_dict()
Executing Test_function_with_funcref()
Executing Test_gD()
Executing Test_gD_char()
Executing Test_gD_comment()
Executing Test_gD_inline_comment()
Executing Test_gD_string()
Executing Test_gD_string_same_line()
Executing Test_gD_too()
Executing Test_gd()
Executing Test_gd_comment()
Executing Test_gd_comment_in_string()
Executing Test_gd_inline_comment()
Executing Test_gd_inline_comment_body()
Executing Test_gd_inline_comment_only()
Executing Test_gd_kr_style()
Executing Test_gd_missing_braces()
Executing Test_gd_not_local()
Executing Test_gd_string()
Executing Test_gd_string_in_comment()
Executing Test_gd_string_only()
Executing Test_gd_trailing_comment()
Executing Test_gd_trailing_multiline_comment()
Executing Test_get_partial_items()
Executing Test_getreg_empty_list()
Executing Test_global_local_lispwords()
Executing Test_help_complete()
Executing Test_help_respect_current_file_lang()
Executing Test_help_tagjump()
Executing Test_if()
Executing Test_info()
Executing Test_invalid()
Executing Test_invalid_submatch()
Executing Test_isnan()
Executing Test_join_with_count()
Executing Test_keymap_valid()
Executing Test_keyword_jump()
Executing Test_lambda_call_lambda_from_lambda()
Executing Test_lambda_capture_by_reference()
Executing Test_lambda_circular_reference()
Executing Test_lambda_closure_counter()
Executing Test_lambda_combination()
Executing Test_lambda_delfunc()
Executing Test_lambda_do_not_share_local_variable()
Executing Test_lambda_fails()
Executing Test_lambda_feature()
Executing Test_lambda_refer_local_variable_from_other_scope()
Executing Test_lambda_scope()
Executing Test_lambda_share_scope()
Executing Test_lambda_side_effect()
Executing Test_lambda_with_a_var()
Executing Test_lambda_with_filter()
Executing Test_lambda_with_map()
Executing Test_lambda_with_partial()
Executing Test_lambda_with_sort()
Executing Test_lambda_with_timer()
Executing Test_load_menu()
Executing Test_log()
Executing Test_log10()
Executing Test_loop_over_null_list()
Executing Test_map_ctrl_c_insert()
Executing Test_map_ctrl_c_visual()
Executing Test_map_cursor()
Executing Test_map_feedkeys()
Executing Test_map_langmap()
Executing Test_map_meta_quotes()
Executing Test_match()
Executing Test_matchaddpos()
Executing Test_matchaddpos_using_negative_priority()
Executing Test_matchstrpos()
Executing Test_max_min_errors()
Executing Test_messages()
Executing Test_missing_attr()
Executing Test_move_cursor()
Executing Test_named_function_closure()
Executing Test_no_type_checking()
Executing Test_noinsert_complete()
Executing Test_non_zero_arg()
Executing Test_not_existing()
Executing Test_not_lamda()
Executing Test_omnifunc_with_check()
Executing Test_oneshot()
Executing Test_option_value()
Executing Test_options()
Executing Test_partial_args()
Executing Test_partial_dict()
Executing Test_partial_exists()
Executing Test_partial_implicit()
Executing Test_partial_string()
Executing Test_path_keep_commas()
Executing Test_paused()
Executing Test_popup_complete()
Executing Test_popup_complete2()
Executing Test_popup_completion_insertmode()
Executing Test_pow()
Executing Test_printf_64bit()
Executing Test_printf_errors()
Executing Test_printf_float()
Executing Test_printf_misc()
Executing Test_printf_spec_b()
Executing Test_printf_spec_s()
Executing Test_ptag_with_notagstack()
Executing Test_read_only()
Executing Test_recursive_delete()
Executing Test_redefine_dict_func()
Executing Test_ref_job_partial_dict()
Executing Test_reltime()
Executing Test_repeat_many()
Executing Test_repeat_three()
Executing Test_retain_partial()
Executing Test_round()
Executing Test_script_function_in_dict()
Executing Test_script_function_in_dict_arg()
Executing Test_searchpos()
Executing Test_set_add()
Executing Test_set_backslash()
Executing Test_set_reg_null_list()
Executing Test_set_tagcase()
Executing Test_setmatches()
Executing Test_signcolumn()
Executing Test_sin()
Executing Test_sinh()
Executing Test_sort_default()
Executing Test_sort_float()
Executing Test_sort_nested()
Executing Test_sort_numbers()
Executing Test_sort_numeric()
Executing Test_sort_strings()
Executing Test_special_char()
Executing Test_sqrt()
Executing Test_static_tagjump()
Executing Test_statusline_will_be_disabled_with_error()
Executing Test_stop_all_in_callback()
Executing Test_stop_in_callback()
Executing Test_stopall()
Executing Test_str2float()
Executing Test_str2nr()
Executing Test_strcharpart()
Executing Test_strgetchar()
Executing Test_substitute_expr()
Executing Test_substitute_expr_arg()
Executing Test_symlink_delete()
Executing Test_symlink_dir_delete()
Executing Test_symlink_recursive_delete()
Executing Test_syntax_valid()
Executing Test_tabline_will_be_disabled_with_error()
Executing Test_tabnext_on_buf_unload1()
Executing Test_tabnext_on_buf_unload2()
Executing Test_tabpage()
Executing Test_tabpage_with_autocmd()
Executing Test_tabpage_with_tab_modifier()
Executing Test_tagcase()
Executing Test_tan()
Executing Test_tanh()
Executing Test_thesaurus()
Executing Test_three_windows()
Executing Test_tostring()
Executing Test_true_false_arg()
Executing Test_trunc()
Executing Test_valid()
Executing Test_version()
Executing Test_vim_did_enter()
Executing Test_whichwrap()
Executing Test_win_tab_autocmd()
Executing Test_window_cmd_cmdwin_with_vsp()
Executing Test_window_cmd_ls0_with_split()
Executing Test_window_cmd_wincmd_gf()
Executing Test_with_directories()
Executing Test_with_partial_callback()
Executing Test_with_tilde()
Executing Test_wrong_arguments()
Executed 244 tests

Test results:
ALL DONE
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk/testdir'
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/json_test.o json_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o json_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o objects/gui.o objects/gui_gtk.o objects/gui_gtk_x11.o objects/pty.o objects/gui_gtk_f.o objects/gui_beval.o objects/gui_gtk_gresources.o objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/memfile.o objects/message.o objects/json_test.o   -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
link.sh: Linked fine
./json_test || exit 1; echo  passed;
passed
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memfile_test.o memfile_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o memfile_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o objects/gui.o objects/gui_gtk.o objects/gui_gtk_x11.o objects/pty.o objects/gui_gtk_f.o objects/gui_beval.o objects/gui_gtk_gresources.o objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/json.o objects/message.o objects/memfile_test.o   -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
link.sh: Linked fine
./memfile_test || exit 1; echo  passed;
passed
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/message_test.o message_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o message_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o objects/gui.o objects/gui_gtk.o objects/gui_gtk_x11.o objects/pty.o objects/gui_gtk_f.o objects/gui_beval.o objects/gui_gtk_gresources.o objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/json.o objects/memfile.o objects/message_test.o   -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
link.sh: Linked fine
./message_test || exit 1; echo  passed;
passed
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-gtk'
touch build-stamp-vim-gtk
make[1]: warning: -jN forced in submake: disabling jobserver mode.
make[1]: Entering directory '/<<PKGBUILDDIR>>/src/vim-nox'
/usr/bin/make -f Makefile vim
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-nox'
make[2]: 'vim' is up to date.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-nox'
if test -n "yes" -a -f po/Makefile; then \
	cd po; /usr/bin/make -f Makefile check VIM=../vim; \
fi
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-nox/po'
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq af.po
touch af.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ca.po
touch ca.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.po
touch cs.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq de.po
touch de.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq en_GB.po
touch en_GB.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq eo.po
touch eo.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq es.po
touch es.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fi.po
touch fi.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fr.po
touch fr.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ga.po
touch ga.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq it.po
touch it.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.po
touch ja.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.po
touch ko.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.UTF-8.po
touch ko.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nb.po
touch nb.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nl.po
touch nl.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq no.po
touch no.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.po
touch pl.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pt_BR.po
touch pt_BR.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.po
touch ru.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.po
touch sk.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sv.po
touch sv.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.po
touch uk.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq vi.po
touch vi.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.UTF-8.po
touch zh_CN.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.po
touch zh_CN.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.UTF-8.po
touch zh_TW.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.po
touch zh_TW.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.cp1250.po
touch cs.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.sjis.po
touch ja.sjis.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.euc-jp.po
touch ja.euc-jp.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.cp1250.po
touch pl.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.UTF-8.po
touch pl.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.cp1251.po
touch ru.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.cp1250.po
touch sk.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.cp1251.po
touch uk.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.cp936.po
touch zh_CN.cp936.ck
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-nox/po'
if test vim != vim -a ! -r vim; then \
	ln -s vim vim; \
fi
cd testdir; /usr/bin/make -f Makefile  VIMPROG=../vim  SCRIPTSOURCE=../../runtime
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-nox/testdir'
rm -f test.log messages
rm -rf test1.failed test.out X* viminfo tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok benchmark.out wrongtermsize
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test1.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 1133 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/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
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" If columns or lines are too small, create wrongtermsize.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" (Some tests will fail. When columns and/or lines are small)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Write a single line to test.out to check if testing works at all.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cthis is a test[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 15 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! small.vim
[?25l[?1c"small.vim" [New File] 1 line, 1 character written[?25h[?0c[?25l[?1c:[?25h[?0cw! tiny.vim
[?25l[?1c"tiny.vim" [New File] 1 line, 1 character written[?25h[?0c[?25l[?1ce! test.ok
w! test.outqa![?25h[?0c[?25l[?1c:[?25h[?0cw! mbyte.vim
[?25l[?1c"mbyte.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cw! mzscheme.vim
[?25l[?1c"mzscheme.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cw! lua.vim
[?25l[?1c"lua.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +multi_byte feature supported, make mbyte.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("multi_byte") | sp another | w! mbyte.vim | q | endif
[?25l[?1c"another" [New File]
"mbyte.vim" 0 lines, 0 characters writtene! test.ok[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +mzscheme feature supported, make mzscheme.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("mzscheme") | sp another | w! mzscheme.vim | q | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +lua feature supported, make lua.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("lua") | sp another | w! lua.vim | q | endif
[?25l[?1c"another" [New File]
"lua.vim" 0 lines, 0 characters writtene! test.ok[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Otherwise write small.vim to skip the test.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif 1 | q! | endif
[?25l[?1c[?25h[?0crm -rf X* 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test3.in
[?25h[?8c[?25h[?0c[?25l[?1c"test3.in" 2342 lines, 23089 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c/* vim: set cin ts=4 sw=4 : */[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 125 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo modeline
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit                " read modeline
[?25l[?1c"test3.in"2342L, 23089Cif (test)cmd1;cmd2;if (test)cmd1;else[?25h[?0c[?25l[?1c/[?25h[?0cstart of AUTO
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cend of AUTO
[?25l[?1c956 lines to indent...
9500
850
750
650
550
450
350
250
150
50 lines to indent... 
957 lines indented [?25h[?0c[?25l[?1c/^STARTTEST
}break;default:baz();baz();break;
    }
}

/* 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
 */[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 93C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset tw=0 wm=60 columns=80 noai fo=croq
[?25l[?1c}break;default:baz();baz();break;
    }
}

/* 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
 */[?25h[?0c[?25l[?1c/[?25h[?0cserious/e
[?25l[?1c[?25h[?0c[?25l[?1c


-- INSERT --
about life, the
 * universe, and the
 * rest important big[?25h[?0c[?25l[?1c
* comment[?25h[?0c[?25l[?1c
/^STARTTEST
*/
    /* insert " about life, the universe, and the rest" after "serious" */
}

STARTTEST[?25h[?0c[?25l[?1c
:set nocin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6L, 78C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/comments
joabout life^[/happens
jothere^[/below
oline^[/this
Ohello^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nocin
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ccomments
[?25l[?1c{
    /** Testing for comments, without 'cin' set[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
-- INSERT --
about life[?25h[?0c[?25l[?1c
/[?25h[?0chappens
[?25l[?1c/*
* what happens here?[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
-- INSERT --
there[?25h[?0c[?25l[?1c
/[?25h[?0cbelow
[?25l[?1c/*the end of the comment, try inserting a line below */[?25h[?0c[?25l[?1c
-- INSERT --
line[?25h[?0c[?25l[?1c
/[?25h[?0cthis
[?25l[?1c/* how aboutthis one */[?25h[?0c[?25l[?1c
-- INSERT --hello[?25h[?0c[?25l[?1c
this one */[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 18C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/vec2
==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cvec2
[?25l[?1c{
    var = this + that + vec[0] * vec[0]+ vec[1] * vec[1]+ vec2[2] * vec[2];[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5L, 51C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=}4
/testing1
k2==/testing2
k2==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=}4
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ctesting1
[?25l[?1c{asdf asdflkajds f;
    if (tes & ting) {asdf asdf asdf ;asdfa sdf asdf;}
    testing1;[?25h[?0c [?25l[?1c

/[?25h[?0ctesting2
[?25l[?1cif (tes & ting)
    {asdf asdf asdf ;asdfa sdf asdf;}
    testing2;[?25h[?0c [?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4L, 36C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=(0,)20
/main
=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,)20
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cmain
[?25l[?1cmain ( int first_par, /*[?25h[?0c[?25l[?1c
19 lines to indent...
20indented [?25h[?0c[?25l[?1c
* Comment for[?25h[?0c[?25l[?1c
/^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();[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4L, 36C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=es,n0s
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cmain
[?25l[?1c[?25h[?0c[?25l[?1c8 lines to indent...
9indented [?25h[?0c
[?25l[?1c/^STARTTEST
else
    {bar();
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c{[?25h[?0c[?25l[?1c
11 lines to indent...
12indented [?25h[?0c[?25l[?1c
do[?25h[?0c[?25l[?1c
/^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();
    }[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1L, 6C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c


[?25l[?1c8 lines to indent...
9indented [?25h[?0c
   [?25l[?1c/^STARTTEST
n();
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino={s,e-s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino={s,e-s
[?25l[?1c[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
7 lines to indent...
8indented     {[?25h[?0c[?25l[?1c
if ( k() )[?25h[?0c[?25l[?1c
/^STARTTEST
{l();} else { /* Start (two words) end */m();}
    n();    /* should be under the if () */
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino={s,fs
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 25C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=/ foo[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino={s,fs
[?25l[?1c[?25h[?0c[?25l[?1cvoid bar(void)
{[?25h[?0c[?25l[?1c
/[?25h[?0c foo
[?25l[?1c30 lines to indent...
31indented     {[?25h[?0c[?25l[?1c/^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 */[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 25C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cwhile
[?25l[?1c[?25h[?0c[?25l[?1c
-- INSERT --
here[?25h[?0c[?25l[?1c
if ( a )
    i[?25h[?0c[?25l[?1c
/^STARTTEST
a;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino= com=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 109C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/comment
olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^Mcmd();^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino= com=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ccomment
[?25l[?1ca()
{
label1:/* hmm */// comment[?25h[?0c[?25l[?1c
-- INSERT --label2: b();
label3 /* post */:
/* pre */ label4:f(/*com*/);if (/*com*/)cmd();[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set comments& comments^=s:/*,m:**,ex:*/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 53C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/simple
=5j[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments^=s:/*,m:**,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0csimple
[?25l[?1c/*
  * A simple comment[?25h[?0c[?25l[?1c
5 lines to indent...
6indented * A simple comment[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
/^STARTTEST
/*
** A different comment
*/

STARTTEST[?25h[?0c[?25l[?1c
:set cino=c0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 70C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/*
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=c0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments-=s1:/* comments^=s0:/*
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST
/*********A comment.
    *********/
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=c0,C1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 73C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/*
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=c0,C1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments-=s1:/* comments^=s0:/*
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST
/*********
    A comment.
    *********/
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 17C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s,U1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s,U1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (   c1[?25h[?0c[?25l[?1c
/^STARTTEST
&& (   c2|| c3))foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,w1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,w1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (   c1[?25h[?0c[?25l[?1c
/^STARTTEST
&& (   c2|| c3))foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
c = c1 && ([?25h[?0c[?25l[?1c
/^STARTTEST
c2 ||c3) && c4;
    if (c1 && c2)foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s,m1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s,m1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
c = c1 && ([?25h[?0c[?25l[?1c
/^STARTTEST
c2 ||c3
    ) && c4;
    if (c1 && c2
    )foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=b1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=b1
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
9 lines to indent...
10 lines indented [?25h[?0c[?25l[?1c
switch (x)[?25h[?0c[?25l[?1c
/^STARTTEST
{case 1:a = b;break;default:a = 0;break;
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,W5
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,W5
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
10 lines to indent...
11indented [?25h[?0c[?25l[?1c
invokeme([?25h[?0c[?25l[?1c
/^STARTTEST
argu,ment);
    invokeme(argu,ment);
    invokeme(argu,ment);
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=/6
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=/6
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
3 lines to indent...
4indented [?25h[?0c[?25l[?1c
statement;[?25h[?0c[?25l[?1c
/^STARTTEST
// comment 1// comment 2
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 34C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-12kdd]]/comment 1/+1
==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c==ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
/[?25h[?0ccomment 1/+1
[?25l[?1cstatement;// comment 1
    // comment 2[?25h[?0c[?25l[?1c    // comment 2[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cino=g0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=g0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cclass CAbc
{[?25h[?0c[?25l[?1c
6 lines to indent...
7indented [?25h[?0c[?25l[?1c
int Test() { return FALSE; }[?25h[?0c[?25l[?1c
/^STARTTEST
public: // comment
    void testfall();
protected:
    void testfall();
};

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,gs,hs
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 29C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,gs,hs
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cclass Foo : public Bar
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
public:[?25h[?0c[?25l[?1c
/^STARTTEST
virtual void method1(void) = 0;virtual void method2(int arg1,int arg2,int arg3) = 0;
};

STARTTEST[?25h[?0c[?25l[?1c
:set cino=+20
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 24C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=+20
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid
foo()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (a)[?25h[?0c[?25l[?1c
/^STARTTEST
{
    } elseasdf;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,W2s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,W2s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1c
{[?25h[?0c[?25l[?1c
34 lines to indent...
35indented [?25h[?0c[?25l[?1c
averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd([?25h[?0c[?25l[?1c
/^STARTTEST
dec)->asdfasdfasdf(asdfadsf,asdfasdf,asdfasdf,),func(asdfadf,asdfasdf),asdasdf);
}

STARTTEST
:set cino=M1
2kdd]]=][
ENDTEST

int main ()
{
    if (cond1 &&cond2)foo;
}[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=M1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c4 lines to indent...
5indented [?25h[?0c
   [?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,ts
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,ts
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
7 lines to indent...
8indented [?25h[?0c[?25l[?1c
void func(int a[?25h[?0c[?25l[?1c
/^STARTTEST
#if defined(FOO), int b, int c
#endif)
{
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
void[?25h[?0c[?25l[?1c
/^STARTTEST
func(int a
#if defined(FOO), int b, int c
#endif
    )
{
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 22C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=7][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=7][
ENDTEST[?25h[?0c

[?25l[?1c
69 lines to indent...
50
7indented [?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
/^STARTTEST
int a,int b)
{
}void
func6(int a)
{
}

STARTTEST
:set cino&
:set cino+=l1
2kdd2j=][
ENDTEST

void func(void)
{
    int tab[] =
    {1, 2, 3,4, 5, 6};[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino+=l1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c

[?25l[?1c22 lines to indent...
23indented [?25h[?0c
[?25l[?1c/^STARTTEST
break;case baz: {printf("baz");break;}case quux:printf("But don't break the indentation of this instruction\n");break;
    }
}

STARTTEST
:set cino&
2kdd2j=][
ENDTEST

void func(void)
{
    cout << "a"
    << "b"
    << ") :"
    << "c";
}[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c

[?25l[?1c6 lines to indent...
7indented     << "b"
        << ") :"
        << "c";[?25h[?0c
[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set com=s1:/*,m:*,ex:*/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 38C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]3jofoo();^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset com=s1:/*,m:*,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1cvoid func(void)
{[?25h[?0c[?25l[?1c/** This is a comment.*/[?25h[?0c[?25l[?1c
-- INSERT --
foo();[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cino&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
/^STARTTEST
{
    for (int i = 0; i < 10; ++i)if (i & 1) {foo(1);} elsefoo(0);
    baz();
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=k2s,(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd3j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd3j=][ENDTEST[?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
23 lines to indent...
24indented [?25h[?0c[?25l[?1c
{[?25h[?0c[?25l[?1c
/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(s
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c23 lines to indent...
24indented         && condition2)
        action();    && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(s,U1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c24 lines to indent...
25indented         && condition2)
        action();    && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0,W4
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c29 lines to indent...
30indented         && condition2)
        action();         && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,u2
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c18 lines to indent...
19indented         && condition2)
        action();        && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0,w1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c27 lines to indent...
28indented         && condition2)
        action();         && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2,(s
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c14 lines to indent...
15indented [?25h[?0c
[?25l[?1c/^STARTTEST
if (c1 && (c2 ||c3))foo;
    if (c1 &&(c2 || c3))
    {
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=N-s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 47C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^NAMESPACESTART
=/^NAMESPACEEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=N-s
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^NAMESPACESTART
[?25l[?1cNAMESPACESTART[?25h[?0c[?25l[?1c
/[?25h[?0c^NAMESPACEEND
[?25l[?1c81 lines to indent...
50
82indented [?25h[?0c[?25l[?1c/^STARTTEST
namespace test test2
{
    1111111111111111111;
}
namespace111111111
{
    111111111111111111;
}
NAMESPACEEND


STARTTEST
:set cino=j1,J1
/^JSSTART
=/^JSEND
ENDTEST

JSSTART
var bar = {
foo: {
that: this,
some: ok,
},[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c12 lines to indent...
13indented     foo: {
        that: this,
        some: ok,
    },[?25h[?0c[?25l[?1c/^STARTTEST
"bar":{a : 2,b: "123abc",x: 4,"y": 5
    }
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c5 lines to indent...
6indented [?25h[?0c[?25l[?1c/^STARTTEST
var foo = [
    1,
    2,
    3
];
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c7 lines to indent...
8indented [?25h[?0c[?25l[?1c/^STARTTEST
function bar() {
    var foo = [1,2,3
    ];
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c58 lines to indent...
509indented [?25h[?0c[?25l[?1c/^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: [[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c14 lines to indent...
15indented     $(this).data(class_name+'_public',$.extend({},{
        foo: 'bar',
        bar: 2,
        foobar: [[?25h[?0c[?25l[?1c/^STARTTEST
1,2,3],callback: function(){return true;}
    }, options||{}));
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c16 lines to indent...
17indented [?25h[?0c[?25l[?1c/^STARTTEST
2,3],callback: function(){return true;}}, options||{}));
    }
})(jQuery);
JSEND

STARTTEST
:set cino=j1,J1,+2
/^JSSTART
=/^JSEND
ENDTEST

JSSTART
// Results of JavaScript indent
// 1
(function(){
var a = [
'a',[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 38C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1,+2
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c149 lines to indent...
100
50 lines to indent... 
150 lines indented     var a = [
      'a',[?25h[?0c[?25l[?1c/^STARTTEST
var a,
    b,
    c,
    d,
    e,
    f,
    g,
    h,
    i;
JSEND

STARTTEST
:set cin cino&
/start of define
=/end of define
ENDTEST

/* start of define */
{
}
#define AAA \
BBB\
CCC[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 48C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin cino&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of define
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cend of define
[?25l[?1c11 lines to indent...
12indented     BBB\
    CCC[?25h[?0c[?25l[?1c/^STARTTEST
#define CNT \
    1 + \
    2 + \
    4
/* end of define */

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 61C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c226 fewer lines    c,
    d,
    e,    f,    g,    h,    i;JSEND/* start of define */
{}#define AAA \
    BBB\
    CCC#define CNT \
    1 + \
    2 + \4
/* end of define */[?25h[?0c[?25l[?1c:[?25h[?0c1;/start of AUTO/,$wq! test.out
[?25l[?1c"test.out" [New] 2096L, 20188C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test3 = test61; then \
#	  if diff test.out test3.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test3.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test3.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test4.in
[?25h[?8c[?25h[?0c[?25l[?1c"test4.in" 34 lines, 960 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
:set fo+=r" issue #57 do not move cursor on <c-o> when autoindent is set
Go# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that changes current buffer on BufEnter event.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 20 lines, 678 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:?startstart?,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter Xxx brew
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of
[?25l[?1cstartstart
start of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0c.,/end of/w! Xxx   " write test file Xxx
[?25l[?1c"Xxx" [New] 7L, 124C written[?25h[?0c[?25l[?1c:[?25h[?0cset ai modeline modelines=3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx             " split to Xxx, autocmd will do :brew
[?25l[?1c"Xxx" 7L, 124CTest for autocommand that changes current buffer on BufEnter event.
Check if modelines are interpreted for the correct buffer.STARTTESTo small.vim:set nocompatible viminfo+=nviminfo
:au BufEnter Xxx brew/start of.,/end of/w!" write test file Xxx
:set ai modeline modelines=3:sp Xxx    " split to Xxx, autocmd will do :brew
test4.in                                                                        :set fo+=rssue #57 do not move cursor on <c-o> when autoindent is setGo# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.outqa!ENDTESTstartstart of test file Xxx
test4.in                                                                        test4.in" line 1 of 34 --2%-- col 1[?25h[?0c[?25l[?1c: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[?25h[?0c[?25l[?1c?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --        this should be auto-indented[+][+][?25h[?0c[?25l[?1c
end of test file Xxx[?25h[?0c[?25l[?1c:[?25h[?0c                   " Append text with autoindent to this file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau! BufEnter Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbuf Xxx            " go to Xxx, no autocmd anymore
[?25l[?1c"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         [?25h[?0c[?25l[?1c?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --this should be in column 1[+][?25h[?0c[?25l[?1c:[?25h[?0cwq " append text without autoindent to Xxx
[?25l[?1c"Xxx8L, 151C written: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 aothis should be auto-indented^[
:                   " Append text with autoindent to this file
:au! BufEnter Xxx:buf Xxx            " go to Xxx, no autocmd anymoreG?this is aothis should be in column 1^[:wq " append text without autoindent to XxxG:r Xxx   nclude Xxx in the current file:set fo+=r" issue #57 do not move cursor on <c-o> when autoindent is setGo# abcdef^[2hi^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.out
:qa!ENDTESTstarstart of test file Xxx[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a testthis should be auto-indented
end of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0cr Xxx             " include Xxx in the current file
[?25l[?1c"Xxx" 8L, 151C
start of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0cset fo+=r          " issue #57 do not move cursor on <c-o> when autoindent is 

set
[?25l[?1c:au! BufEnter Xxx[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a test
this should be in column 1
end of test file Xxx
[?25h[?0c[?25l[?1c
-- INSERT --
# abcdef[?25h[?0c[?25l[?1c
-- INSERT --
-- (insert) --
# def[?25h[?0c[?25l[?1cINSERT --defo[?25h[?0cd[?25l[?1c[?25h[?0c[?25l[?1c
-- INSERT --
# abcdef[?25h[?0c[?25l[?1c
-- INSERT --
-- (insert) --[?25h[?0c[?25l[?1c
-- INSERT --def:[?25h[?0cd[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c:[?25h[?0c?startstart?,$w! test.out
[?25l[?1c"test.out" [New] 20L, 330C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test4 = test61; then \
#	  if diff test.out test4.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test4.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test4.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test5.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that deletes the current buffer on BufLeave event.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 664 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufLeave Xxx bwipe
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx               " write test file Xxx
[?25l[?1c"Xxx" [New File] 7 lines, 124 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx                         " split to Xxx
[?25l[?1c"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                                                                             ?start?,$w! test.outWrite current file contentsbwipe test.out      delete alternate bufferau bufleave test5.in bwipebwipe!                         " 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                                                                        [?25h[?0c[?25l[?1c:[?25h[?0cbwipe                          " delete buffer Xxx, now we're back here
[?25l[?1cTest 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 hereG?this is aothis is some more text^[                    Append some text to this file
:?start?,$w! test.outWrite 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 1[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a test
end of test file Xxx[?25h[?0c[?25l[?1c
?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c
this is some more text[?25h[?0c[?25l[?1c
end of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0c                               " Append some text to this file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?start?,$w! test.out           " Write current file contents
[?25l[?1c"test.out" [New File] 8 lines, 147 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe test.out                 " delete alternate buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau bufleave test5.in bwipe
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!                         " delete current buffer, get an empty one
[?25l[?1cError 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[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1cthis is another test line[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 26 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c                               " append an extra line to the output file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test5 = test61; then \
#	  if diff test.out test5.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test5.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test5.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test7.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that changes the buffer list, when doing ":ball".[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 508 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of
[?25l[?1c[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx1   " write test file Xxx1
[?25l[?1c"Xxx1" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx1
[?25l[?1c"Xxx1" 4 lines, 77 charactersstart of test file Xxx1this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx1                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx1
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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 Xxx1[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx2    " write test file Xxx2
[?25l[?1c"Xxx2" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx2
[?25l[?1c"Xxx2" 4 lines, 77 charactersstart of test file Xxx2this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx2                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx2
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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 Xxx2[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx3    " write test file Xxx3
[?25l[?1c"Xxx3" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx3
[?25l[?1c"Xxx3" 4 lines, 77 charactersstart of test file Xxx3this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx3                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx3
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost Xxx2 bwipe
[?25l[?1c[?25h[?0c[?25l[?1c4[?25h[?0c[?25l[?1c:[?25h[?0cball                 " open window for all args, close Xxx2
[?25l[?1c"Xxx1"4 lines, 77 characters

"Xxx2" 4 lines, 77 characters

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c.,$w! test.out          " Write contents of this file
[?25l[?1c"test.out" [New File] 4 lines, 77 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c: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 Xxx4
test7.in [+]                                                                    start of test file Xxx1this is a testthis is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx1                                                                            [?25h[?0c
test7.in [+]                                                                    Xxx1                                                                            [?25l[?1c:[?25h[?0cw >>test.out        " Append contents of second window (Xxx1)
[?25l[?1c"test.out" 4 lines, 77 characters appended[?25h[?0ctest7.in [+]                                                                    Xxx1                                                                            [?25l[?1c:[?25h[?0c/^start of/,$w >>test.out   " Append contents of last window (this file)
[?25l[?1csearch hit BOTTOM, continuing at TOP"test.out" 4 lines, 77 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test7 = test61; then \
#	  if diff test.out test7.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test7.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test7.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test8.in
[?25h[?8c[?25h[?0c[?25l[?1c"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('$')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for BufWritePre autocommand that deletes or unloads the buffer.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1054 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTif 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWritePre Xxx1 bunload
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWritePre Xxx2 bwipe
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of
[?25l[?1c
start of Xxx[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c
:[?25h[?0c.,/end of/w! Xxx1  " write test file Xxx1
[?25l[?1c"Xxx1" [New File] 3 lines, 31 characters written[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx2   " write test file Xxx2
[?25l[?1c"Xxx2" [New File] 3 lines, 31 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! Xxx2                " edit Xxx2
[?25l[?1c"Xxx2" 3 lines, 31 charactersstart of Xxx2
        testend of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbdel test8.in^I^I" delete this file from the buffer list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce Xxx1                 " edit Xxx1
[?25l[?1c"Xxx1" 3 lines, 31 characters1
[?25h[?0c[?25l[?1c:[?25h[?0cw                      " write it, will unload it and give an error msg
[?25l[?1c"Xxx2"3 lines, 31 characters

E203: Autocommands deleted or unloaded buffer to be written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out            " Write contents of this file
[?25l[?1c"test.out" [New File] 3 lines, 31 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! Xxx2                " start editing Xxx2
[?25l[?1c"Xxx2" 3 lines, 31 charactersstart of Xxx2test
end of Xxx"Xxx2" 3 lines, 31 characters[?25h[?0c[?25l[?1c:[?25h[?0cbwipe test.out         " remove test.out from the buffer list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw                      " write it, will delete the buffer and give an error ms

g[?25l[?1c"Xxx1"3 lines, 31 characters
E203: Autocommands deleted or unloaded buffer to be written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out           " Append contents of this file
[?25l[?1c"test.out" 3 lines, 31 characters appended

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau! BufWritePre
[?25l[?1cstart of Xxx1test
end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0cfunc CloseAll()
[?25l[?1c
:  [?25h[?0c  let i = 0

[?25l[?1c:  [?25h[?0c  while i <= bufnr('$')

[?25l[?1c:    [?25h[?0c    if i != bufnr('%') && bufloaded(i)

[?25l[?1c:      [?25h[?0c      exe  i . "bunload"

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let i += 1

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cstart of Xxx1test
end of Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfunc WriteToOut()
[?25l[?1c
:  [?25h[?0c  edit! test.out

[?25l[?1c:  [?25h[?0c  $put ='VimLeave done'

[?25l[?1c:  [?25h[?0c  write

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cstart of Xxx1test
end of Xxx
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset viminfo='100,nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufUnload * call CloseAll()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau VimLeave * call WriteToOut()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce small.vim
[?25l[?1cError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"small.vim" 1 line, 1 character

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0csp mbyte.vim
[?25l[?1c"mbyte.vim" 0 lines, 0 characters~                                                                               ~                                                                               ~                                                                               mbyte.vim                                                                       small.vim                                                                       "mbyte.vim" 0 lines, 0 characters[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1cError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"test.out" 6 lines, 62 characters

"test.out" 7 lines, 76 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test8 = test61; then \
#	  if diff test.out test8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test8.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test9.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Bufleave autocommand that deletes the buffer we are about to edit.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 117 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufLeave test9.in bwipe yy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce yy
[?25l[?1cE143: Autocommands unexpectedly deleted new buffer yy[?25h[?0c[?25l[?1c:[?25h[?0c/^start of/,$w! test.out      " Write contents of this file
[?25l[?1c"test.out" [New File] 2 lines, 42 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test9 = test61; then \
#	  if diff test.out test9.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test9.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test9.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test14.in
[?25h[?8c[?25h[?0c[?25l[?1c"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\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>"
:else
: let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"
:endif
:exe "normal " . tt
:unlet tt
:.w >>test.out[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for "vaBiB", end could be wrong.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 56 lines, 1141 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 */{}}}[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cStart cursor here
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c{ 
                        cmd;    /* <-- Start cursor here */ 
                        { 
                        } 
                [?25h[?0c[?25l[?1c                cmd; 
                }[?25h[?0c[?25l[?1c


6 fewer lines        }Piece of Java{        tt m1 {                t1;e1[?25h[?0c[?25l[?1c:[?25h[?0c?Bug?,/Piece/-2w! test.out
[?25l[?1c"test.out" [New File] 3 lines, 44 characters written[?25h[?0c[?25l[?1c/[?25h[?0c^- Bug
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cs/u/~u~/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cs/i/~u~/
[?25l[?1cuuun "vPPPP" on this text (Webb):
[?25h[?0c[?25l[?1c:[?25h[?0cs/o/~~~/
[?25l[?1cuuuuuuuuun this text (Webb):
[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 48 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cif has("ebcdic")
[?25l[?1c
:  [?25h[?0c: let tt = "o\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>

"
[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:$put =@/
/^substitute
:keeppatterns s/asdf/xyz/
:$put =@/
/^substitute[?25h[?0c[?25l[?1c:[?25h[?0cexe "normal " . tt
[?25l[?1cABC !a^Og^G8[?25h[?0c[?25l[?1c:[?25h[?0cunlet tt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset vb
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Piece
[?25l[?1c[?25h[?0c[?25l[?1c{A[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1ctt m2 {[?25h[?0c[?25l[?1c{B[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1ct2;} e2tt m3 {[?25h[?0c[?25l[?1c{C[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1c{DC[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c{EA[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c{F[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 3 characters appended[?25h[?0c[?25l[?1c}G e1[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c
[?25l[?1cif (x){t3;}} e3[?25h[?0c[?25l[?1c}H e3[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c[?25l[?1c
}[?25h[?0c[?5h[?5l[?25l[?1c}I[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 3 characters appended[?25h[?0c[?25l[?1c}JH e3[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 8 characters appended[?25h[?0c[?25l[?1c}K e2[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c[?25l[?1c{LF[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^foobar
[?25l[?1cfoobar[?25h[?0c[?25l[?1c
:[?25h[?0clet startline = line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall search('foobar', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0ccall search('^$', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall search('^$', 'bc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ctwo
[?25l[?1csubstitute foo asdf

one two[?25h[?0c[?25l[?1c
:[?25h[?0ccall search('.', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), getline('.')[col('.') - 1:])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cs/foo/bar/
[?25l[?1cbar
[?25h[?0c[?25l[?1c:[?25h[?0c$put =@/
[?25l[?1csearch()
0
1
1
two
foo[?25h[?0c[?25l[?1c
/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0ckeeppatterns s/asdf/xyz/
[?25l[?1cxyz[?25h[?0c[?25l[?1c:[?25h[?0c$put =@/
[?25l[?1c
^substitute[?25h[?0c[?25l[?1c
/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c$put =@0
[?25l[?1c
substitute bar xyz[?25h[?0c[?25l[?1c
/[?25h[?0cbar /e
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =@0
[?25l[?1c
substitute bar xyz[?25h[?0c[?25l[?1c

:[?25h[?0ckeeppatterns /xyz
[?25l[?1c[?25h[?0c[?25l[?1c
/bar /exyz[?25h[?0c[?25l[?1c:[?25h[?0c/^search()/,$w >>test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 9 lines, 58 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test14 = test61; then \
#	  if diff test.out test14.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test14.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test14.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test15.in
[?25h[?8c[?25h[?0c[?25l[?1c"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/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :right on text with embedded TAB.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 401 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=65
[?25l[?1c[?25h[?0c[?25l[?1c
test for :left[?25h[?0c[?25l[?1c
:[?25h[?0c/^\s*test for :left/,/^\s*test for :center/ left
[?25l[?1csearch hit BOTTOM, continuing at TOPtest for :left[?25h[?0c[?25l[?1c:[?25h[?0c/^\s*test for :center/,/^\s*test for :right/ center
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^\s*test for :right/,/^xxx/-1 right
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fo+=tcroql tw=72
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cxxxxxxxx$
[?25l[?1casxa;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[?25h[?0c
[?25l[?1c
 xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xxxx xxxxxxx.
xxxx xxxx.xxxxxxx: xxxx xxxxxxx, xx xxxx xxxxxxx~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" undo/redo here to make the next undo only work on the following changes
[?25l[?1c[?25h[?0c[?25l[?1c1 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/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTESTtest for :leftaafaadfaasdfaaasdfaaxasdfaa
asxxdfaatest for :centeraafaafd asdf[?25h[?0c[?25l[?1c1 line less; after #1  0 seconds agotest for :lefta      afa    adfa      asdfaaasdfa           axasdfaa                test for :center  aa  fa        afd asdf[?25h[?0c
[?25l[?1c:[?25h[?0cmap gg :.,.+2s/^/x/<CR>kk:set tw=3<CR>gqq
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^aa
[?25l[?1casxxdfaaxxxoikeasxa;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[?25h[?0c[?25l[?1c


:.,.+2s/^/x/
3 substitutions on 3 linesxaa aa aa aa
xbb bb bb bb
xcc cc cc cc
[?25h[?0c[?25l[?1c:set tw=3
[?25h[?0c[?25l[?1c


3 more lines
aaaaaa3 more lines[?25h[?0c[?25l[?1c
3 fewer lines; before #2  0 seconds agoaa aa aa aa
bb bb bb bb
cc cc cc cc
~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0c?test for :left?,$w! test.out
[?25l[?1c"test.out"[New] 111L, 2304C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test15 = test61; then \
#	  if diff test.out test15.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test15.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test15.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test19.in
[?25h[?8c[?25h[?0c[?25l[?1c"test19.in" 33 lines, 692 charactersTests for "r<Tab>" 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![?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 447 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset smarttab expandtab ts=8 sw=4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure that backspace works, no matter what termcap is used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset t_kD=^^? t_kb=^^H
[?25l[?1cSTARTTEST
: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
[?25h[?0c[?25l[?1c
/[?25h[?0csome
[?25l[?1cstart textsome test text[?25h[?0c[?25l[?1c    ome test text[?25h[?0c[?25l[?1c
:[?25h[?0cset noexpandtab
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cother
[?25l[?1ctest textother test text[?25h[?0c[?25l[?1c    ther test text[?25h[?0c[?25l[?1c
a cde[?25h[?0c[?25l[?1c
:[?25h[?0c" Test replacing with Tabs and then backspacing to undo it
[?25l[?1c[?25h[?0c
    [?25l[?1c[?25h[?0c[?25l[?1c
f ghi[?25h[?0c[?25l[?1c
:[?25h[?0c" Test replacing with Tabs
[?25l[?1c[?25h[?0c
    [?25l[?1c     hi[?25h[?0c[?25l[?1c
test text[?25h[?0c[?25l[?1c
:[?25h[?0c" Test that copyindent works with expandtab set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset expandtab smartindent copyindent ts=8 sw=8 sts=8
[?25l[?1c[?25h[?0c[?25l[?1c{x[?25h[?0c[?25l[?1c
:[?25h[?0cset nosol
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cSecond line/
[?25l[?1c
Second line beginning with whitespace[?25h[?0c[?25l[?1c
  with whitespace[?25h[?0c[?25l[?1c
:[?25h[?0c?^start?,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 121 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test19 = test61; then \
#	  if diff test.out test19.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test19.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test19.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test20.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests Blockwise Visual when there are TABs before the text.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 107 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso tiny.vim
[?25l[?1c[?25h[?0c[?25l[?1csome texttest text
test text

Ox^[jAy^[kdd[?25h[?0c[?25l[?1cx[?25h[?0c
[?25l[?1cy[?25h[?0c[?25l[?1cy
Ox^[jAy^[kdd[?25h[?0c[?25l[?1c

2 changes; before #1  0 seconds ago[?25h[?0c
[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       123456
234567
345678test text test tex start here
                some texttest
test textOx^[jAy^[kdd
test20.in                                                                       [?25h[?0c[?25l[?1cx[+][?25h[?0c
[?25l[?1cy[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c1 line less; before #1  0 seconds ago   [?25h[?0c[?25l[?1c:[?25h[?0cquit!
[?25l[?1c: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[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
Ox^[jAy^[kdd[?25h[?0c[?25l[?1c
/[?25h[?0cstart here$
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cs[?25h[?0c[?25l[?1ce[?25h[?0c[?25l[?1ct t[?25h[?0c[?25l[?1cat [?25h[?0c[?25l[?1crt hereextex[?25h[?0c[?25l[?1c/[?25h[?0c456$
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c4
234[?25h[?0c[?25l[?1c5
345[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cstart here56
234start here67
345start here78[?25h[?0c[?25l[?1c:[?25h[?0c/56$/,$-1w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 10 lines, 106 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test20 = test61; then \
#	  if diff test.out test20.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test20.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test20.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test22.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for file with some lines ending in CTRL-M, some not^M[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 38 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset ta tx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce!
[?25l[?1c"test22.in" 13 lines, 197 characters[?25h[?0c[?25l[?1c:[?25h[?0c$-3,$w! test.out
[?25l[?1c"test.out" [New File] 4 lines, 79 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test22 = test61; then \
#	  if diff test.out test22.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test22.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test22.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test23.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for complicated + argument to :edit command[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 125 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c$-1w! Xfile1
[?25l[?1c"Xfile1" [New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xfile2
[?25l[?1c"Xfile2" [New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0cedit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 12 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce Xfile1
[?25l[?1c"Xfile1" 1 line, 11 charactersfooPIPEbar
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xfile1" 1 line, 11 characters[?25h[?0c[?25l[?1c:[?25h[?0cw >> test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test23 = test61; then \
#	  if diff test.out test23.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test23.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test23.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test24.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with backslash and other special characters inside [][?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 51 lines, 519 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\x]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text[?25h[?0c[?25l[?1c/[?25h[?0c[\t\]]
[?25l[?1c[?25h[?0c[?25l[?1ctext test tex[?25h[?0c[?25l[?1c/[?25h[?0c[]y]
[?25l[?1c[?25h[?0c[?25l[?1ctest text[?25h[?0c[?25l[?1c/[?25h[?0c[\]]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text[?25h[?0c[?25l[?1c/[?25h[?0c[y^]
[?25l[?1c[?25h[?0c[?25l[?1cst text[?25h[?0c[?25l[?1c/[?25h[?0c[$y]
[?25l[?1c[?25h[?0c[?25l[?1cxt test text[?25h[?0c[?25l[?1c/[?25h[?0c[\x61]
[?25l[?1c[?25h[?0c[?25l[?1cext test text  x61[?25h[?0c[?25l[?1c/[?25h[?0c[\x60-\x64]
[?25l[?1c[?25h[?0c[?25l[?1cext test text  x60-x64[?25h[?0c
[?25l[?1c/[?25h[?0c[\x785]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text  x78 5[?25h[?0c[?25l[?1c/[?25h[?0c[\o143]
[?25l[?1c
testc text test text  o143[?25h[?0c[?25l[?1c text test text  o143[?25h[?0c[?25l[?1c
/[?25h[?0c[\o140-\o144]
[?25l[?1c
tesdt text test text  o140-o144[?25h[?0c[?25l[?1ct text test text  o140-o14[?25h[?0c[?25l[?1c
/[?25h[?0c[\o417]
[?25l[?1c
test7 text test text  o41 7[?25h[?0c[?25l[?1c text test text  o41 7[?25h[?0c[?25l[?1c
/[?25h[?0c\%x42
[?25l[?1c
test text tBest text  \%x42[?25h[?0c[?25l[?1cest text  \%x42[?25h[?0c[?25l[?1c
/[?25h[?0c\%o103
[?25l[?1c
test text teCst text  \%o103[?25h[?0c[?25l[?1cst text  \%o103[?25h[?0c[?25l[?1c
/[?25h[?0c[\x00]
[?25l[?1c
test text ^@test text  [\x00][?25h[?0c[?25l[?1ctest text  [\x00][?25h[?0c[?25l[?1c
test te^@xt t^Dest t^Pext  [\x00-\x10][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\x00-\x10]//g
[?25l[?1c3 substitutions on 1 linext test text  [\x00-\x10][?25h[?0c[?25l[?1c
test \xyztext test text  [\x-z][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\x-z]\+//
[?25l[?1ctext test text  [\x-z][?25h[?0c[?25l[?1c
test text tev\uyst text  [\u-z][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\u-z]\{2,}//
[?25l[?1cst text  [\u-z][?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\+//
[?25l[?1c xx [?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a*\)\+//
[?25l[?1c[?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a*\)*//
[?25l[?1c[?25h[?0c[?25l[?1c
xx aaaaa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\{2,3}/A/
[?25l[?1cAaa xx[?25h[?0c[?25l[?1c
xx aaaaa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\{-2,3}/A/
[?25l[?1cAaaa x[?25h[?0c[?25l[?1c
xx aaa12aa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)*\(12\)\@>/A/
[?25l[?1cAaa xx[?25h[?0c[?25l[?1c
xx foobar xbar xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(foo\)\@<!bar/A/
[?25l[?1cA xx[?25h[?0c[?25l[?1c
xx an file xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(an\_s\+\)\@<=file/A/
[?25l[?1cA xx[?25h[?0c[?25l[?1c
x= 9;[?25h[?0c[?25l[?1c
:[?25h[?0cs/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
[?25l[?1cXX
[?25h[?0c[?25l[?1c
hh= 77;[?25h[?0c[?25l[?1c
:[?25h[?0cs/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
[?25l[?1cYY 77;[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0cs/aaa/xyz/
[?25l[?1cxyz
 [?25h[?0c[?25l[?1c
xyz[?25h[?0c[?25l[?1c
:[?25h[?0cs/~/bcd/
[?25l[?1cbcd
 [?25h[?0c[?25l[?1c
bcdbcdbcd[?25h[?0c[?25l[?1c
:[?25h[?0cs/~\+/BB/
[?25l[?1cBB[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?start?,$w! test.out
[?25l[?1c"test.out" [New] 32L, 586C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test24 = test61; then \
#	  if diff test.out test24.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test24.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test24.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test26.in
[?25h[?8c[?25h[?0c[?25l[?1c"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")[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for :execute, :while and :if[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 39 lines, 696 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet i = 0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i < 12
[?25l[?1c
:  [?25h[?0c:  let i = i + 1

[?25l[?1c:  [?25h[?0c:  if has("ebcdic")

[?25l[?1c:    [?25h[?0c:    execute "normal o" . i . "\047"

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    execute "normal o" . i . "\033"

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  if i % 2

[?25l[?1c:    [?25h[?0c:    normal Ax^^[

[?25l[?1c:    [?25h[?0c:    if i == 9

[?25l[?1c:      [?25h[?0c:      break

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if i == 5

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      let j = 9

[?25l[?1c:      [?25h[?0c:      while j > 0

[?25l[?1c:[?25h[?0c:        if has("ebcdic")

[?25l[?1c:[?25h[?0c:          execute "normal" j . "a" . j . "\x27"

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          execute "normal" j . "a" . j . "\x1b"

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:        let j = j - 1

[?25l[?1c:[?25h[?0c:      endwhile

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  if i == 9

[?25l[?1c:    [?25h[?0c:    if has("ebcdic")

[?25l[?1c:      [?25h[?0c:      execute "normal Az\047"

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      execute "normal Az\033"

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endwhile
[?25l[?1c:  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[?25h[?0c[?25l[?1c
:[?25h[?0cunlet i j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c't,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 159 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test26 = test61; then \
#	  if diff test.out test26.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test26.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test26.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test28.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for sourcing a file with CTRL-V's at the end of the line[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 114 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c/firstline/+1,/lastline/-1w! Xtestfile
[?25l[?1c"Xtestfile" [New File] 10 lines, 148 characters written[?25h[?0c[?25l[?1c:[?25h[?0cso Xtestfile
[?25l[?1c[?25h[?0c[?25l[?1c
sd
map __2 asd^[[?25h[?0c[?25l[?1csecond[?25h[?0cd  [?25l[?1csd^[[?25h[?0c^[  [?25l[?1csd^@map __5 asd^@[?25h[?0c[?25l[?1cfifth[?25h[?0c[?25l[?1c
:[?25h[?0c'm,$s/^@/0/g
[?25l[?1c0map __5 asd0fifth[?25h[?0c[?25l[?1c:[?25h[?0c'm,$w! test.out
[?25l[?1c"test.out" [New File] 2 lines, 45 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test28 = test61; then \
#	  if diff test.out test28.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test28.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test28.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test29.in
[?25h[?8c[?25h[?0c[?25l[?1c"test29.in" 230 lines, 4261 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for joining lines and marks in them[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 478 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nojoinspaces
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cfirstline/
[?25l[?1c[?25h[?0c
[?25l[?1c/[?25h[?0c^STARTTEST/-1
[?25l[?1c+-1
37 fewer linesSTARTTEST
/^{/+1[?25h[?0c[?25l[?1cmore linesasdfasdf.
asdf[?25h[?0c[?25l[?1casdf
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c
zx cv[?25l[?1cas dfg?
hjkl iop!
ert[?25h[?0c
hjkl i[?25l[?1c. as dfg? hjkl iop! ert
zx cvn.
as dfg?hjkl iop![?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions+=j
[?25l[?1c[?25h[?0c
zx cv
hjkl i[?25l[?1c. as dfg? hjkl iop! ertSTARTTEST[?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j joinspaces
[?25l[?1c[?25h[?0c
[?25l[?1c

37 more linesasdfasdf.
[?25h[?0c[?25l[?1casdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c  asdf[?25h[?0c[?25l[?1c
asdfasdf. [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c
zx cv[?25l[?1cas dfg?
hjkl iop![?25h[?0c
hjkl i[?25l[?1c.  as dfg?  hjkl iop!  ert
zx cvn.
as dfg?[?25h[?0c  er[?25l[?1ct  e[?25h[?0c
zx cv[?25l[?1cen[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c


:[?25h[?0cset cpoptions+=j
[?25l[?1c[?25h[?0c
zx cv[?25l[?1c
hjkl iop![?25h[?0c
hjkl i[?25l[?1c.  as dfg? hjkl iop! ertSTARTTEST[?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c


:[?25h[?0cset cpoptions-=j nojoinspaces compatible
[?25l[?1c[?25h[?0c
[?25l[?1c

37 more linesasdfasdf.
[?25h[?0c[?25l[?1casdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c  asdf[?25h[?0c[?25l[?1c
asdfasdf. [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c[?25l[?1c.  as dfg? hjkl iop! ert[?25h[?0c[?25l[?1ct  a[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c[?25l[?1c
/[?25h[?0cSTARTTEST/-2
[?25l[?1c+-2
4 fewer lines[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 147 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set comments=s1:/*,mb:*,ex:*/,://
:set nojoinspaces fo=j
:set backspace=eol,start
:.,+3join
j4J
:.,+2join
j3J
:.,+2join
j3J
:.,+2join
jj3J
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{[?25h[?0c[?25l[?1c
:[?25h[?0cset comments=s1:/*,mb:*,ex:*/,://
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nojoinspaces fo=j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace=eol,start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,+3join
[?25l[?1c/* Make sure the previous comment leader is not removed. */
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c/* Make sure the previous comment leader is not removed. */
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1c// Should the next comment leader be left alone? Yes.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c// Should the next comment leader be left alone? Yes.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1cif (condition) // Remove the next comment leader! OK, I will.
[?25h[?0c[?25l[?1c
action();[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cif (condition) // Remove the next comment leader! OK, I will.
[?25h[?0c[?25l[?1c
action();
[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:" Test with backspace set to the non-compatible setting
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 17 lines, 347 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:inoremap <c-u> <left><c-u>
Avim3^U^[
:iunmap <c-u>
Avim4^U^U^[
:" Test with backspace set to the compatible setting
:set backspace= visualbell
A vim5^[A^U^U^[
A vim6^[Azwei^Gu^U^[
:inoremap <c-u> <left><c-u>
A vim7^U^U^[
:set compatible novisualbell
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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" Test with backspace set to the non-compatible setting
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^\d\+ this
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cp bs=2
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0cd    [?25l[?1cvim2[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <c-u> <left><c-u>
[?25l[?1c[?25h[?0c[?25l[?1cd3[?25h[?0c[?25l[?1c:[?25h[?0ciunmap <c-u>
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0c" Test with backspace set to the compatible setting
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace= visualbell
[?25l[?1c[?25h[?0c[?25l[?1cvim5[?25h[?0c[?5h[?5l[?5h[?5l[?25l[?1cd vim6[?25h[?0c6    [?25l[?1czwei[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <c-u> <left><c-u>
[?25l[?1c[?25h[?0c[?5h[?5l[?5h[?5l[?25l[?1cvim7[?25h[?0c
[?25l[?1c:[?25h[?0cset compatible novisualbell
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 21 lines, 356 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/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.
 */[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments=sO:*\ -,mO:*\ \ ,exO:*/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments+=s1:/*,mb:*,ex:*/,://
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments+=s1:>#,mb:#,ex:#<,:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j joinspaces fo=j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace=eol,start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,+3join
[?25l[?1c/* Make sure the previous comment leader is not removed.  *//* List:
 * - item1
 *   foo bar baz[?25h[?0c
[?25l[?1c/* Make sure the previous comment leader is not removed.  */*   foo bar baz
 * - item2
 *   foo bar baz[?25h[?0c
[?25l[?1c:[?25h[?0c.,+8join
[?25l[?1c/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz *//* List:- item1  foo bar baz
 * - item2[?25h[?0c
[?25l[?1c/* 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?[?25h[?0c
[?25l[?1c:[?25h[?0c.,+2join
[?25l[?1cShould the next comment leader be left alone?  Yes.


// Yes.[?25h[?0c
[?25l[?1c// Should the next comment leader be left alone?  Yes.* Here the comment leader should be left intact. */
// And so should this one.[?25h[?0c
[?25l[?1c


:[?25h[?0c.,+2join
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.* Here the comment leader should be left intact. */[?25h[?0c
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.[?25h[?0c
[?25l[?1c:[?25h[?0c.,+2join
[?25l[?1cif (condition) // Remove the next comment leader!  OK, I will.
[?25h[?0c[?25l[?1c
action();[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cif (condition) // Remove the next comment leader!  OK, I will.
[?25h[?0c[?25l[?1c
action();
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1cint i = 7 /* foo *// 3 // comment
[?25h[?0c[?25l[?1c
;[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cint i = 7 /* foo *// 3 // comment
[?25h[?0c[?25l[?1c
;
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+5join
[?25l[?1c># 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.[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c># 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.[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cSome code!
// Make sure backspacing does not remove this comment leader.[?25h[?0c
[?25l[?1c// Make sure backspacing does not remove this comment leader.
}[?25h[?0c
[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 61 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:?firstline?+1,$w! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c74 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.
}[?25h[?0c[?25l[?1c:[?25h[?0c?firstline?+1,$w! test.out
[?25l[?1c"test.out" [New File] 97 lines, 3018 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test29 = test61; then \
#	  if diff test.out test29.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test29.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test29.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test31.in
[?25h[?8c[?25h[?0c[?25l[?1c"test31.in" 95 lines, 1832 charactersTest for commands that close windows and/or buffers:
:quit
:close
:hide
:only
:sall
:all
:ball
:buf
:edit

STARTTEST
:so small.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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for commands that close windows and/or buffers:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 80 lines, 1697 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" test ":q!" and hidden buffer.
:bw! Xtest1 Xtest2 Xtest3 Xtest4
:sp Xtest1
:wincmd w
:bw!
:set modified
:bot sp Xtest2
:set modified
:bot sp Xtest3
:set modified
:wincmd t
:hide
:q!
:w >>test.out
:q!
:w >>test.out
:q!
:call append(line('$'), "Oh, Not finished yet.")
:w >>test.out
:qa!
ENDTEST

testtext[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c
[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest1
[?25l[?1c"Xtest1" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest2
[?25l[?1c"Xtest2" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest3
[?25l[?1c"Xtest3" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0cn! Xtest1 Xtest2
[?25l[?1c"Xtest1" 1 line, 11 characterstesttext 1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for working :n when hidden set; write "testtext 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cn
[?25l[?1c"Xtest2" 1 line, 11 characters2[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" test for failing :rew when hidden not set; write "testtext 2 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0crew
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test for working :rew when hidden set; write "testtext 1 1"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0crew
[?25l[?1c"Xtest1" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)1 1
[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test for :all keeping a buffer when it's modified; write "testtext 1 1 1"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0csp
[?25l[?1cXtest1 [+]                                                                      testtext 1 1 1Xtest1 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cn Xtest2 Xtest3
[?25l[?1c"Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)2 22[?25h[?0c[?25l[?1c:[?25h[?0call
[?25l[?1c"Xtest3" 1 line, 11 characterstesttext 1 1 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1cXtest1 [+]                                                                      Xtest2 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test abandoning changed buffer, should be unloaded even when 'hidden' set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 2 2" twice
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c1 1[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1ctesttext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cunhide
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":hide" hides anyway when 'hidden' not set; write "testtext 3"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0chide
[?25l[?1c3~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":edit" failing in modified buffer when 'hidden' not set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 3 3"
[?25l[?1c[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1

"[?25l[?1ctesttext 3 3[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1c"Xtest1" 1 line, 11 characters1[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":close" not hiding when 'hidden' not set in modified buffer;
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 3 3 3"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest3
[?25l[?1c"Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)3 3Xtest3 [+]                                                                      testtext 1Xtest1                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":close!" does hide when 'hidden' not set in modified buffer;
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 1"
[?25l[?1c[?25h[?0c[?25l[?1c3 3[?25h[?0c[?25l[?1c:[?25h[?0cclose!
[?25l[?1c1~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test ":all!" hides changed buffer; write "testtext 2 2 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest4
[?25l[?1c"Xtest4" [New File]Xtest4                                                                          testtext 1Xtest1                                                                          [?25h[?0c[?25l[?1c 4[+][?25h[?0c[?25l[?1c:[?25h[?0call!
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1ctesttext 2 2 2
~                                                                               Xtest2 [+]                                                                      testtext 3 3 3 3~                                                                               3 [+][?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test ":q!" and hidden buffer.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbw! Xtest1 Xtest2 Xtest3 Xtest4
[?25l[?1c"test31.in"95 lines, 1832 characters

4 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest1
[?25l[?1c"Xtest1" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               Xtest1                                                                          :w >>test.out:q!:w >>test.out:q!:call append(line('$'), "Oh, Not finished yet."):w >>test.out:qa!ENDTESTtesttexttest31.in "Xtest1" 1 line, 11 characters[?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1cXtest1                                                                          test31.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cbw!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbot sp Xtest2
[?25l[?1c"Xtest2" 1 line, 11 charactersXtest1 [+]                                                                      testtext 2Xtest2                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cbot sp Xtest3
[?25l[?1c"Xtest3" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cwincmd t
[?25l[?1cXtest1 [+]                                                                      Xtest3 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0chide
[?25l[?1ctesttext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c3~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1cE37: No write since last change

E162: No write since last change for buffer "Xtest1"

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test31 = test61; then \
#	  if diff test.out test31.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test31.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test31.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test33.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'lisp'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 63 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset lisp
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^(defun
[?25l[?1c[?25h[?0c[?25l[?1c22 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[?25h[?0c[?25l[?1c:[?25h[?0c/^(defun/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 23 lines, 544 characters written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test33 = test61; then \
#	  if diff test.out test33.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test33.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test33.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test34.in
[?25h[?8c[?25h[?0c[?25l[?1c"test34.in" 87 lines, 1833 charactersTest for user functions.
Also test an <expr> 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for user functions.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 78 lines, 1621 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction Table(title, ...)
[?25l[?1c
:  [?25h[?0c:  let ret = a:title

[?25l[?1c:  [?25h[?0c:  let idx = 1

[?25l[?1c:  [?25h[?0c:  while idx <= a:0

[?25l[?1c:    [?25h[?0c:    exe "let ret = ret . a:" . idx

[?25l[?1c:    [?25h[?0c:    let idx = idx + 1

[?25l[?1c:    [?25h[?0c:  endwhile

[?25l[?1c:  [?25h[?0c:  return ret

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c: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[?25h[?0c[?25l[?1c

:[?25h[?0cfunction Compute(n1, n2, divname)
[?25l[?1c
:  [?25h[?0c:  if a:n2 == 0

[?25l[?1c:    [?25h[?0c:    return "fail"

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  exe "let g:" . a:divname . " = ". a:n1 / a:n2

[?25l[?1c:  [?25h[?0c:  return "ok"

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c: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))[?25h[?0c[?25l[?1c

:[?25h[?0cfunc Expr1()
[?25l[?1c
:  [?25h[?0c:  normal! v

[?25l[?1c:  [?25h[?0c:  return "111"

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc Expr2()
[?25l[?1c
:  [?25h[?0c:  call search('XX', 'b')

[?25l[?1c:  [?25h[?0c:  return "222"

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc ListItem()
[?25l[?1c
:  [?25h[?0c:  let g:counter += 1

[?25l[?1c:  [?25h[?0c:  return g:counter . '. '

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc ListReset()
[?25l[?1c
:  [?25h[?0c:  let g:counter = 0

[?25l[?1c:  [?25h[?0c:  return ''

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc FuncWithRef(a)
[?25l[?1c
:  [?25h[?0c:  unlet g:FuncRef

[?25l[?1c:  [?25h[?0c:  return a:a

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0clet g:FuncRef=function("FuncWithRef")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet counter = 0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <expr> ( ListItem()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <expr> [ ListReset()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cimap <expr> + Expr1()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cimap <expr> * Expr2()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet retval = "nop"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^here
[?25l[?1c[?25h[?0c[?25l[?1cher$=[?25h[?0cTable("xxx", 4, "asdf")
[?25l[?1c=[?25h[?0cCompute(45, 0, "retval")
[?25l[?1c=[?25h[?0cretval
[?25l[?1c=[?25h[?0cCompute(45, 5, "retval")
[?25l[?1c=[?25h[?0cretval
[?25l[?1c=[?25h[?0cg:FuncRef(333)

[?25l[?1cError detected while processing function Expr1:

line    1:

E523: Not allowed here

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:    $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. two[?25h[?0c[?25l[?1c1. one again[?25h[?0c[?25l[?1c
:[?25h[?0ccall append(line('$'), max([1, 2, 3]))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall extend(g:, {'max': function('min')})
[?25l[?1cE704: Funcref variable name must start with a capital: max[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), max([1, 2, 3]))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:    " Regression: the first line below used to throw ?E110: Missing ')'?

[?25l[?1c:  [?25h[?0c:    " Second is here just to prove that this line is correct when not skipp

ing

[?25l[?1c:  [?25h[?0c:    " rhs of &&.

[?25l[?1c:  [?25h[?0c:    $put =(0&&(function('tr'))(1, 2, 3))

[?25l[?1c:  [?25h[?0c:    $put =(1&&(function('tr'))(1, 2, 3))

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:    $put ='!!! Unexpected exception:'

[?25l[?1c:  [?25h[?0c:    $put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c:    $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[?25h[?0c[?25l[?1c
:[?25h[?0c$-9,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 81 characters written[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Table
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Compute
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Expr1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Expr2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc ListItem
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc ListReset
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cunlet retval counter
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test34 = test61; then \
#	  if diff test.out test34.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test34.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test34.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test36.in
[?25h[?8c[?25h[?0c[?25l[?1c"test36.in" 108 lines, 2025 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest character classes in regexp using regexpengine 0, 1, 2.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 101 lines, 1850 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTp: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
p:s/\%#=0\%204l^\t...//g
p:s/\%#=1\%205l^\t...//g
p:s/\%#=2\%206l^\t...//g
:/^start-here/+1,$wq! test.out
ENDTEST







:[?25h[?0cs/\%#=0\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\O//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\O//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-7]//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-7]//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c




~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\X//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\X//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=1[^0-9A-Fa-f]//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c





:[?25h[?0cs/\%#=0\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\U//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\U//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Z]//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Z]//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test36 = test61; then \
#	  if diff test.out test36.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test36.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test36.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test37.in
[?25h[?8c[?25h[?0c[?25l[?1c"test37.in" 116 lines, 3262 charactersTest for 'scrollbind'. <eralston@computer.org>   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 --[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below![?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 1498 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt=ver,jump
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrolloff=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nowrap
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noequalalways
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset splitbelow
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST using two windows open to one buffer, one extra empty window
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c^WtH3k^WtHyybp^Wt^Wjyy^Wbp:
:" ***** done with tests *****
:w! test.out    " Write contents of this file
:qa!ENDTESTstart of window 1. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02test37.in                                                                       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!ENDTESTstart of window 11122
test37.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c:w! test.out             " Write contents of this file
:qa!ENDTESTtest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name][?25h[?0ctest37.in                                                                       [No Name]                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cresize 8
[?25l[?1c:" ***** done with tests *****w! test.out             " Write contents of this file
:qa!ENDTESTstart of window 1
. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
test37.in                                                                       :" ***** done with tests *****:w! test.out             " Write contents of this fileqa!ENDTESTstart of window 1[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 1$/
[?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0ctest37.in                                                                       test37.in                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cresize 7
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 2$/
[?25l[?1cend of window 1start of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03[?25h[?0c[?25l[?1c
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" -- start of tests --
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling down
[?25l[?1c[?25h[?0c

[?25l[?1c. 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 09[?25h[?0ctest37.in                                                                       [No Name]                                                                       [?25l[?1c
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[+][?25h[?0c[?25l[?1c0[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?25h[?0c[?25l[?1c1[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   


[?25l[?1c. 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 15[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c2[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling up
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08440505060607070808090900[?25h[?0ctest37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?25h[?0c[?25l[?1c4[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?25h[?0c[?25l[?1c5[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1cstart 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
[?25h[?0ctest37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?25h[?0c[?25l[?1c6[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c7[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST horizontal scrolling
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt+=hor
[?25l[?1c[?25h[?0c[?25l[?1c05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c4 line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
5 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0656789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1cUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415UTSRQPONMLKJIHGREDCBA9876543210 09101112131415[?25h[?0c[?25l[?1c. 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 15[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   
test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt-=hor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" ****** tests using two different buffers *****
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       test37.in                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cstart of window 20000000000[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of window 2$/,/^end of window 2$/y
[?25l[?1c18 lines yanked[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1ctest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name][?25h[?0ctest37.in                                                                       [No Name]                                                                       test37.in                                                                       [No Name]                                                                       [?25l[?1c4 more lines[+][?25h[?0c


[?25l[?1c18 more linesstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c/[?25h[?0c^start of window 1$/
[?25l[?1csearch hit BOTTOM, continuing at TOPENDTESTstart of window 1010102020303[?25h[?0c[?25l[?1c
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 2$/
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" -- start of tests --
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling down
[?25l[?1c[?25h[?0c


[?25l[?1c. 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[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
[?25h[?0c[?25l[?1c0[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
[?25h[?0c[?25l[?1c1[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   

[?25l[?1c. 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 16[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
[?25h[?0c[?25l[?1c2[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling up
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c440505060607070808090900. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?25h[?0c[?25l[?1c4[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?25h[?0c[?25l[?1c5[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1cstart 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
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?25h[?0c[?25l[?1c6[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c7[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST horizontal scrolling
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt+=hor
[?25l[?1c[?25h[?0c[?25l[?1c05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
46 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
56 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06UTSRQPONMLKJIHGREDCBA9876543210 07[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1cUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415

UTSRQPONMLKJIHGREDCBA9876543210 0910111213141516[?25h[?0c[?25l[?1c. 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[?25h[?0c[?25l[?1c[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   
test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt-=hor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST syncbind
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below!
STARTTEST:so small.vim:set noscrollbind:set scrollopt=ver,jump:set scrolloff=2:set nowrap[?25h[?0c


test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cstart of window 201010202[?25h[?0c[?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0c[?25l[?1c. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1czt::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] [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0csyncbind
[?25l[?1c[?25h[?0c[?25l[?1c/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
:set scrollbind
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below!
STARTTEST
:so small.vimset noscrollbindset scrollopt=ver,jump
:set scrolloff=2set nowrap[?25h[?0c


test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0c[?25l[?1c. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1czt::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] [+]                                                                   [?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0csyncbind
[?25l[?1c[?25h[?0c[?25l[?1c/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
:set scrollbind
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1czt:
:set scrollbind
^Wj:
:resize 7. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
^Wj:
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" ***** done with tests *****
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out             " Write contents of this file
[?25l[?1c"test.out" [New File] 33 lines, 1329 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test37 = test61; then \
#	  if diff test.out test37.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test37.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test37.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test38.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 407 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTopq 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure that backspace works, no matter what termcap is used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset t_kD=^^? t_kb=^^H
[?25l[?1c^[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
[?25h[?0c[?25l[?1cTest 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[?25h[?0c[?25l[?1c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c
abcdefghijk      lmn    opq rstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0cset ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bs=2
[?25l[?1c[?25h[?0c[?25l[?1c 1
 A BCDEFGHIJ    KL        MNOPQR[?25h[?0c[?25l[?1c:[?25h[?0cka
[?25l[?1c[?25h[?0c[?25l[?1cabcdefghijk      lmn    opq rstuvwxyz[?25h[?0c
[?25l[?1c 1[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1cab      cdefghi jkl[?25h[?0c
[?25l[?1cAB......CDEFGHI.J[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cabcdefghijklmnopqrst[?25h[?0c
[?25l[?1cAB      IJKLMNO QR[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 13 lines, 107 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test38 = test61; then \
#	  if diff test.out test38.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test38.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test38.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test39.in
[?25h[?8c[?25h[?0c[?25l[?1c"test39.in" 118 lines, 2435 charactersTest Visual block mode commands
And test "U" in Visual mode, also on German sharp S.

#define BO_ALL      0x0001
#define BO_BS0x0002
#define BO_CRSR     0x0004

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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 75 lines, 2061 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:exe ":norm! 2k\<C-V>$gj\<Esc>"
:let cpos=getpos("'>")
:$put ='col:'.cpos[2].' off:'.cpos[3]
:"
:" block_insert when replacing spaces in front of the block with tabs
:set ts=8 sts=4 sw=4
:4,7y
Gp
:exe ":norm! f0\<C-V>2jI\<tab>\<esc>"
:/^the/,$w >> test.out
:qa!
ENDTESTline1line2line3

aaaaaa
bbbbbb
cccccc
dddddd

xaaa[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This only works when 'encoding' is "latin1", don't depend on the environment
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c:exe ":norm! 2k\<C-V>$gj\<Esc>"
:let cpos=getpos("'>")
:$put ='col:'.cpos[2].' off:'.cpos[3]
:"
:" block_insert when replacing spaces in front of the block with tabs
:set ts=8 sts=4 sw=4
:4,7y
Gp
:exe ":norm! f0\<C-V>2jI\<tab>\<esc>"
:/^the/,$w >> test.out
:qa!
ENDTESTline1line2line3

aaaaaa
bbbbbb
cccccc
dddddd

xaaa[?25h[?0c[?25l[?1c/[?25h[?0c^abcde
[?25l[?1cbbbb
cccc
dddd

yaaa
bbb

A23
4567

B23
4567

C23
4567

abcdefghijklm[?25h[?0c[?25l[?1c
:[?25h[?0c" Test shift-right of a block
[?25l[?1c[?25h[?0c[?25l[?1c
abcdefghijklm[?25h[?0cabcd[?25l[?1c[?25h[?0c[?25l[?1c
e
abcdefghijklm
abcd[?25h[?0c[?25l[?1c
e
abcdefghijklm
abcd[?25h[?0c[?25l[?1c
3 lines >ed 1 time        efghijklm
abcd        efghijklm
abcd        efghijklm[?25h[?0c     ef[?25l[?1c[?25h[?0c[?25l[?1cg[?25h[?0c[?25l[?1chg[?25h[?0c[?25l[?1cih[?25h[?0c[?25l[?1cji[?25h[?0c[?25l[?1c        ghijklm        ghijklm[?25h[?0c[?25l[?1c:[?25h[?0c" Test shift-left of a block
[?25l[?1c[?25h[?0c[?25l[?1c
abcdefghijklm[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci[?25h[?0c[?25l[?1c [?25h[?0c[?25l[?1c


3 lines <ed 1 timeef    efghijklmi[?25h[?0c[?25l[?1c:[?25h[?0c" Test block-insert
[?25l[?1c[?25h[?0c
a[?25l[?1c[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1c
ab
ab
abxyzbcdefghijklm
axyzbcd
axyzbcd
axyzbcd[?25h[?0c
a[?25l[?1c:[?25h[?0c" Test block-replace
[?25l[?1c[?25h[?0c


abcd[?25l[?1c[?25h[?0c[?25l[?1ce[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cbccf[?25h[?0c[?25l[?1ccddg[?25h[?0c[?25l[?1cd  h[?25h[?0c[?25l[?1cqqqq
axyzqqqq
axyzqqqq
abcdqqqq[?25h[?0c
axyz[?25l[?1c:[?25h[?0c" Test block-change
[?25l[?1c[?25h[?0c

[?25l[?1c[?25h[?0c[?25l[?1cj[?25h[?0c[?25l[?1ci[?25h[?0c[?25l[?1c     ghijkl[?25h[?0c[?25l[?1cef  gkl[?25h[?0c[?25l[?1cmnomnomno[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$w! test.out
[?25l[?1c"test.out" [New File] 5 lines, 108 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Test block-insert using cursor keys for movement
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^aaaa/
[?25l[?1csearch hit BOTTOM, continuing at TOPaaaaaa
bbbbbb
cccccc
ddddddsearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>jjjlllI\<Right>\<Right>  \<Esc>"
[?25l[?1c  aaa
bbb  bbb
ccc  ccc
ddd  ddd[?25h[?0c[?25l[?1c:[?25h[?0c/^aa/,/^$/w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 37 characters appended[?25h[?0c[?25l[?1c/[?25h[?0cxaaa$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-V>jjjI<>\<Left>p\<Esc>"
[?25l[?1c<p>xaaa
<p>bbbb
<p>cccc
<p>dddd[?25h[?0c[?25l[?1c:[?25h[?0c/xaaa$/,/^$/w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 33 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the last <C-v>$
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^A23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$Aab\<Esc>"
[?25l[?1cab
4567ab[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 14 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the middle <C-v>$ (1)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^B23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$hAab\<Esc>"
[?25l[?1cab
4567ab[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the middle <C-v>$ (2)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^C23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$hhAab\<Esc>"
[?25l[?1cab
456ab7[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 14 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block insert when virtualedit=all and utf-8 encoding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all enc=utf-8
[?25l[?1caaa  aaa
bbb  bbb
ccc  ccc
ddd  ddd

<p>xaaa
<p>bbbb
<p>cccc
<p>dddd

yaaa
<bf><bf><bf>
bbb

A23ab
4567ab

B23 ab
4567ab

C23ab
456ab7[?25h[?0c[?25l[?1c


:[?25h[?0c/\t\tline
[?25l[?1csearch hit BOTTOM, continuing at TOPline1line2line3search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 07l\<C-V>jjIx\<Esc>"
[?25l[?1cxxx[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 4 lines, 49 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block append when virtualedit=all
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 012l\<C-v>jjAx\<Esc>"
[?25l[?1cx   line1x   line2x   line3[?25h[?0c[?25l[?1c:[?25h[?0cset ve= enc=latin1
[?25l[?1cx     x   line1x     x   line2x     x   line3

aaa  aaa
bbb  bbb
ccc  ccc
ddd  ddd

<p>xaaa
<p>bbbb
<p>cccc
<p>dddd

yaaa
bbb

A23ab
4567ab

B23 ab
456ab7

axyzbcdefghijklm
axyzqqqq   mnoghijklm
axyzqqqqef mnoghijklm
axyzqqqqefgmnoklm
abcdqqqqijklm[?25h[?0c[?25l[?1c
the [?25l[?1c
:[?25h[?0c" VU must uppercase a whole line
[?25l[?1c[?25h[?0c[?25l[?1c
[?25l[?1c
:[?25h[?0c" same, when it's the last line in the buffer
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
[?25l[?1c
:[?25h[?0c" Uppercase two lines
[?25l[?1c[?25h[?0c[?25l[?1c
blah didoh dut[?25h[?0c[?25l[?1c
doh dut [?25h[?0c[?25l[?1cblah di t[?25h[?0c[?25l[?1c
BLAH DIDOH DUT[?25h[?0c[?25l[?1c
:[?25h[?0c" Uppercase part of two lines
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c
333the yo[?25h[?0c[?25l[?1cut[?25h[?0c[?25l[?1cUTUSSEUU END
333THE YOUTU[?25h[?0c[?25l[?1c

:[?25h[?0c" visual replace using Enter or NL
[?25l[?1c[?25h[?0c
[?25l[?1c123456789
123456789
123456789[?25h[?0c
12345[?25l[?1c[?25h[?0c[?25l[?1c66[?25h[?0c[?25l[?1c789[?25h[?0c[?25l[?1c789
12345
789
[?25h[?0c[?25l[?1c98765
98765
98765[?25h[?0c
98[?25l[?1c[?25h[?0c[?25l[?1c7
987
98[?25h[?0c[?25l[?1c^M65
98^M65
98^M65[?25h[?0c
98
[?25l[?1c123456789
123456789
123456789[?25h[?0c
12345[?25l[?1c[?25h[?0c[?25l[?1c66[?25h[?0c[?25l[?1c789[?25h[?0c[?25l[?1c789
12345
789
[?25h[?0c[?25l[?1c98765
98765
98765[?25h[?0c
98[?25l[?1c[?25h[?0c[?25l[?1c7
987
98[?25h[?0c[?25l[?1c^@65
98^@65
98^@65[?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test cursor position. When ve=block and Visual block mode and $gj
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=block
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 2k\<C-V>$gj\<Esc>"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet cpos=getpos("'>")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='col:'.cpos[2].' off:'.cpos[3]
[?25l[?1c
col:4 off:0[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" block_insert when replacing spaces in front of the block with tabs
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ts=8 sts=4 sw=4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c4,7y
[?25l[?1c4 lines yanked[?25h[?0c[?25l[?1c
4 more lines
4 more lines[?25h[?0c[?25l[?1c
#define BO_ALL      0x0001[?25h[?0c[?25l[?1c
:[?25h[?0cexe ":norm! f0\<C-V>2jI\<tab>\<esc>"
[?25l[?1c    0x0001
#define BO_BS0x0002
#define BO_CRSR0x0004[?25h[?0c[?25l[?1c


:[?25h[?0c/^the/,$w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 31 lines, 322 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test39 = test61; then \
#	  if diff test.out test39.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test39.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test39.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test40.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for "*Cmd" autocommands[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1455 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start/,$w! Xxx^I^I" write lines below to Xxx
[?25l[?1c"Xxx" [New File] 3 lines, 32 characters written[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadCmd XtestA 0r Xxx|$del
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce XtestA^I^I^I" will read text of Xxd instead
[?25l[?1c"Xxx" 3 lines, 32 charactersstart of Xxx        test40end of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau BufWriteCmd XtestA call append(line("$"), "write")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw^I^I^I^I" will append a line to the file
[?25l[?1cwrite[?25h[?0c[?25l[?1c:[?25h[?0cr XtestA^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestA[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" now we have:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileReadCmd XtestB '[r Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2r XtestB^I^I^I" will read Xxx below line 2 instead
[?25l[?1c"Xxx" 3 lines, 32 charactersstart of Xxxtest40
end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWriteCmd XtestC '[,']copy $
[?25l[?1c[?25h[?0c[?25l[?1ctest401[?25h[?0c[?25l[?1c:[?25h[?0c4,5w XtestC^I^I^I" will copy lines 4 and 5 to the end
[?25l[?1c        test401end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0cr XtestC^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestC[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 8^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 9^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FILEAppendCmd XtestD '[,']w! test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>XtestD^I^I^I" will write all lines to test.out
[?25l[?1c"test.out" [New File] 9 lines, 91 characters written[?25h[?0c[?25l[?1c:[?25h[?0c$r XtestD^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestD[?25h[?0c[?25l[?1c:[?25h[?0c$w >>test.out^I^I^I" append "end of Xxx" to test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadCmd XtestE 0r test.out|$del
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp XtestE^I^I^I" split window with test.out
[?25l[?1c"test.out" 10 lines, 102 charactersend of XxxXtestE                                                                          end of Xxxwrite        test401end of XxxXtestA                                                                          [?25h[?0c[?25l[?1casdf[+][?25h[?0cXtestE [+]                                                                      XtestA                                                                          [?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWriteCmd XtestE w! test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwall^I^I^I^I" will write other window to test.out
[?25l[?1c"test.out" 11 lines, 107 characters written   [?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iasdf
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 8^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 9^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 10^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 11^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test40 = test61; then \
#	  if diff test.out test40.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test40.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test40.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test41.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for writing and reading a file of over 100 Kbyte[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 13 lines, 196 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cThis is the start
This is the leaderThis is the middleThis is the trailerThis is the end[?25h[?0c[?25l[?1c3000 more linestrailer
This is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailer[?25h[?0c[?25l[?1cleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader[?25h[?0c
[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 6005 lines, 117092 characters written[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest
[?25l[?1c"Xtest" 6005 lines, 117092 charactersThis is the start
This is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leader[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 18 characters written[?25h[?0c[?25l[?1cThis 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[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 19 characters appended[?25h[?0c[?25l[?1cThis 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
[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 16 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test41 = test61; then \
#	  if diff test.out test41.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test41.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test41.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test42.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for writing and reading a file starting with a BOM[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2116 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
utf-8
utf-8
utf-8-err
utf-8~@err
ucs-2
ucs-2le
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1c: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
<fe><fe>latin-1
utf-8
<feff>utf-8
utf-8-err
<feff>utf-8<80>err
ucs-2
<fe><ff>^@u^@c^@s^@-^@2^@
ucs-2le
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?25h[?0c[?25l[?1c:[?25h[?0cset fileencodings=ucs-bom,latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix ffs=unix           " This changes the file for DOS and MAC
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Write the test files
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^latin-1$/+1w! Xtest0
[?25l[?1c"Xtest0" [New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^utf-8$/+1w! Xtest1
[?25l[?1c"Xtest1" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^utf-8-err$/+1w! Xtest2
[?25l[?1c"Xtest2" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-2$/+1w! Xtest3
[?25l[?1c"Xtest3" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-2le$/+1w! Xtest4
[?25l[?1c"Xtest4" [New File] 1 line, 17 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Need to add a NUL byte after the NL byte
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest4                      " Ignore change from setting 'ff'
[?25l[?1c"Xtest4" 1 line, 17 characters<ff><fe>u^@c^@s^@-^@2^@l^@e^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c^@[?25h[?0c[?25l[?1c:[?25h[?0cset noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtest4" [Incomplete last line] 2 lines, 18 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset ffs& nobinary              " Allow default test42.in format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce #
[?25l[?1c"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-1utf-8utf-8utf-8-errutf-8<80>errucs-2þÿ^@u^@c^@s^@-^@2^@ucs-2leÿþu^@c^@s^@-^@2^@l^@e^@ucs-4[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix                    " Format for files to write
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-4$/+1w! Xtest5
[?25l[?1c"Xtest5" [converted][New File] 1 line, 30 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-4le$/+1w! Xtest6
[?25l[?1c"Xtest6" [converted][New File] 1 line, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Need to add three NUL bytes after the NL byte
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest6                      " ! for when setting 'ff' is a change
[?25l[?1c"Xtest6" 1 line, 33 characters<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c
~   [?25l[?1c
^@^@^@[?25h[?0c[?25l[?1c:[?25h[?0cset noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtest6" [Incomplete last line] 2 lines, 36 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset nobin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce #
[?25l[?1c"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-1utf-8utf-8utf-8-errutf-8<80>errucs-2þÿ^@u^@c^@s^@-^@2^@ucs-2leÿþu^@c^@s^@-^@2^@l^@e^@ucs-4[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check that editing a latin-1 file doesn't see a BOM
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest0
[?25l[?1c"Xtest0" [converted] 1 line, 12 charactersþþlatin-1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0credir! >test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=latin1

nobomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cþþlatin-1
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 12 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset bomb fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest0x
[?25l[?1c"Xtest0x" [converted][New File] 1 line, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest1
[?25l[?1c"Xtest1" 1 line, 9 charactersutf-8[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-8

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cutf-8
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest1x
[?25l[?1c"Xtest1x" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check utf-8 with an error (will fall back to latin-1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest2
[?25l[?1c"Xtest2" [converted] 1 line, 17 charactersutf-8<80>err
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=latin1

nobomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cutf-8<80>err
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 17 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest2x
[?25l[?1c"Xtest2x" [New File] 1 line, 17 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest3
[?25l[?1c"Xtest3" [converted] 1 line, 8 charactersucs-2[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-16

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-2
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest3x
[?25l[?1c"Xtest3x" [converted][New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-2le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest4
[?25l[?1c"Xtest4" [converted] 1 line, 10 charactersle
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-16le

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-2le
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 8 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-2le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest4x
[?25l[?1c"Xtest4x" [converted][New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest5
[?25l[?1c"Xtest5" [converted] 1 line, 10 characters4[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=ucs-4

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-4
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest5x
[?25l[?1c"Xtest5x" [converted][New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-4le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest6
[?25l[?1c"Xtest6" [converted] 1 line, 12 charactersle
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=ucs-4le

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-4le
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 8 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-4le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest6x
[?25l[?1c"Xtest6x" [converted][New File] 1 line, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check the files written with BOM
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 35 lines, 275 characters  fileencoding=latin1nobomb<fe><fe>latin-1  fileencoding=utf-8  bombutf-8  fileencoding=latin1nobomb<feff>utf-8<80>err  fileencoding=utf-16  bombucs-2  fileencoding=utf-16le[?25h[?0c[?25l[?1c:[?25h[?0c$r Xtest0x
[?25l[?1c"Xtest0x" 1 line, 10 charactersbomb
ucs-2lefileencoding=ucs-4
  bomb
ucs-4fileencoding=ucs-4le
  bomb
ucs-4le
<fe><fe>latin-1[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest1x
[?25l[?1c"Xtest1x" 1 line, 9 characters
<feff>utf-8[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest2x
[?25l[?1c"Xtest2x" 1 line, 17 characters
utf-8<80>err[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest3x
[?25l[?1c"Xtest3x" 1 line, 14 characters
<fe><ff>^@u^@c^@s^@-^@2^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest4x
[?25l[?1c"Xtest4x" [Incomplete last line] 2 lines, 18 characters
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest5x
[?25l[?1c"Xtest5x" 1 line, 28 characters^@
^@^@<fe><ff>^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest6x
[?25l[?1c"Xtest6x" [Incomplete last line] 2 lines, 36 characters
<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?25h[?0c[?25l[?1c
:[?25h[?0cset nobin ff&               " Write the file in default format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" 44 lines, 409 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test42 = test61; then \
#	  if diff test.out test42.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test42.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test42.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test43.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 268 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^1
[?25l[?1c
1 a aa abb abbccc[?25h[?0c[?25l[?1c
/[?25h[?0ca*b\{2}c\+/e
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\Md\*e\{2}f\+/e
[?25l[?1c
2 d dd dee deefff[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cg\*h\{2}i\+/e
[?25l[?1c
3 g gg ghh ghhiii[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\mj*k\{2}l\+/e
[?25l[?1c
4 j jj jkk jkklll[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\vm*n{2}o+/e
[?25l[?1c
5 m mm mnn mnnooo[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\V^aa$
[?25l[?1c
6 x ^aa$ x[?25h[?0c[?25l[?1caa$ x[?25h[?0c[?25l[?1c
:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\v(a)(b)\2\1\1/e
[?25l[?1c
7 (a)(b) abbaa[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\V[ab]\(\[xy]\)\1
[?25l[?1c
8 axx [ab]xx[?25h[?0c[?25l[?1cab]x[?25h[?0c[?25l[?1c
:[?25h[?0c$
[?25l[?1c9 foobar[?25h[?0c[?25l[?1c
:[?25h[?0cset undolevels=100
[?25l[?1c[?25h[?0c[?25l[?1c?[?25h[?0cbar?
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

1 more line; before #2  0 seconds agobar[?25h[?0c[?25l[?1c
9 foo
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?^1?,$w! test.out
[?25l[?1c"test.out" [New] 11L, 137C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test43 = test61; then \
#	  if diff test.out test43.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test43.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test43.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test44.in
[?25h[?8c[?25h[?0c[?25l[?1c"test44.in" 81 lines, 1492 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
f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with multi-byte encoding and various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
:new
:$put =['dog(a', 'cat(']
/(/e+
"ayn:bd!
:$put =''
G"ap
: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
:new
:$put =['dog(a', 'cat(']
/(/e+
"ayn:bd!
:$put =''
G"ap
: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
:[?25h[?0c" Test \%u, [\u] and friends
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" c
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%u20ac
[?25l[?1c
:[?25h[?0c" d
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\u4f7f\u5929]\+
[?25l[?1c
:[?25h[?0c" e
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%U12345678
[?25l[?1c
:[?25h[?0c" f
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\U1234abcd\u1234\uabcd]
[?25l[?1c
:[?25h[?0c" g
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%d21879b
[?25l[?1c
:[?25h[?0c" j Test backwards search from a multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cx
[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" l Test what 7.3.192 fixed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^l
[?25l[?1c
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
g abb
test.out [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0c$put =['dog(a', 'cat(']
[?25l[?1cdog(acat([+][?25h[?0c[?25l[?1c/[?25h[?0c(/e+
[?25l[?1c/(/e+1
[?25h[?0c[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cbd!
[?25l[?1c1 a aa abb abbcc
2 d dd dee deeff
3 g gg ghh ghhii
e y
[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1c
cat(
[?25h[?0c[?25l[?1c
:[?25h[?0cw!
[?25l[?1c"test.out" 25L, 271C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test44 = test61; then \
#	  if diff test.out test44.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test44.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test44.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test45.in
[?25h[?8c[?25h[?0c[?25l[?1c"test45.in" 90 lines, 1953 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("."))[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for folding. vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 73 lines, 1820 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:new
iTest fdm=indent and :move bug END
line2Test fdm=indent STARTline3line4^[
:set fdm=indent
:1m1
2jzc:m0
:%w >> test.out
:qa!
ENDTEST

1 aa
2 bb
3 cc
4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg
8 hh
9 ii
a jj[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" We also need the +syntax feature here.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("syntax")
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   w! test.out

[?25l[?1c:  [?25h[?0c   qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:new
iTest fdm=indent and :move bug END
line2Test fdm=indent START[?25h[?0c[?25l[?1c:[?25h[?0c" basic test if a fold can be created, opened, moving to the end and closed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^1
[?25l[?1c[?25h[?0c[?25l[?1c+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "manual " . getline(foldclosed(".")))
[?25l[?1c[?25h[?0c[?25l[?1c1 aa2 bb3 cc4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg
8 hh
9 ii
a jj[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldclosed("."))
[?25l[?1c[?25h[?0c

[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline(foldclosed(".")))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test folding with markers.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=marker fdl=1 fdc=3
[?25l[?1c   :new
   iTest fdm=indent and :move bug END
   line2
           Test fdm=indent START
           line3
           line4^[
   :set fdm=indent
   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa   2 bb   3 cc-  4 dd {{{
|- 5 ee {{{ }}}
|  6 ff }}}
   7 gg
   8 hh
   9 ii
   a jj[?25h[?0c[?25l[?1c/[?25h[?0c^5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "marker " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c{{ |  6 ff }}}[?25h[?0c[?25l[?1c-{|
|
|
|[?25h[?0c[?25l[?1c


:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c6 ff }}}
 7 gg
 8 hh[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test folding with indent
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=indent sw=2
[?25l[?1c-++---  3 lines: Test fdm=indent START-----------------------------------------:set fdm=indent:1m12jzc:m0%w >> test.out:qa!ENDTEST1 aa2 bb3 cc4 dd {{{5 ee {{{ }}}
 {{{  6 ff }}}  6 ff }}}
  7 gg 8 hh9 iia jj[?25h[?0c[?25l[?1c/[?25h[?0c^2 b
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c
-  2 bb[?25h[?0c[?25l[?1c
|-    3 cc[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "indent " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test syntax folding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=syntax fdl=0
[?25l[?1c          Test fdm=indent START        line3        line4^[:set fdm=indent1m12jzc:m0:%w >> test.out:qa!ENDTEST
   1 aa  2 bb    3 cc4 dd {{{5 ee {{{ }}}{{{6 ff }}}6 ff }}}7 gg8 hh[?25h[?0c[?25l[?1c:[?25h[?0csyn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
[?25l[?1c++--  8 lines: 4 dd ----------------------------------------------------------a jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd1 start="ee" end="ff" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd2 start="gg" end="hh" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd3 start="commentstart" end="commentend" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c   1 aa
   marker 2
   1
   1
   0
   indent 2
   1[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "folding " . getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c
--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[?25h[?0c[?25l[?1c commentend- 
|-

| 
  
  
  
  
  
  [?25h[?0c[?25l[?1c:[?25h[?0cset fdl=1
[?25l[?1c++---  3 lines: 5 ee --------------------------------------------------------- 6 ff }}}++---  2 lines: 7 gg----------------------------------------------------------9 ii  a jj
  b kk
 lastmanual 1 aa-13 cc1 aamarker 21[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdl=0
[?25l[?1c++--  8 lines: 4 dd commentstart  commentend----------------------------------  a jj b kk  last manual 1 aa-13 cc1 aarker 2110indent[?25h[?0c[?25l[?1c
-4 dd {{{commentstart  commentend|-5 ee {{{ }}}
||{{{||6 ff }}}
|6 ff }}}|-7 gg
||8 hh
|9 iia jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c   :1m1
   2jzc:m0
   :%w >> test.out
   :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[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test expression folding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun Flvl()
[?25l[?1c
:  [?25h[?0c  let l = getline(v:lnum)

[?25l[?1c:  [?25h[?0c  if l =~ "bb$"

[?25l[?1c:    [?25h[?0c    return 2

[?25l[?1c:    [?25h[?0c  elseif l =~ "gg$"

[?25l[?1c:    [?25h[?0c    return "s1"

[?25l[?1c:    [?25h[?0c  elseif l =~ "ii$"

[?25l[?1c:    [?25h[?0c    return ">2"

[?25l[?1c:    [?25h[?0c  elseif l =~ "kk$"

[?25l[?1c:    [?25h[?0c    return "0"

[?25l[?1c:    [?25h[?0c  endif

[?25l[?1c:  [?25h[?0c  return "="

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa
     2 bb
       3 cc
-  4 dd {{{commentstart  commentend
|- 5 ee {{{ }}}
|| {{{[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=expr fde=Flvl()
[?25l[?1c++-- 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---------------------------------------------------~                                                                            ~                                                                            [?25h[?0c[?25l[?1c/[?25h[?0cbb$
[?25l[?1csearch 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[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "expr " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0chh$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cii$
[?25l[?1c-9 ii||a jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ckk$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^last/+1,$w! test.out
[?25l[?1c"test.out" [New File] 18 lines, 96 characters written[?25h[?0c[?25l[?1c:[?25h[?0cdelfun Flvl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c  
  
  
  ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            [No Name]                                                                       5 ee {{{ }}}{{{6 ff }}}|6 ff }}}|7 gg 8 hh
|-9 ii
||a jjb kklast
test45.in [+]                                                                   [?25h[?0c[?25l[?1cTest fdm=indent and :move bug ENDline2        Test fdm=indent START        line3        line4[+][?25h[?0c[?25l[?1c:[?25h[?0cset fdm=indent
[?25l[?1c++--  3 lines: Test fdm=indent START------------------------------------------~                                                                            ~                                                                            [?25h[?0c[?25l[?1c:[?25h[?0c1m1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cm0
[?25l[?1c3 lines moved++--  3 lines: Test fdm=indent START------------------------------------------Test fdm=indent and :move bug END
 line2[?25h[?0c[?25l[?1c:[?25h[?0c%w >> test.out
[?25l[?1c"test.out" 5 lines, 77 characters appendedtest.out [+] [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test45 = test61; then \
#	  if diff test.out test45.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test45.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test45.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test48.in
[?25h[?8c[?25h[?0c[?25l[?1c"test48.in" 83 lines, 1658 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 <CR> 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cThis is a test of 'virtualedit'.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 61 lines, 1442 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set display=
:"
:"   Test for ^Y/^E due to bad w_virtcol value, reported by
:"   Roy <royl@netropolis.net>.
^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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswf
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c65 fewer linesthis is a test
"r"
"r"
a^Vb^Msd
abcv6efi.him0kl


~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               65 fewer lines[?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Insert "keyword keyw", ESC, C CTRL-N, shows "keyword ykeyword".
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    Repeating CTRL-N fixes it. (Mary Ellen Foster)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cw
[?25l[?1c[?25h[?0c[?25l[?1c$Scanning tags.
The only matchword[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Using "C" then then <CR> moves the last remaining character to the next
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    line.  (Mary Ellen Foster)
[?25l[?1c[?25h[?0c
[?25l[?1c/[?25h[?0care
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c$are belong to vim
1 2 3 4 5 6
'i
'C
'a
'A
'D'this is a test

"r"     
a^Vb^Msdabcv6efi.him0kl[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   When past the end of a line that ends in a single character "b" skips
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    that word.
[?25l[?1c[?25h[?0c
[?25l[?1c$7[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'i' works
[?25l[?1c[?25h[?0c
'i'   [?25l[?1c<-- should be 3 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'C' works
[?25l[?1c[?25h[?0c
'C'   [?25l[?1c$<-- should be 3 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'a' works
[?25l[?1c[?25h[?0c
'a'   [?25l[?1c <-- should be 4 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'A' works
[?25l[?1c[?25h[?0c
'A'   [?25l[?1c<-- should be 0 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'D' works
[?25l[?1c[?25h[?0c
'D'   [?25l[?1c<-- 'D' should be intact[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test for yank bug reported by Mark Waggoner.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=block
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1caaablock of 4 lines yanked[?25h[?0c[?25l[?1c3 more linesa
aa [?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test "r" beyond the end of the line
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^"r"
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c"r"    [?25l[?1cx[?25h[?0c[?25l[?1cx<-- should be 'x'[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test "r" on a tab
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Note that for this test, 'ts' must be 8 (the default).
[?25l[?1c[?25h[?0c
"r"  [?25l[?1cx[?25h[?0c[?25l[?1cx  <-- should be '  x  '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test to make sure 'x' can delete control characters
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset display=uhex
[?25l[?1c<16>b<0d>sd[?25h[?0c
[?25l[?1c<16>b<0d>sd[?25h[?0c[?25l[?1cb<0d>sd[?25h[?0c[?25l[?1c<0d>sd[?25h[?0c[?25l[?1csd[?25h[?0c[?25l[?1cd[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[This line should contain only the text between the brackets.][?25h[?0c[?25l[?1c:[?25h[?0cset display=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test for ^Y/^E due to bad w_virtcol value, reported by
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Roy <royl@netropolis.net>.
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c   [?25l[?1cv[?25h[?0cv   [?25l[?1ci[?25h[?0ci   [?25l[?1cm   <-- should show the name of a noted text editor[?25h[?0c
[?25l[?1c[?25h[?0c    [?25l[?1c6[?25h[?0c6   [?25l[?1c.[?25h[?0c.   [?25l[?1c0   <-- and its version number[?25h[?0c[?25l[?1c
[?25h[?0c
    [?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for yanking and pasting using the small delete register
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^foo
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c, bar[?25h[?0c, [?25l[?1c[?25h[?0c[?25l[?1cba[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cfoo[?25h[?0c
keyw[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 23 lines, 479 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test48 = test61; then \
#	  if diff test.out test48.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test48.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test48.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test51.in
[?25h[?8c[?25h[?0c[?25l[?1c"test51.in" 36 lines, 809 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for ":highlight". vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 31 lines, 747 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" basic test if ":highlight" doesn't crash
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chighlight
[?25l[?1c
SpecialKey     xxx term=bold cterm=bold ctermfg=4 guifg=Cyan

EndOfBuffer    xxx links to NonText

NonTextxxx term=bold cterm=bold ctermfg=4 gui=bold guifg=Blue

Directory      xxx term=bold cterm=bold ctermfg=6 guifg=Cyan

ErrorMsgxxx term=standout cterm=bold ctermfg=7 ctermbg=1 guifg=White

guibg=Red

IncSearch      xxx term=reverse cterm=reverse gui=reverse

Searchxxx term=reverse ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

MoreMsgxxx term=bold cterm=bold ctermfg=2 gui=bold guifg=SeaGreen

ModeMsgxxx term=bold cterm=bold gui=bold

LineNrxxx term=underline cterm=bold ctermfg=3 guifg=Yellow

CursorLineNr   xxx term=bold cterm=bold ctermfg=3 gui=bold guifg=Yellow

Questionxxx term=standout cterm=bold ctermfg=2 gui=bold guifg=Green

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 cterm=bold ctermfg=5 gui=bold guifg=Magenta

Visualxxx term=reverse cterm=reverse guibg=DarkGrey

VisualNOS      xxx cleared

WarningMsg     xxx term=standout cterm=bold ctermfg=1 guifg=Red

WildMenuxxx term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

Foldedxxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=DarkGrey

FoldColumn     xxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=Grey

DiffAddxxx term=bold ctermbg=4 guibg=DarkBlue

DiffChange     xxx term=bold ctermbg=5 guibg=DarkMagenta

DiffDelete     xxx term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=Blue

guibg=DarkCyan

DiffTextxxx term=reverse cterm=bold ctermbg=1 gui=bold guibg=Red

SignColumn     xxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=Grey

Concealxxx ctermfg=7 ctermbg=0 guifg=LightGrey guibg=DarkGrey

SpellBadxxx term=reverse ctermbg=1 gui=undercurl guisp=Red

SpellCapxxx term=reverse ctermbg=4 gui=undercurl guisp=Blue

SpellRare      xxx term=reverse ctermbg=5 gui=undercurl guisp=Magenta

SpellLocal     xxx term=underline ctermbg=6 gui=undercurl guisp=Cyan

Pmenuxxx ctermfg=0 ctermbg=5 guibg=Magenta

PmenuSelxxx cterm=bold ctermfg=0 ctermbg=0 guibg=DarkGrey

PmenuSbar      xxx ctermbg=7 guibg=Grey

PmenuThumb     xxx ctermbg=7 guibg=White

TabLinexxx term=underline cterm=bold,underline ctermfg=7 ctermbg=0

gui=underline guibg=DarkGrey

TabLineSel     xxx term=bold cterm=bold gui=bold

TabLineFill    xxx term=reverse cterm=reverse gui=reverse

CursorColumn   xxx term=reverse ctermbg=0 guibg=Grey40

CursorLine     xxx term=underline cterm=underline guibg=Grey40

ColorColumn    xxx term=reverse ctermbg=1 guibg=DarkRed

MatchParen     xxx term=reverse ctermbg=6 guibg=DarkCyan

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Search
[?25l[?1c
Searchxxx term=reverse ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c" test setting colors.
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0c" test clearing one color and all doesn't generate error or warning
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi NewGroup term=bold cterm=italic ctermfg=DarkBlue ctermbg=Grey gui= guifg=#0

0ff00 guibg=Cyan
[?25l[?1cE418: Illegal value: guifg=#00ff00Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2 term= cterm=
[?25l[?1cE418: Illegal value: cterm=

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group3 term=underline cterm=bold
[?25l[?1c:hi NewGroup
:hi Group2[?25h[?0c[?25l[?1c
:[?25h[?0credir! >test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi NewGroup
[?25l[?1c
NewGroupxxx term=bold cterm=italic ctermfg=4 ctermbg=7

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group3
[?25l[?1c
Group3xxx term=underline cterm=bold

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi clear NewGroup
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup
:hi NewGroup
:hi Group2[?25h[?0c[?25l[?1c
:[?25h[?0chi NewGroup
[?25l[?1c
NewGroupxxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2 NONE
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup[?25h[?0c[?25l[?1c
:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi clear
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0chi Group3
[?25l[?1c
Group3xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Crash term='asdf
[?25l[?1cE475: Invalid argument: term='asdf

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3[?25h[?0c[?25l[?1c
:[?25h[?0c" filter ctermfg and ctermbg, the numbers depend on the terminal
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 20 lines, 289 charactersNewGroup       xxx term=bold cterm=italic ctermfg=4 ctermbg=7Group2         xxx clearedGroup3         xxx term=underline cterm=boldNewGroup       xxx clearedGroup2         xxx clearedGroup2         xxx clearedGroup3         xxx clearedE475: Invalid argument: term='asdf
~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c%s/ctermfg=\d*/ctermfg=2/
[?25l[?1c2
[?25h[?0c[?25l[?1c:[?25h[?0c%s/ctermbg=\d*/ctermbg=3/
[?25l[?1c3
[?25h[?0c[?25l[?1c:[?25h[?0c" filter out possibly translated error message
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c%s/E475: [^:]*:/E475:/
[?25l[?1cterm='asdf[?25h[?0c[?25l[?1c:[?25h[?0c" fix the fileformat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq!
[?25l[?1c"test.out" 20 lines, 271 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test51 = test61; then \
#	  if diff test.out test51.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test51.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test51.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test53.in
[?25h[?8c[?25h[?0c[?25l[?1c"test53.in" 75 lines, 1763 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()

STARTTEST
:so small.vim
/^start:/
da"
0va'a'rx
02f`da`
0fXdi"
03f'vi'ry
:set quoteescape=+*-
di`
$F"va"oha"i"rz
:"
/^<begin
jfXdit
0fXdit
fXdat
0fXdat[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for string and html text objects. vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1237 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:put =match('abc', '$', 4, 1) " -1
:put =match('abc', '\zs', 0, 1) " 0
:put =match('abc', '\zs', 0, 2) " 1
:put =match('abc', '\zs', 0, 3) " 2
:put =match('abc', '\zs', 0, 4) " 3
:put =match('abc', '\zs', 0, 5) " -1
:put =match('abc', '\zs', 1, 1) " 1
:put =match('abc', '\zs', 2, 1) " 2
:put =match('abc', '\zs', 3, 1) " 3
:put =match('abc', '\zs', 4, 1) " -1
:/^start:/,/^end:/wq! test.out
ENDTEST

start: "wo\"rd\\" foo
'foo' 'bar' 'piep'
bla bla `quote` blah
out " in "noXno"
"'" 'blah' rep 'buh'
bla `s*`d-`+++`l**` b`la
voo "nah" sdf " asdf" sdf " sdf" sd

<begin>
-<b>asdf<i>Xasdf</i>asdf</b>-[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c[?25h[?0c[?25l[?1cfo[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c'foo'[?25h[?0c[?25l[?1c 'bar'[?25h[?0c[?25l[?1c
xxxxxxxxxxxx
[?25h[?0c
[?25l[?1cblah[?25h[?0c
[?25l[?1c"[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c' rep[?25h[?0c[?25l[?1cyyyyy[?25h[?0c[?25l[?1c:[?25h[?0cset quoteescape=+*-
[?25l[?1c[?25h[?0c[?25l[?1c` b`la[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c" sdf"[?25h[?0c[?25l[?1c" [?25h[?0c[?25l[?1c"[?25h[?0c[?25l[?1c asdf" sdf [?25h[?0c[?25l[?1cah" sdf "
voo "[?25h[?0c[?25l[?1czzzzzzzzzzzzzzzzzzzzzzzzzzzz
voo "[?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^<begin
[?25l[?1c[?25h[?0c
[?25l[?1c</i>asdf</b>-[?25h[?0c[?25l[?1c
-<b>asdX<i>a<i />sdf</i>asdf</b>-[?25h[?0c
[?25l[?1c</b>-[?25h[?0c[?25l[?1c
-<b>asdf<i>Xasdf</i>asdf</b>-
-<b>[?25h[?0c[?25l[?1casdf</b>-[?25h[?0c[?25l[?1c
-<b>asdX<i>as<b />df</i>asdf</b>-[?25h[?0c
[?25l[?1c
--[?25h[?0c[?25l[?1c
-<b>
-[?25h[?0c[?25l[?1c<b></b>[?25h[?0c[?25l[?1c
</begin>[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =matchstr(\"abcd\", \".\", 0, 2) " b
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \"..\", 0, 2) " bc
[?25l[?1c
bc[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)
[?25l[?1c
c[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \".\", 0, -1) " a
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0cput =match(\"abcd\", \".\", 0, 5) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match(\"abcd\", \".\", 0, -1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 2) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 3) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 4) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 1, 1) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 2, 1) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 3, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 0, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 0, 2) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 1, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 2, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 3, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 4, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 2) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 3) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 4) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 5) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 1, 1) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 2, 1) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 3, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 4, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0c/^start:/,/^end:/wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 45 lines, 284 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test53 = test61; then \
#	  if diff test.out test53.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test53.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test53.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test55.in
[?25h[?8c[?25h[?0c[?25l[?1c"test55.in" 586 lines, 12256 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])
:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for List and Dictionary types.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 580 lines, 12170 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =string(l)
: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:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun Test(...)
[?25l[?1c
:  [?25h[?0c:lang C

[?25l[?1c:  [?25h[?0c:" Creating List directly with different types

[?25l[?1c:  [?25h[?0c:let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:$put =string(l[-1])

[?25l[?1c:  [?25h[?0c:$put =string(l[-4])

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =string(l[-5])

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:" List slices

[?25l[?1c:  [?25h[?0c:$put =string(l[:])

[?25l[?1c:  [?25h[?0c:$put =string(l[1:])

[?25l[?1c:  [?25h[?0c:$put =string(l[:-2])

[?25l[?1c:  [?25h[?0c:$put =string(l[0:8])

[?25l[?1c:  [?25h[?0c:$put =string(l[8:-1])

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" List identity

[?25l[?1c:  [?25h[?0c:let ll = l

[?25l[?1c:  [?25h[?0c:let lx = copy(l)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =(l == ll) . (l isnot ll) . (l is ll) . (l == lx) . (l is lx) . (l

isnot lx)

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Creating Dictionary directly with different types

[?25l[?1c:  [?25h[?0c:let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},}

[?25l[?1c:  [?25h[?0c:$put =string(d) . d.1

[?25l[?1c:  [?25h[?0c:$put =string(sort(keys(d)))

[?25l[?1c:  [?25h[?0c:$put =string (values(d))

[?25l[?1c:  [?25h[?0c:for [key, val] in items(d)

[?25l[?1c:    [?25h[?0c:  $put =key . ':' . string(val)

[?25l[?1c:    [?25h[?0c:  unlet key val

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c:call extend  (d, {3:33, 1:99})

[?25l[?1c:  [?25h[?0c:call extend(d, {'b':'bbb', 'c':'ccc'}, "keep")

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  call extend(d, {3:333,4:444}, "error")

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:call filter(d, 'v:key =~ ''[ac391]''')

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Dictionary identity

[?25l[?1c:  [?25h[?0c:let dd = d

[?25l[?1c:  [?25h[?0c:let dx = copy(d)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =(d == dd) . (d isnot dd) . (d is dd) . (d == dx) . (d is dx) . (d

isnot dx)

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" removing items with :unlet

[?25l[?1c:  [?25h[?0c:unlet l[2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:let l = range(8)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:unlet l[:3]

[?25l[?1c:    [?25h[?0c:unlet l[1:]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:$put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:unlet d.c

[?25l[?1c:  [?25h[?0c:unlet d[-1]

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" removing items out of range: silently skip items that don't exist

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:1]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:3]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:4]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:5]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-1:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-2:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-3:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-4:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-5:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-6:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" assignment to a list

[?25l[?1c:  [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:let [va, vb] = l[2:3]

[?25l[?1c:  [?25h[?0c:$put =va

[?25l[?1c:  [?25h[?0c:$put =vb

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let [va, vb] = l

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let [va, vb] = l[1:1]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" manipulating a big Dictionary (hashtable.c has a border of 1000 entries)

[?25l[?1c:  [?25h[?0c:let d = {}

[?25l[?1c:  [?25h[?0c:for i in range(1500)

[?25l[?1c:    [?25h[?0c: let d[i] = 3000 - i

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c:$put =d[0] . ' ' . d[100] . ' ' . d[999] . ' ' . d[1400] . ' ' . d[1499]

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let n = d[1500]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =substitute(v:exception, '\v(.{14}).*( \d{4}).*', '\1\2', '')

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:" lookup each items

[?25l[?1c:  [?25h[?0c:for i in range(1500)

[?25l[?1c:    [?25h[?0c: if d[i] != 3000 - i

[?25l[?1c:      [?25h[?0c:  $put =d[i]

[?25l[?1c:      [?25h[?0c: endif

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c: let i += 1

[?25l[?1c:  [?25h[?0c:" delete even items

[?25l[?1c:  [?25h[?0c:while i >= 2

[?25l[?1c:    [?25h[?0c: let i -= 2

[?25l[?1c:    [?25h[?0c: unlet d[i]

[?25l[?1c:    [?25h[?0c:endwhile

[?25l[?1c:  [?25h[?0c:$put =get(d, 1500 - 100, 'NONE') . ' ' . d[1]

[?25l[?1c:  [?25h[?0c:" delete odd items, checking value, one intentionally wrong

[?25l[?1c:  [?25h[?0c:let d[33] = 999

[?25l[?1c:  [?25h[?0c:let i = 1

[?25l[?1c:  [?25h[?0c:while i < 1500

[?25l[?1c:    [?25h[?0c: if d[i] != 3000 - i

[?25l[?1c:      [?25h[?0c:  $put =i . '=' . d[i]

[?25l[?1c:      [?25h[?0c: else

[?25l[?1c:      [?25h[?0c:  unlet d[i]

[?25l[?1c:      [?25h[?0c: endif

[?25l[?1c:    [?25h[?0c: let i += 2

[?25l[?1c:    [?25h[?0c:endwhile

[?25l[?1c:  [?25h[?0c:$put =string(d)  " must be almost empty now

[?25l[?1c:  [?25h[?0c:unlet d

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Dictionary function

[?25l[?1c:  [?25h[?0c:let dict = {}

[?25l[?1c:  [?25h[?0c:func dict.func(a) dict

[?25l[?1c:    [?25h[?0c:  $put =a:a . len(self.data)

[?25l[?1c:    [?25h[?0c:endfunc

[?25l[?1c:    [?25h[?0c:let dict.data = [1,2,3]

[?25l[?1c:    [?25h[?0c:call dict.func("len: ")

[?25l[?1c:    [?25h[?0c:let x = dict.func("again: ")

[?25l[?1c:    [?25h[?0c:let Fn = dict.func

[?25l[?1c:    [?25h[?0c:call Fn('xxx')

[?25l[?1c:    [?25h[?0c:" 

[?25l[?1c:    [?25h[?0c:" Function in script-local List or Dict

[?25l[?1c:    [?25h[?0c:let g:dict = {}

[?25l[?1c:    [?25h[?0c:function g:dict.func() dict

[?25l[?1c:      [?25h[?0c:  $put ='g:dict.func'.self.foo[1].self.foo[0]('asdf')

[?25l[?1c:      [?25h[?0c:endfunc

[?25l[?1c:      [?25h[?0c:let g:dict.foo = ['-', 2, 3]

[?25l[?1c:      [?25h[?0c:call insert(g:dict.foo, function('strlen'))

[?25l[?1c:      [?25h[?0c:call g:dict.func()

[?25l[?1c:      [?25h[?0c:" 

[?25l[?1c:      [?25h[?0c:" Nasty: remove func from Dict that's being called (works)

[?25l[?1c:      [?25h[?0c:let d = {1:1}

[?25l[?1c:      [?25h[?0c:func d.func(a)

[?25l[?1c:[?25h[?0c:  return "a:". a:a

[?25l[?1c:[?25h[?0c:endfunc

[?25l[?1c:[?25h[?0c:$put =d.func(string(remove(d, 'func')))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Nasty: deepcopy() dict that refers to itself (fails when noref used

)
[?25l[?1c:[?25h[?0c:let d = {1:1, 2:2}

[?25l[?1c:[?25h[?0c:let l = [4, d, 6]

[?25l[?1c:[?25h[?0c:let d[3] = l

[?25l[?1c:[?25h[?0c:let dc = deepcopy(d)

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let dc = deepcopy(d, 1)

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:let l2 = [0, l, l, 3]

[?25l[?1c:[?25h[?0c:let l[1] = l2

[?25l[?1c:[?25h[?0c:let l3 = deepcopy(l2)

[?25l[?1c:[?25h[?0c:$put ='same list: ' . (l3[1] is l3[2])

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Locked variables

[?25l[?1c:[?25h[?0c:for depth in range(5)

[?25l[?1c:[?25h[?0c:  $put ='depth is ' . depth

[?25l[?1c:[?25h[?0c:  for u in range(3)

[?25l[?1c:[?25h[?0c:    unlet l

[?25l[?1c:[?25h[?0c:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l[?1c:[?25h[?0c:    exe "lockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    if u == 1

[?25l[?1c:[?25h[?0c:      exe "unlockvar l"

[?25l[?1c:[?25h[?0c:    elseif u == 2

[?25l[?1c:[?25h[?0c:      exe "unlockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    endif

[?25l[?1c:[?25h[?0c:    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]")

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:    let ps = ''

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1][1][0] = 99

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1][1] = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1] = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2]['6'][7] = 99

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2][6] = {99: 99}

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2] = {99: 99}

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:  endfor

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Unletting locked variables

[?25l[?1c:[?25h[?0c:$put ='Unletting:'

[?25l[?1c:[?25h[?0c:for depth in range(5)

[?25l[?1c:[?25h[?0c:  $put ='depth is ' . depth

[?25l[?1c:[?25h[?0c:  for u in range(3)

[?25l[?1c:[?25h[?0c:    unlet l

[?25l[?1c:[?25h[?0c:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l[?1c:[?25h[?0c:    exe "lockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    if u == 1

[?25l[?1c:[?25h[?0c:      exe "unlockvar l"

[?25l[?1c:[?25h[?0c:    elseif u == 2

[?25l[?1c:[?25h[?0c:      exe "unlockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    endif

[?25l[?1c:[?25h[?0c:    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]")

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:    let ps = ''

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2]['6'][7]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2][6]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1][1][0]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1][1]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:  endfor

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Locked variables and :unlet or list / dict functions

[?25l[?1c:[?25h[?0c:$put ='Locks and commands or functions:'

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :unlet after lock on dict:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar 1 d

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet d.a

[?25l[?1c:[?25h[?0c:  $put ='did :unlet'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put =':unlet after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet d.a

[?25l[?1c:[?25h[?0c:  $put ='did :unlet'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='filter() after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call filter(d, 'v:key != "a"')

[?25l[?1c:[?25h[?0c:  $put ='did filter()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='map() after lock on dict:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar 1 d

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call map(d, 'v:val + 200')

[?25l[?1c:[?25h[?0c:  $put ='did map()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No extend() after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  $put =string(extend(d, {'a': 123}))

[?25l[?1c:[?25h[?0c:  $put ='did extend()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No remove() of write-protected scope-level variable:'

[?25l[?1c:[?25h[?0c:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l[?1c:[?25h[?0c:  try

[?25l[?1c:[?25h[?0c:    $put =string(remove(a:, 'this_is_a_loooooooooong_parameter_na

me'))

[?25l[?1c:[?25h[?0c:    $put ='did remove()'

[?25l[?1c:[?25h[?0c:  catch

[?25l[?1c:[?25h[?0c:    $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:  endtry

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:call Tfunc('testval')

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No extend() of write-protected scope-level variable:'

[?25l[?1c:[?25h[?0c:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l[?1c:[?25h[?0c:  try

[?25l[?1c:[?25h[?0c:    $put =string(extend(a:, {'this_is_a_loooooooooong_parameter

_name': 1234}))

[?25l[?1c:[?25h[?0c:    $put ='did extend()'

[?25l[?1c:[?25h[?0c:  catch

[?25l[?1c:[?25h[?0c:    $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:  endtry

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:call Tfunc('testval')

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :unlet of variable in locked scope:'

[?25l[?1c:[?25h[?0c:let b:testvar = 123

[?25l[?1c:[?25h[?0c:lockvar 1 b:

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet b:testvar

[?25l[?1c:[?25h[?0c:  $put ='b:testvar was :unlet: '. (!exists('b:testvar'))

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:unlockvar 1 b:

[?25l[?1c:[?25h[?0c:unlet! b:testvar

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :let += of locked list variable:'

[?25l[?1c:[?25h[?0c:let l = ['a', 'b', 3]

[?25l[?1c:[?25h[?0c:lockvar 1 l

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let l += ['x']

[?25l[?1c:[?25h[?0c:  $put ='did :let +='

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:unlet l

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4]

[?25l[?1c:[?25h[?0c:lockvar! l

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlockvar l[1]

[?25l[?1c:[?25h[?0c:unlet l[0:1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlet l[1:2]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlockvar l[1]

[?25l[?1c:[?25h[?0c:let l[0:1] = [0, 1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:let l[1:2] = [0, 1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlet l

[?25l[?1c:[?25h[?0c:" :lockvar/islocked() triggering script autoloading

[?25l[?1c:[?25h[?0c:set rtp+=./sautest

[?25l[?1c:[?25h[?0c:lockvar g:footest#x

[?25l[?1c:[?25h[?0c:unlockvar g:footest#x

[?25l[?1c:[?25h[?0c:$put ='locked g:footest#x:'.islocked('g:footest#x')

[?25l[?1c:[?25h[?0c:$put ='exists g:footest#x:'.exists('g:footest#x')

[?25l[?1c:[?25h[?0c:$put ='g:footest#x: '.g:footest#x

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" a:000 function argument

[?25l[?1c:[?25h[?0c:" first the tests that should fail

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000 = [1, 2]

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[0] = 9

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[0]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[2] = [9, 10]

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[2]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[3] = {9: 10}

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[3]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:" now the tests that should pass

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[2][1] = 9

[?25l[?1c:[?25h[?0c:  call extend(a:000[2], [5, 6])

[?25l[?1c:[?25h[?0c:  let a:000[3][5] = 8

[?25l[?1c:[?25h[?0c:  let a:000[3]['a'] = 12

[?25l[?1c:[?25h[?0c:  $put =string(a:000)

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught ' . v:exception

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" reverse(), sort(), uniq()

[?25l[?1c:[?25h[?0c:let l = ['-0', 'A11', 2, 2, 'xaaa', 4, 'foo', 'foo6', 'foo', [0, 

1, 2], 'x8', [0, 1, 2], 1.5]

[?25l[?1c:[?25h[?0c:$put =string(uniq(copy(l)))

[?25l[?1c:[?25h[?0c:$put =string(reverse(l))

[?25l[?1c:[?25h[?0c:$put =string(reverse(reverse(l)))

[?25l[?1c:[?25h[?0c:$put =string(sort(l))

[?25l[?1c:[?25h[?0c:$put =string(reverse(sort(l)))

[?25l[?1c:[?25h[?0c:$put =string(sort(reverse(sort(l))))

[?25l[?1c:[?25h[?0c:$put =string(uniq(sort(l)))

[?25l[?1c:[?25h[?0c:let l=[7, 9, 'one', 18, 12, 22, 'two', 10.0e-16, -1, 'three', 0xf

f, 0.22, 'four']

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 'n'))

[?25l[?1c:[?25h[?0c:let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'bar', 

'BAR', 'Bar', 'Foo', 'FOO', 'foo', 'FOOBAR', {}, []]

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 1))

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 'i'))

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l)))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" splitting a string to a List

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb '))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W\+', 0))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W\+', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W', 1))

[?25l[?1c:[?25h[?0c:$put =string(split(':aa::bb:', ':', 0))

[?25l[?1c:[?25h[?0c:$put =string(split(':aa::bb:', ':', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('aa,,bb, cc,', ',\s*', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('abc', '\zs'))

[?25l[?1c:[?25h[?0c:$put =string(split('abc', '\zs', 1))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" compare recursively linked list and dict

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4]

[?25l[?1c:[?25h[?0c:let d = {'1': 1, '2': l, '3': 3}

[?25l[?1c:[?25h[?0c:let l[1] = d

[?25l[?1c:[?25h[?0c:$put =(l == l)

[?25l[?1c:[?25h[?0c:$put =(d == d)

[?25l[?1c:[?25h[?0c:$put =(l != deepcopy(l))

[?25l[?1c:[?25h[?0c:$put =(d != deepcopy(d))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" compare complex recursively linked list and dict

[?25l[?1c:[?25h[?0c:let l = []

[?25l[?1c:[?25h[?0c:call add(l, l)

[?25l[?1c:[?25h[?0c:let dict4 = {"l": l}

[?25l[?1c:[?25h[?0c:call add(dict4.l, dict4)

[?25l[?1c:[?25h[?0c:let lcopy = deepcopy(l)

[?25l[?1c:[?25h[?0c:let dict4copy = deepcopy(dict4)

[?25l[?1c:[?25h[?0c:$put =(l == lcopy)

[?25l[?1c:[?25h[?0c:$put =(dict4 == dict4copy)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same List to extend()

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4, 5]

[?25l[?1c:[?25h[?0c:call extend(l, l)

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same Dict to extend()

[?25l[?1c:[?25h[?0c:let d = { 'a': {'b': 'B'}}

[?25l[?1c:[?25h[?0c:call extend(d, d)

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same Dict to extend() with "error"

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call extend(d, d, "error")

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" test for range assign

[?25l[?1c:[?25h[?0c:let l = [0]

[?25l[?1c:[?25h[?0c:let l[:] = [1, 2]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:endfun
[?25l[?1c:$put =string(l)
: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:[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Test(1, 2, [3, 4], {5: 6})  " This may take a while
[?25l[?1cError detected while processing function Test:
line   76:

E684: list index out of range: 1

line   91:

E684: list index out of range: 2

line  271:

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

line  441:

E741: Value is locked: l[0:1]

line  443:

E741: Value is locked: l[1:2]

line  446:

E741: Value is locked: l[0:1] = [0, 1]

line  448:

E741: Value is locked: l[1:2] = [0, 1]

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb']
['aa', 'bb']
['', 'aa', 'bb', '']
['', '', 'aa', '', 'bb', '', '']
['aa', '', 'bb']
['', 'aa', '', 'bb', '']
['aa', '', 'bb', 'cc', '']
['a', 'b', 'c']
['', 'a', '', 'b', '', 'c', '']
1
1
0
0
1
1
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
{'a': {'b': 'B'}}
Vim(call):E737: a
{'a': {'b': 'B'}}
[1, 2]
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cdelfunc Test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cunlet dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for patch 7.3.637
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a = 'No error caught'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?1c[?25h[?0c[?25l[?1c=[?25h[?0ca
[?25l[?1cVim(foldopen):E490:[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?1cError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'

)|endtry

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb'][?25h[?0c[?25l[?1c
=[?25h[?0ca
[?25l[?1cError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 197 lines, 3821 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test55 = test61; then \
#	  if diff test.out test55.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test55.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test55.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test56.in
[?25h[?8c[?25h[?0c[?25l[?1c"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 <SID>DoLast()
  call append(line('$'), "last line")
endfun
fun s:DoNothing()
  call append(line('$'), "nothing line")
endfun
nnoremap <buffer> _x    :call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
end:
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for script-local function.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 120 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/+1,/^end:/-1w! Xtest.vim
[?25l[?1c"Xtest.vim" [New] 7L, 251C written[?25h[?0c[?25l[?1c:[?25h[?0csource Xtest.vim
[?25l[?1c[?25h[?0c[?25l[?1c:call <SNR>4_DoNothing()|call <SNR>4_DoLast()|delfunc <SNR>4_DoNothing|delfunc 

<SNR>4_DoLast
Press ENTER or type command to continue[?25h[?0c[?25l[?1cTest for script-local function.     vim: set ft=vim :nothing line[?25h[?0c[?25l[?1c:[?25h[?0c$-1,$wq! test.out
[?25l[?1c"test.out" [New] 2L, 23C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test56 = test61; then \
#	  if diff test.out test56.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test56.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test56.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test57.in
[?25h[?8c[?25h[?0c[?25l[?1c"test57.in" 545 lines, 4110 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :sort command.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 33 lines, 920 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:/^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
:/^t28:/+1,/^t29/-1sort b
:/^t29:/+1,/^t30/-1sort b
:/^t30:/+1,/^t31/-1sort f
:/^t01:/,$wq! test.out
ENDTEST

t01: alphebetical
abc
ab
a
a321
a123
a122
b321
b123
c123d[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^t01:/+1,/^t02/-1sort
[?25l[?1c 123b2
a123
a
ababc[?25h[?0c[?25l[?1c:[?25h[?0c/^t02:/+1,/^t03/-1sort n
[?25l[?1cb123
b321
b321
b321b
b322b
c123d
c321d
t02: numeric
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t03:/+1,/^t04/-1sort x
[?25l[?1ca123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t03: hexadecimal


a
ab
abc
 123b
a122
a123
a321
b123
b321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t04:/+1,/^t05/-1sort u
[?25l[?1cb321b
b322b
c123d
c321d
t04: alpha, unique[?25h[?0c[?25l[?1c
:[?25h[?0c/^t05:/+1,/^t06/-1sort!
[?25l[?1ca123
a321
ab
abc
b123
b321
b321b
b322b
c123d
c321d
t05: alpha, reverse
c321d
c123d
b322b
b321b
b321
b321
b123
abc
ab
a321
a123
a122[?25h[?0c[?25l[?1c:[?25h[?0c/^t06:/+1,/^t07/-1sort! n        
[?25l[?1ca
 123b


t06: numeric, reverse
b322b[?25h[?0c[?25l[?1c
:[?25h[?0c/^t07:/+1,/^t08/-1sort! u
[?25l[?1c123b
c123d
b123
a123
a122


a
ab
abc
t07: unique, reverse
c321d
c123d
b322b
b321b
b321
b123
abc
ab
a321
a123
a122
a[?25h[?0c[?25l[?1c:[?25h[?0c/^t08:/+1,/^t09/-1sort o         
[?25l[?1c123b

t08: octal
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t09:/+1,/^t10/-1sort! x        
[?25l[?1ca123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t09: reverse, hexadecimal
c321d
c123d
b322b
b321b
b321
b321
b123
a321
a123
a122
 123b
abc[?25h[?0c[?25l[?1c:[?25h[?0c/^t10:/+1,/^t11/-1sort/./        
[?25l[?1cab
a


t10: alpha, skip first character
a[?25h[?0c[?25l[?1c
:[?25h[?0c/^t11:/+1,/^t12/-1sort/../       
[?25l[?1c123b
c123d
a321
b321
b321
b321b
c321d
b322b
ab
abc
t11: alpha, skip first 2 characters
ab
a


a321
b321
b321
b321b
c321d
a122
b322b
a123[?25h[?0c[?25l[?1c:[?25h[?0c/^t12:/+1,/^t13/-1sort/../u
[?25l[?1cb123
 123b
c123d
abc
t12: alpha, unique, skip first 2 characters
ab[?25h[?0c[?25l[?1c
:[?25h[?0c/^t13:/+1,/^t14/-1sort/./n
[?25l[?1cb321
b321b
c321d
a122
b322b
a123
b123
 123b
c123d
abc
t13: numeric, skip first character
abc
ab
a


a122
a123
b123
c123d
 123b
a321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t14:/+1,/^t15/-1sort/./r
[?25l[?1cc321d
b321
b321b
b322b
t14: alpha, sort on first character[?25h[?0c[?25l[?1c
:[?25h[?0c/^t15:/+1,/^t16/-1sort/../r
[?25l[?1ca321
a123
a122
b321
b123
b322b
b321
b321b
c123d
c321d
t15: alpha, sort on first 2 characters
a123b
a123
a122
a321
abc
ab
b123
b321
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t16:/+1,/^t17/-1sort/./rn
[?25l[?1cb321
b321b
c123d
c321d
t16: numeric, sort on first character
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t17:/+1,/^t18/-1sort/\d/
[?25l[?1cb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t17: alpha, skip past first digit
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t18:/+1,/^t19/-1sort/\d/r
[?25l[?1ca123
b123
 123b
c123d
t18: alpha, sort on first digit
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t19:/+1,/^t20/-1sort/\d/n
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t19: numeric, skip past first digit
abc
ab
a


a321
b321
c321d
b321
b321b
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t20:/+1,/^t21/-1sort/\d/rn
[?25l[?1ca123
b123
c123d
 123b
t20: numeric, sort on first digit
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t21:/+1,/^t22/-1sort/\d\d/
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t21: alpha, skip past first 2 digits
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t22:/+1,/^t23/-1sort/\d\d/n
[?25l[?1ca123
b123
 123b
c123d
t22: numeric, skip past first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t23:/+1,/^t24/-1sort/\d\d/x
[?25l[?1cb321
c321d
b321
b321b
a122
b322b
a123
b123
c123d
 123b
t23: hexadecimal, skip past first 2 digits
abc
ab
a


a321
b321
b321
a122
a123
b123
b321b[?25h[?0c[?25l[?1c:[?25h[?0c/^t24:/+1,/^t25/-1sort/\d\d/r
[?25l[?1cc321d
b322b
 123b
c123d
t24: alpha, sort on first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t25:/+1,/^t26/-1sort/\d\d/rn
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t25: numeric, sort on first 2 digits
abc
ab
a


a123
a122
b123
c123d
 123b
a321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t26:/+1,/^t27/-1sort/\d\d/rx
[?25l[?1cc321d
b322b
b321
b321b
t26: hexadecimal, sort on first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t27:/+1,/^t28/-1sort no
[?25l[?1cE474: Invalid argument[?25h[?0c[?25l[?1c:[?25h[?0c/^t28:/+1,/^t29/-1sort b
[?25l[?1cb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t28: binary


0b000000
0b001000
0b010000
0b100000
0b100010
0b100010
0b100100
0b101000
0b101000
0b101001[?25h[?0c[?25l[?1c:[?25h[?0c/^t29:/+1,/^t30/-1sort b
[?25l[?1c0b101001
0b101010
0b101100
0b111000
t29: binary with leading characters[?25h[?0c[?25l[?1c
:[?25h[?0c/^t30:/+1,/^t31/-1sort f
[?25l[?1ca0b001000
0b010000
ab0b100000
0b100010
0b100010
 0b100100
0b101000
0b101000
 0b101001
a0b101001
0b101010
b0b101100
b0b111000
t30: float


-1.1e3
-1.01e3
1.15e-6
0.88
1.234
123.456
t31: done[?25h[?0c[?25l[?1c:[?25h[?0c/^t01:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 501 lines, 3105 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test57 = test61; then \
#	  if diff test.out test57.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test57.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test57.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test60.in
[?25h[?8c[?25h[?0c[?25l[?1c"test60.in" 601 lines, 13116 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for the exists() and has() functions.  vim: set ft=vim ts=8 sw=2 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 596 lines, 13023 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! RunTest(str, result)
[?25l[?1c
:  [?25h[?0c    if exists(a:str) == a:result

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED: Checking for " . a:str

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0cendfunction
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x[?25h[?0c[?25l[?1c
:[?25h[?0cfunction! TestExists()
[?25l[?1c
:  [?25h[?0c    augroup myagroup

[?25l[?1c:  [?25h[?0c^Iautocmd! BufEnter       *.my     echo "myfile edited"

[?25l[?1c:  [?25h[?0c^Iautocmd! FuncUndefined  UndefFun exec "fu UndefFun()\nendfu"

[?25l[?1c:  [?25h[?0c    augroup END

[?25l[?1c:  [?25h[?0c    set rtp+=./sautest

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    let test_cases = []

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " valid autocmd group

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup', 1]]

[?25l[?1c:  [?25h[?0c    " valid autocmd group with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup+b', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group, event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter#*.my', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter#*.my', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd group or event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#xyzagroup', 0]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd group and valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#xyzagroup#BufEnter', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event with no matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#CmdwinEnter', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and non-existing autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#xyzacmd', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event and non-matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter#xyzpat', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event and non-matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter#xyzpat', 0]]

[?25l[?1c:  [?25h[?0c    " Empty autocmd group, event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['###', 0]]

[?25l[?1c:  [?25h[?0c    " Empty autocmd group and event or empty event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['##', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['##FileReadCmd', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['##MySpecialCmd', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&textwidth', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&tw', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['&tw-', 0]]

[?25l[?1c:  [?25h[?0c    " Global option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&g:errorformat', 1]]

[?25l[?1c:  [?25h[?0c    " Local option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&l:errorformat', 1]]

[?25l[?1c:  [?25h[?0c    " Negative form of existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&nojoinspaces', 0]]

[?25l[?1c:  [?25h[?0c    " Negative form of existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&nojs', 0]]

[?25l[?1c:  [?25h[?0c    " Non-existing option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&myxyzoption', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['+incsearch', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['+incsearch!1', 0]]

[?25l[?1c:  [?25h[?0c    " Existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['+is', 1]]

[?25l[?1c:  [?25h[?0c    " Existing option that is hidden.

[?25l[?1c:  [?25h[?0c    let test_cases += [['+autoprint', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing environment variable

[?25l[?1c:  [?25h[?0c    let $EDITOR_NAME = 'Vim Editor'

[?25l[?1c:  [?25h[?0c    let test_cases += [['$EDITOR_NAME', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing environment variable

[?25l[?1c:  [?25h[?0c    let test_cases += [['$NON_ENV_VAR', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr', 1]]

[?25l[?1c:  [?25h[?0c    " Valid internal function with ()

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr()', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing internal function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*myxyzfunc', 0]]

[?25l[?1c:  [?25h[?0c    " Valid internal function with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr&6', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid user defined function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*TestExists', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing user defined function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*MyxyzFunc', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Function that may be created by FuncUndefined event

[?25l[?1c:  [?25h[?0c    let test_cases += [['*UndefFun', 0]]

[?25l[?1c:  [?25h[?0c    " Function that may be created by script autoloading

[?25l[?1c:  [?25h[?0c    let test_cases += [['*footest#F', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    redir! > test.out

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    for [test_case, result] in test_cases

[?25l[?1c:    [?25h[?0c        echo test_case . ": " . result

[?25l[?1c:    [?25h[?0c        call RunTest(test_case, result)

[?25l[?1c:    [?25h[?0c    endfor

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (full match)

[?25l[?1c:  [?25h[?0c    echo ':edit: 2'

[?25l[?1c:  [?25h[?0c    if exists(':edit') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (full match) with garbage

[?25l[?1c:  [?25h[?0c    echo ':edit/a: 0'

[?25l[?1c:  [?25h[?0c    if exists(':edit/a') == 0

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (partial match)

[?25l[?1c:  [?25h[?0c    echo ':q: 1'

[?25l[?1c:  [?25h[?0c    if exists(':q') == 1

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing internal command

[?25l[?1c:  [?25h[?0c    echo ':invalidcmd: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':invalidcmd')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " User defined command (full match)

[?25l[?1c:  [?25h[?0c    command! MyCmd :echo 'My command'

[?25l[?1c:  [?25h[?0c    echo ':MyCmd: 2'

[?25l[?1c:  [?25h[?0c    if exists(':MyCmd') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " User defined command (partial match)

[?25l[?1c:  [?25h[?0c    command! MyOtherCmd :echo 'Another command'

[?25l[?1c:  [?25h[?0c    echo ':My: 3'

[?25l[?1c:  [?25h[?0c    if exists(':My') == 3

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Command modifier

[?25l[?1c:  [?25h[?0c    echo ':rightbelow: 2'

[?25l[?1c:  [?25h[?0c    if exists(':rightbelow') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing user defined command (full match)

[?25l[?1c:  [?25h[?0c    delcommand MyCmd

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    echo ':MyCmd: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':MyCmd')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing user defined command (partial match)

[?25l[?1c:  [?25h[?0c    delcommand MyOtherCmd

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    echo ':My: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':My')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local variable

[?25l[?1c:  [?25h[?0c    let local_var = 1

[?25l[?1c:  [?25h[?0c    echo 'local_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local variable with garbage

[?25l[?1c:  [?25h[?0c    let local_var = 1

[?25l[?1c:  [?25h[?0c    echo 'local_var%n: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_var%n')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local variable

[?25l[?1c:  [?25h[?0c    unlet local_var

[?25l[?1c:  [?25h[?0c    echo 'local_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing autoload variable that may be autoloaded

[?25l[?1c:  [?25h[?0c    echo 'footest#x: 0'

[?25l[?1c:  [?25h[?0c    if !exists('footest#x')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list

[?25l[?1c:  [?25h[?0c    let local_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'local_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list item

[?25l[?1c:  [?25h[?0c    echo 'local_list[1]: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_list[1]')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list item with garbage

[?25l[?1c:  [?25h[?0c    echo 'local_list[1]+5: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list[1]+5')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Invalid local list item

[?25l[?1c:  [?25h[?0c    echo 'local_list[2]: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list[2]')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local list

[?25l[?1c:  [?25h[?0c    unlet local_list

[?25l[?1c:  [?25h[?0c    echo 'local_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local dictionary

[?25l[?1c:  [?25h[?0c    let local_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'local_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local dictionary

[?25l[?1c:  [?25h[?0c    unlet local_dict

[?25l[?1c:  [?25h[?0c    echo 'local_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing local curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "local"

[?25l[?1c:  [?25h[?0c    let curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global variable

[?25l[?1c:  [?25h[?0c    let g:global_var = 1

[?25l[?1c:  [?25h[?0c    echo 'g:global_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global variable with garbage

[?25l[?1c:  [?25h[?0c    echo 'g:global_var-n: 1'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_var-n')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global variable

[?25l[?1c:  [?25h[?0c    unlet g:global_var

[?25l[?1c:  [?25h[?0c    echo 'g:global_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global list

[?25l[?1c:  [?25h[?0c    let g:global_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'g:global_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global list

[?25l[?1c:  [?25h[?0c    unlet g:global_list

[?25l[?1c:  [?25h[?0c    echo 'g:global_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global dictionary

[?25l[?1c:  [?25h[?0c    let g:global_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'g:global_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global dictionary

[?25l[?1c:  [?25h[?0c    unlet g:global_dict

[?25l[?1c:  [?25h[?0c    echo 'g:global_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "global"

[?25l[?1c:  [?25h[?0c    let g:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'g:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet g:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'g:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window variable

[?25l[?1c:  [?25h[?0c    echo 'w:window_var: 1'

[?25l[?1c:  [?25h[?0c    let w:window_var = 1

[?25l[?1c:  [?25h[?0c    if exists('w:window_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window variable

[?25l[?1c:  [?25h[?0c    unlet w:window_var

[?25l[?1c:  [?25h[?0c    echo 'w:window_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window list

[?25l[?1c:  [?25h[?0c    let w:window_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'w:window_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:window_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window list

[?25l[?1c:  [?25h[?0c    unlet w:window_list

[?25l[?1c:  [?25h[?0c    echo 'w:window_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window dictionary

[?25l[?1c:  [?25h[?0c    let w:window_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'w:window_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:window_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window dictionary

[?25l[?1c:  [?25h[?0c    unlet w:window_dict

[?25l[?1c:  [?25h[?0c    echo 'w:window_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "window"

[?25l[?1c:  [?25h[?0c    let w:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'w:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet w:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'w:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer variable

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_var: 1'

[?25l[?1c:  [?25h[?0c    let b:buffer_var = 1

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer variable

[?25l[?1c:  [?25h[?0c    unlet b:buffer_var

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer list

[?25l[?1c:  [?25h[?0c    let b:buffer_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer list

[?25l[?1c:  [?25h[?0c    unlet b:buffer_list

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer dictionary

[?25l[?1c:  [?25h[?0c    let b:buffer_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer dictionary

[?25l[?1c:  [?25h[?0c    unlet b:buffer_dict

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "buffer"

[?25l[?1c:  [?25h[?0c    let b:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'b:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet b:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'b:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Script-local tests

[?25l[?1c:  [?25h[?0c    source test60.vim

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing Vim internal variable

[?25l[?1c:  [?25h[?0c    echo 'v:version: 1'

[?25l[?1c:  [?25h[?0c    if exists('v:version')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing Vim internal variable

[?25l[?1c:  [?25h[?0c    echo 'v:non_exists_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('v:non_exists_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Function arguments

[?25l[?1c:  [?25h[?0c    function TestFuncArg(func_arg, ...)

[?25l[?1c:    [?25h[?0c        echo 'a:func_arg: 1'

[?25l[?1c:    [?25h[?0c        if exists('a:func_arg')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:non_exists_arg: 0'

[?25l[?1c:    [?25h[?0c        if !exists('a:non_exists_arg')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:1: 1'

[?25l[?1c:    [?25h[?0c        if exists('a:1')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:2: 0'

[?25l[?1c:    [?25h[?0c        if !exists('a:2')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c    endfunction

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    call TestFuncArg("arg1", "arg2")

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    echo ' g:footest#x =' g:footest#x

[?25l[?1c:    [?25h[?0c    echo '   footest#F()' footest#F()

[?25l[?1c:    [?25h[?0c    echo 'UndefFun()' UndefFun()

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    redir END

[?25l[?1c:    [?25h[?0cendfunction
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0ccall TestExists()
[?25l[?1c#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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0cdelfunc TestExists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc RunTest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestFuncArg
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit! test.out
[?25l[?1c"test.out" [Incomplete last line] 206 lines, 1940 characters#myagroup: 1OK
#myagroup+b: 0OK
#myagroup#BufEnter: 1OK#myagroup#BufEnter#*.my: 1OK
#BufEnter: 1OK#BufEnter#*.my: 1OK
#xyzagroup: 0OK#xyzagroup#BufEnter: 0
OK#myagroup#CmdwinEnter: 0
OK
#myagroup#xyzacmd: 0
OK#myagroup#BufEnter#xyzpat: 0
OK[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 206 lines, 1941 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test60 = test61; then \
#	  if diff test.out test60.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test60.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test60.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test64.in
[?25h[?8c[?25h[?0c[?25l[?1c"test64.in" 654 lines, 27565 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for regexp patterns without multi-byte support.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 621 lines, 27090 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:for pat in [' \ze*', ' \zs*']
:  try
:    let l = matchlist('x x', pat)
:    $put ='E888 NOT detected for ' . pat
:  catch
:    $put ='E888 detected for ' . pat
:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="">Ta 5</Title>
<T="">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" tl is a List of Lists with:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp engine
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp pattern
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    text to test the pattern on
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected match (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 1 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 2 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    etc.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  When there is no match use only the first two items.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Previously written tests """"""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b', 'abcdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abbdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c*', 'ccc', 'ccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c*', 'abdef', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\+', 'abdef']) "no match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"operator \|
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c\?', 'ccb', 'c'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\?', 'abd', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\?', 'abccd', 'bc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1}', 'ab', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'caad', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aba'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'abaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vb{1}', 'abca', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vba{2}', 'abaa', 'baa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vba{3}', 'aabaac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'dabc', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'acb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){0,2}', 'acb', "", ""])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){0,2}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1,2}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1,2}', 'ababc', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2,4}', 'ababcab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2,4}', 'abcababa', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'cdababe', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abacabab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'daaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'daaac', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'aaa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})+', 'adaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})+', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'aa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){2}', 'aaaa', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+){2}', 'dadaac', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){2}', 'daaac', 'aaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){3}', 'daac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){2}', 'dac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)+', 'daac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)+', 'aaa', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+){1,2}', 'aaa', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{3})+', 'daaaac', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b|c)+', 'aacb', 'aacb', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b|c){2}', 'abcb', 'ab', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc){2}', 'abcabd', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc){2}', 'abdabcabc','abcabc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a*', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+)+', 'ab', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{0,2})+', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((a*)+)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)*)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1,3}', 'aab', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2,3}', 'abaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}|b{2}', 'abab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}c', 'aabbccccccccccccc', 'abbc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va(bc){2}d', 'aabcbfbc' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'a', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'aa', 'aa' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'aaa', 'aaa' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'bbbabcc', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*b*|a*c*', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1}b{1}|a{1}b{1}', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"submatches
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)', 'ab', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)(b)', 'ab', 'ab', 'a', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)|(b)', 'ab', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', 'aaaa', 'aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x', 'abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" Simple tests """""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Search single groups
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'baced'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', '                    ab           ', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Search multi-modifiers
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'xcd', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'xxxxxxxxxxxxxxxxsofijiojgf', 'xxxxxxxxxxxxxxxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'abcdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" no match here
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abcdoin'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abcdeoijdfxxiuhfij', 'xx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'xxxxx', 'xxxxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abc x siufhiush xxxxxxxxx', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'x sdfoij', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'abc sfoij', '']) " empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'xxxxxxxxx c', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'x sdfoij', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'abc sfoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'xxxxxxxxxx c', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,0}', 'abcdfdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a?'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,1}', 'asiubid axxxaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a\{0,1}'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{1,0}', 'asiubid axxxaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aa siofuh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aaaaa asfoij afaa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aaaaaaaa', 'aaaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0}', 'asoiuj', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'iuash fiusahfliusah fiushfilushfi uhsaifuh askfj na

sfvius afg aaaa sfiuhuhiushf', 'aa'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,}', 'oij sdigfusnf', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,}', 'aaaaa aa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,}', 'sdfiougjdsafg'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,}', 'aaaaasfoij ', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{5,}', 'xxaaaaxxx '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{5,}', 'xxaaaaaxxx ', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,5}', 'abcd', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,5}', 'aaaaaaaaaa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" leading star as normal char when \{} follows
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '***'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '****', '****'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '*****', '*****'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{}', 'bbbcddiuhfcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{}', 'aaaaioudfh coisf jda', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,0}', 'abcdfdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" anti-greedy version of 'a?'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,1}', 'asiubid axxxaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aa siofuh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aaaaa asfoij afaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aaaaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0}', 'asoiuj', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2}', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,}', 'oij sdigfusnf', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,}', 'aaaaa aa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,}', 'sdfiougjdsafg'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,}', 'aaaaasfoij ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,5}', 'abcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,5}', 'aaaaaaaaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" anti-greedy version of 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-}', 'bbbcddiuhfcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-}', 'aaaaioudfh coisf jda', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test groups of characters and submatches
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(abc\)*', 'abcabcabc', 'abcabcabc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(ab\)\+', 'abababaaaaa', 'ababab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(abaaaaa\)*cd', 'cd', 'cd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(test1\)\? \(test2\)\?', 'test1 test3', 'test1 ', 'test1', 

''])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(test1\)\= \(test2\) \(test4443\)\=', ' test2 test4443 yupi

iiiiiiiiii', ' test2 test4443', '', 'test2', 'test4443'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\(sub1\) hello \(sub 2\)\)', 'asterix sub1 hello sub 2 obe

lix', 'sub1 hello sub 2', 'sub1 hello sub 2', 'sub1', 'sub 2'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\(\(yyxxzz\)\)\)', 'abcdddsfiusfyyzzxxyyxxzz', 'yyxxzz', '

yyxxzz', 'yyxxzz', 'yyxxzz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+|c+)+', 'abcccaba', 'abcccab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a(c*)+b)+', 'acbababaaa', 'acbabab', 'ab', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b*)+', 'aaaa', 'aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p*', 'aá ^I', 'aá '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test greedy-ness and lazy-ness
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,7}','aaaaaaaaaaaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,7}','aaaaaaaaaaaaaaaaaaaa', 'aaaaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vx(.{-,8})yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz','ayxa

','xayzxayz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vx(.*)yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz', 'ayxayzx

ayzxa',''])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){-2,3}','aaaaaaa','aaaa','aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{-1,3})+', 'aa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\zs\( x\|x$\)', ' x', ' x', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\zs\(x\| x$\)', ' x', ' x', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\ze\(x\| x$\)', ' x', '', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(\s\{-}\)\(x\| x$\)', ' x', ' x', '', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test Character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\d\+e\d\d','test 10e23 fd','10e23'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test collections and character range []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v[a]', 'abcd', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a[bcd]', 'abcd', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a[b-d]', 'acbd', 'ac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-d][e-f][x-x]d', 'cexdxx', 'cexd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v[[:alpha:]]+', 'abcdefghijklmnopqrstuvwxyz6','abcdefghijkl

mnopqrstuvwxyz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:]\+]', '6x8','x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]\+','abcabcabc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]','defghiasijvoinasoiunbvb','d'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]\+','ddddddda','ddddddd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-d]\+','aaaAAAZIHFNCddd','AAAZIHFNC'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*','iiiiiiii',''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*','abcdefgh','abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-f]\+','abcdefgh','gh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-c]\{-3,6}','abcabc','abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^[:alpha:]]\+','abcccadfoij7787ysf287yrnccdu','7787'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[-a]', '-', '-'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-]', '-', '-'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*\c','ABCDEFGH','ABCDEF'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[abc][xyz]\c','-af-AF-BY--','BY'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" filename regexp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[-./[:alnum:]_~]\+', 'log13.file', 'log13.file'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" special chars
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[\]\^\-\\]\+', '\^\\\-\---^', '\^\\\-\---^'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" collation elem
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[.a.]]\+', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" middle of regexp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc[0-9]*ddd', 'siuhabc ii'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc[0-9]*ddd', 'adf abc44482ddd oijs', 'abc44482ddd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[0-9]\+', 'asfi9888u', '9888'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9\n]\+', 'asfi9888u', '9888'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[0-9]\+', "asfi\n9888u", "\n9888"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_f', "  \na ", "\n"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_f\+', "  \na ", "\na"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9A-Za-z-_.]\+', " @0_a.A-{ ", "0_a.A-"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test start/end of line, start/end of file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^a.', "a_\nb ", "a_"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^a.', "b a \na_"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a$', " a\n "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a$', " a b\n_a", "_a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%^a.', "a a\na", "a "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%^a', " a \na "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a\%$', " a\n "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a\%$', " a\n_a", "_a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test recognition of character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Tests for \z features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" match ends at \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'xx \ze test', 'xx '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\zeend', 'oij abcend', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaxx', ' aabb ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaxx', ' aaxx ', 'aaxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aabb\|aa\zebb', ' aabb ', 'aabb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaebb', ' aabb ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" match starts at \zs
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\zsdd', 'ddabcddxyzt', 'dd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa \zsax', ' ax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if 

last'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\>\zs.', 'aword. ', '.'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is   [a t', '  '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Tests for \@= and \& features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=', 'abc', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=cd', 'abcd', 'abcd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=', 'ababc', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" will never match, no matter the input text
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abcd\@=e', 'abcd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" will never match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abcd\@=e', 'any text in here ... '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc)@=..', 'xabcd', 'ab', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(.*John\)\@=.*Bob', 'here is John, and here is B'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(John.*\)\@=.*Bob', 'John is Bobs friend', 'John is Bob', '

John is Bobs friend'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<\S\+\())\)\@=', '$((i=i+1))', 'i=i+1', '))'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.*John\&.*Bob', 'here is John, and here is B'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.*John\&.*Bob', 'John is Bobs friend', 'John is Bob'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(test1)@=.*yep', 'this is a test1, yep it is', 'test1, yep

', 'test1'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\(bar\)\@!', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\(bar\)\@!', 'foo bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if then else'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if else ', 'if else ', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@!bar', 'foobar', 'bar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@!...bar', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' bar foo '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo bar '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo xxx ', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ ]\@!\p\%([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:']

)[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ ]\@!\p\([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:', 

's'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'm\k\+_\@=\%(_\@!\k\)\@<=\k\+e', 'mx__xe', 'mx__xe'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%(\U\@<=S\k*\|S\l\)R', 'SuR', 'SuR'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Combining different tests and features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:]]\{-2,6}', '787abcdiuhsasiuhb4', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '', 'abcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(())', 'any possible text', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v%(ab(xyz)c)', '   abxyzc ', 'abxyzc', 'xyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(test|)empty', 'tesempty', 'empty', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|aa)(a|aa)', 'aaa', 'aa', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" \%u and friends
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%d32', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%o40', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%x20', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%u0020', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%U00000020', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%d0', "yes\x0ano", "\x0a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" \%[abc]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'fobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobar', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'fooxx', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobxx', 'foob'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobaxx', 'fooba'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobarxx', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]x', 'foobxx', 'foobx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]x', 'foobarxx', 'foobarx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'barxx', 'barx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'bxx', 'bx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'xxx', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b\%[[ao]r]', 'bar bor', 'bar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b\%[[]]r]', 'b]r bor', 'b]r'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '@\%[\w\-]*', '<http://john.net/pandoc/>[@pandoc]', '@pandoc'

])[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Alternatives, must use first longest match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'goo\|go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<goo\|\<go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<goo\|go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Back references
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\i\+\) \1', ' abc abc', 'abc abc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\i\+\) \1', 'xgoo goox', 'goo goo', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a\)\(b\)\(c\)\(dd\)\(e\)\(f\)\(g\)\(h\)\(i\)\1\2\3\4\5\6\7

\8\9', 'xabcddefghiabcddefghix', 'abcddefghiabcddefghi', 'a', 'b', 'c', 'dd', 'e

', 'f', 'g', 'h', 'i'])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\d*\)a \1b', ' a b ', 'a b', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.\(.\).\_..\1.', "aaa\naaa\nb", "aaa\naaa", 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.com', 'foo.bat/foo

.com', 'bat'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.bat'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<=$', 'foo.bat/foo.bat', 'foo.bat/foo

.bat', 'bat', 'bat'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}', '2013-06-27${0}', '$

{0}', '0'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(a*\)\1$', 'aaaaaaaa', 'aaaaaaaa', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(a\{-2,}\)\1\+$', 'aaaaaaaaa', 'aaaaaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Look-behind with limit
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@1<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@2<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<<

'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@1<=span.', 'xxspanxxxx<spanxx<<spanyyy'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@2<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<

<'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<!bar.', 'xx foobar1 xbar2 xx', 'bar2'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" look-behind match in front of a zero-width item
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" test header'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" Last Changed: 1970', '19

70'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=\>', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" complicated look-behind match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^[a-z]\+\ze \&\(asdf\)\@<!', 'foo bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" \@>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a*\)\@>a', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(.\{-}b\)\@>.', '  abcbd', '  abc', '  ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TODO: BT engine does not restore submatch after failure
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" "\_" prepended negated collection matches EOL
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Requiring lots of states.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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-"])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Skip adding state twice
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=', "#if FOO", 

"#if", ' FOO'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""" Test \%V atom
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%>70vGesamt', 'Jean-Michel Charlier & Victor Hubinon\Gesamt

ausgabe [Salleck]    Buck Danny {Jean-Michel Charlier & Victor Hubinon}\Gesamtau

sgabe', 'Gesamt'])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let text = t[2]

[?25l[?1c:  [?25h[?0c:  let matchidx = 3

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    try

[?25l[?1c:      [?25h[?0c:      let l = matchlist(text, pat)

[?25l[?1c:      [?25h[?0c:    catch

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l[?1c:      [?25h[?0c:    endtry

[?25l[?1c:    [?25h[?0c:" check the match itself

[?25l[?1c:    [?25h[?0c:    if len(l) == 0 && len(t) > matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    elseif len(l) > 0 && len(t) == matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l[?1c:      [?25h[?0c:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if len(l) > 0

[?25l[?1c:      [?25h[?0c:"   check all the nine submatches

[?25l[?1c:      [?25h[?0c:      for i in range(1, 9)

[?25l[?1c:[?25h[?0c:        if len(t) <= matchidx + i

[?25l[?1c:[?25h[?0c:          let e = ''

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          let e = t[matchidx + i]

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:        if l[i] != e

[?25l[?1c:[?25h[?0c:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:      endfor

[?25l[?1c:      [?25h[?0c:      unlet i

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 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.*$\)\@=
OK 0 - \%>70vGesamt
OK 1 - \%>70vGesamt
OK 2 - \%>70vGesamt
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl e l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""""" multi-line tests """"""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" back references
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.\(.\).\_..\1.', ['aaa', 'aaa', 'b'], ['XX', 'b']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" line breaks
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\S.*\nx', ['abc', 'def', 'ghi', 'xjk', 'lmn'], ['abc', 'def'

, 'XXjk', 'lmn']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check that \_[0-9] matching EOL does not break a following \>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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', '']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check a pattern with a line break and ^ and $
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(^.\+\n\)\1', [' dog', ' dog', 'asdf'], ['XXasdf']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the multi-line tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='multi-line tests'
[?25l[?1c
multi-line tests[?25h[?0c[?25l[?1c
:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let before = t[2]

[?25l[?1c:  [?25h[?0c:  let after = t[3]

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re ==1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    new

[?25l[?1c:    [?25h[?0c:    call setline(1, before)

[?25l[?1c:    [?25h[?0c:    exe '%s/' . pat . '/XX/'

[?25l[?1c:    [?25h[?0c:    let result = getline(1, '$')

[?25l[?1c:    [?25h[?0c:    q!

[?25l[?1c:    [?25h[?0c:    if result != after

[?25l[?1c:      [?25h[?0c:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . string(before) . 

'\", expected: \"' . string(after) . '\", got: \"' . string(result) . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 2 - \%>70vGesamt
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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check that using a pattern on two lines doesn't get messed up by using
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" matchstr() with \ze in between.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset re=0
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Substitute here
[?25l[?1csearch hit BOTTOM, continuing at TOP:    let l = matchlist('x x', pat)
:    $put ='E888 NOT detected for ' . pat
:  catch
:    $put ='E888 detected for ' . pat
:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="">Ta 5</Title>
<T="">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c.+1,.+2s/""/\='"'.matchstr(getline("."), '\d\+\ze<').'"'
[?25l[?1c5">Ta 5</Title>
<T="7">Ac 7</Title>
[?25h[?0c[?25l[?1c/[?25h[?0c^Substitute here
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c.+1,.+2yank
[?25l[?1c[?25h[?0c[?25l[?1cOK 2 - \%>70vGesamt
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
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
<T="5">Ta 5</Title>
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check a pattern with a look beind crossing a line boundary
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Behind:
[?25l[?1csearch hit BOTTOM, continuing at TOP:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexe the thexethe
andaxand andaxand
oooxofor foroxooo
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/[?25h[?0c\(<\_[xy]\+\)\@3<=start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.yank
[?25l[?1c[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
xxstart3
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check matching Visual area
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Visual:
[?25l[?1csearch hit BOTTOM, continuing at TOP<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexe the thexethe
andaxand andaxand
oooxofor foroxooo
oooxofor foroxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf

Results of test64:
search hit BOTTOM, continuing at TOP[?25h[?0c
the[?25l[?1c[?25h[?0c[?25l[?1cxe the the[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Ve/E/g
[?25l[?1c3 substitutions on 1 linexE thE thE
[?25h[?0c
[?25l[?1candaxand andaxand 
[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Va/A/g
[?25l[?1c6 substitutions on 1 lineAndAxAnd AndAxAnd[?25h[?0c
ooo[?25l[?1c[?25h[?0c[?25l[?1cxofor foro[?25h[?0c[?25l[?1cx
oooxofor foro[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Vo/O/g
[?25l[?1c8 substitutions on 2 linesxOfOr fOrOx
oooxOfOr fOrO
[?25h[?0c[?25l[?1c:[?25h[?0c/^Visual/+1,/^Visual/+4yank
[?25l[?1csearch hit BOTTOM, continuing at TOP
4 lines yanked[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
4 more lines
thexE thE thExethe4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check matching marks
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Marks:
[?25l[?1csearch hit BOTTOM, continuing at TOPasdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf

Results of test64:
OK 0 - ab
OK 1 - ab
OK 2 - ab
OK 0 - b
OK 1 - b
OK 2 - b
search hit BOTTOM, continuing at TOP[?25h[?0c
asdf[?25l[?1c:[?25h[?0c.-4,.+6s/.\%>'s.*\%<'e../here/
[?25l[?1chereasdf[?25h[?0c
asdf
dfsa
dfsadf[?25l[?1c:[?25h[?0c.-4,.+6s/.\%>'s\_.*\%<'e../again/
[?25l[?1c
asdfagainasdfOK 0 - bc*[?25h[?0c[?25l[?1c:[?25h[?0c/^Marks:/+1,/^Marks:/+3yank
[?25l[?1csearch hit BOTTOM, continuing at TOP
3 lines yanked[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
3 more linesasdfhereasdf
asdfagainasdf3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check patterns matching cursor position.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc! Postest()
[?25l[?1c
:  [?25h[?0c new

[?25l[?1c:  [?25h[?0c call setline(1, ['ffooooo', 'boboooo', 'zoooooo', 'koooooo', 'moooooo', "\t

\t\tfoo", 'abababababababfoo', 'bababababababafoo', '********_', '        xxxxxx

xxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx

xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxx

xxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxx

x xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx xxxxxxxxx xxxx

xxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xx

xxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx xxxxxxxxxxxx x

xxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxx

xxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx'])

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 1, 0, 0])

[?25l[?1c:  [?25h[?0c s/\%>3c.//g

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 2, 4, 0])

[?25l[?1c:  [?25h[?0c s/\%#.*$//g

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 3, 0, 0])

[?25l[?1c:  [?25h[?0c s/\%<3c./_/g

[?25l[?1c:  [?25h[?0c %s/\%4l\%>5c./_/g

[?25l[?1c:  [?25h[?0c %s/\%6l\%>25v./_/g

[?25l[?1c:  [?25h[?0c %s/\%>6l\%3c./!/g

[?25l[?1c:  [?25h[?0c %s/\%>7l\%12c./?/g

[?25l[?1c:  [?25h[?0c %s/\%>7l\%<9l\%>5v\%<8v./#/g

[?25l[?1c:  [?25h[?0c $s/\%(|\u.*\)\@<=[^|\t]\+$//ge

[?25l[?1c:  [?25h[?0c 1,$yank

[?25l[?1c:  [?25h[?0c quit!

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

asdfhereasdf
asdfagainasdf[?25h[?0c[?25l[?1c20 - a\n^b$\n^cOK 1 - a\n^b$\n^c2
OK 0 - \(^.\+\n\)\1
OK 1 - \(^.\+\n\)\1
OK 2<T="5">Ta 5</Title>
<T="7">Ac 7</Title>xxstart3thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooooooxOfOr fOrOxoooasdfhereasdfasdfagainasdf~                                                                               [?25h[?0c[?25l[?1c
-0-[?25h[?0c[?25l[?1c
:[?25h[?0cset re=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1coooxOfOr fOrOxooo

asdfhereasdf
asdfagainasdf-0-ffobob__ooooo
koooo__moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx[?25h[?0c[?25l[?1c
-1-[?25h[?0c[?25l[?1c
:[?25h[?0cset re=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c-1-
ffo
bob
__ooooo
koooo__
moooooo
   f__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxx
xxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx x xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxxxxxxxx
xxxxxx  xxx xxxx xx xxxxxxxx xxx xxxxxxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-2-[?25h[?0c[?25l[?1c:[?25h[?0cset re=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c-2-
ffo
bob~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" start and end of buffer
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%^
[?25l[?1csearch 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTest[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cOK 2 - \v(a*)+
OK 0 - \v((ab)+)+
OK 1 - \v((ab)+)+
OK 2 - \v((ab)+)+
OK 0 - \v(((ab)+)+)+
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}[?25h[?0c[?25l[?1c/[?25h[?0c\%^..
[?25l[?1csearch 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTest[?25h[?0c[?25l[?1ct END[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cOK 0 - \v((ab)+)+
OK 1 - \v((ab)+)+
OK 2 - \v((ab)+)+
OK 0 - \v(((ab)+)+)+
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}[?25h[?0c[?25l[?1c/[?25h[?0c\%$
[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:" tl is a List of Lists with:
:"    regexp engine
:"    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'])[?25h[?0c[?25l[?1c/[?25h[?0c..\%$
[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1cEN[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cE[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check for detecting error
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset regexpengine=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor pat in [' \ze*', ' \zs*']
[?25l[?1c
:  [?25h[?0c:  try

[?25l[?1c:    [?25h[?0c:    let l = matchlist('x x', pat)

[?25l[?1c:    [?25h[?0c:    $put ='E888 NOT detected for ' . pat

[?25l[?1c:    [?25h[?0c:  catch

[?25l[?1c:    [?25h[?0c:    $put ='E888 detected for ' . pat

[?25l[?1c:    [?25h[?0c:  endtry

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?ba
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxxxxxxx xxx xxxxxxx xxxxxxxxx  xxx
xxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxx xxxx xxx xxxx xxx xxx 
xx x xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx xxxxxxx xxxxxxx x x xx xxxxxx xxxxxxx  xxxxxxxxxx xxxxx xxx xxx xxxxxxxx   xxxx xxx xxxxxx xxxxx xxxxx xx  xxxxxxxxx xxxx xxxxxxxxx xxxxx xxxxx xx xxxxxxxxx xxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxTestEND
EN888 detected for  \ze*
E888 detected for  \zs*[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" Write the results """""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/\%#=1^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1107 lines, 22167 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test64 = test61; then \
#	  if diff test.out test64.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test64.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test64.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test65.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for floating point and logical operators.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 89 lines, 2067 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("float")
[?25l[?1c
:  [?25h[?0c:  e! test.ok

[?25l[?1c:  [?25h[?0c:  wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:$put =float2nr(123.456)
:$put =float2nr(-123.456)
:$put ='AND'[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%f', 123.456)
[?25l[?1c
123.456000[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%e', 123.456)
[?25l[?1c
1.234560e+02[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 123.456)
[?25l[?1c
123.456[?25h[?0c[?25l[?1c
:[?25h[?0c" check we don't crash on division by zero
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cecho 1.0 / 0.0
[?25l[?1cinf[?25h[?0c[?25l[?1c:[?25h[?0c$put ='+='
[?25l[?1c
+=[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v += 6.543
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%g', v)
[?25l[?1c
7.777[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v += 5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%g', v)
[?25l[?1c
6.234[?25h[?0c[?25l[?1c
:[?25h[?0clet a = 5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a += 3.333
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(a)
[?25l[?1c
8.333[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='=='
[?25l[?1c
==[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =v == 1.234
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =v == 1.2341
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='add-subtract'
[?25l[?1c
add-subtract[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4 + 1.234)
[?25l[?1c
5.234[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 1.234 - 8)
[?25l[?1c
-6.766[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='mult-div'
[?25l[?1c
mult-div[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4 * 1.234)
[?25l[?1c
4.936[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4.0 / 1234)
[?25l[?1c
0.003241[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='dict'
[?25l[?1c
dict[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string({'x': 1.234, 'y': -2.0e20})
[?25l[?1c
{'x': 1.234, 'y': -2.0e20}[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='list'
[?25l[?1c
list[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string([-123.4, 2.0e-20])
[?25l[?1c
[-123.4, 2.0e-20][?25h[?0c[?25l[?1c
:[?25h[?0c$put ='abs'
[?25l[?1c
abs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs(1456))
[?25l[?1c
1456[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs(-4))
[?25l[?1c
4[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs([1, 2, 3]))
[?25l[?1cE745: Using a List as a Number
-1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', abs(14.56))
[?25l[?1c
14.56[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', abs(-54.32))
[?25l[?1c
54.32[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ceil'
[?25l[?1c
ceil[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(1.456))
[?25l[?1c
2.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(-5.456))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(-4.000))
[?25l[?1c
-4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='floor'
[?25l[?1c
floor[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(1.856))
[?25l[?1c
1.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(-5.456))
[?25l[?1c
-6.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(4.0))
[?25l[?1c
4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='log10'
[?25l[?1c
log10[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', log10(1000))
[?25l[?1c
3.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', log10(0.01000))
[?25l[?1c
-2.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='pow'
[?25l[?1c
pow[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', pow(3, 3.0))
[?25l[?1c
27.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', pow(2, 16))
[?25l[?1c
65536.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='round'
[?25l[?1c
round[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(0.456))
[?25l[?1c
0.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(4.5))
[?25l[?1c
5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(-4.50))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='sqrt'
[?25l[?1c
sqrt[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', sqrt(100))
[?25l[?1c
10.0[?25h[?0c[?25l[?1c
:[?25h[?0cecho sqrt(-4.01)
[?25l[?1cnan[?25h[?0c[?25l[?1c:[?25h[?0c$put ='str2float'
[?25l[?1c
str2float[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', str2float('1e40'))
[?25l[?1c
1.0e40[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='trunc'
[?25l[?1c
trunc[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(1.456))
[?25l[?1c
1.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(-5.456))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(4.000))
[?25l[?1c
4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='float2nr'
[?25l[?1c
float2nr[?25h[?0c[?25l[?1c
:[?25h[?0c$put =float2nr(123.456)
[?25l[?1c
123[?25h[?0c[?25l[?1c
:[?25h[?0c$put =float2nr(-123.456)
[?25l[?1c
-123[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='AND'
[?25l[?1c
AND[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 127)
[?25l[?1c
127[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 16)
[?25l[?1c
16[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 128)
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='OR'
[?25l[?1c
OR[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(16, 7)
[?25l[?1c
23[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(8, 7)
[?25l[?1c
15[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(0, 123)
[?25l[?1c
123[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='XOR'
[?25l[?1c
XOR[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 127)
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 16)
[?25l[?1c
111[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 128)
[?25l[?1c
255[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='invert'
[?25l[?1c
invert[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(127), 65535)
[?25l[?1c
65408[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(16), 65535)
[?25l[?1c
65519[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(128), 65535)
[?25l[?1c
65407[?25h[?0c[?25l[?1c
:[?25h[?0c$put =invert(1.0)
[?25l[?1cE805: Using a Float as a Number
0[?25h[?0c[?25l[?1c
:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 73 lines, 430 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test65 = test61; then \
#	  if diff test.out test65.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test65.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test65.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test66.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 234 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^one
[?25l[?1c[?25h[?0con[?25l[?1c[?25h[?0c[?25l[?1ce
one two three
one two three
one two three
one two three[?25h[?0c[?25l[?1c
4 fewer linesabcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cmore lines; before #1  0 seconds agoone two three
one two three
one two threeone two threeone two three[?25h[?0c[?25l[?1ce
one
one
one
on[?25h[?0c[?25l[?1c1
on1
on1
on1
on1[?25h[?0c[?25l[?1c:[?25h[?0c'<,'>w! test.out
[?25l[?1c"test.out" [New File] 5 lines, 70 characters written[?25h[?0c[?25l[?1c/[?25h[?0c^abcdefgh
[?25l[?1cabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
[?25h[?0c[?25l[?1ca
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?25h[?0c
[?25l[?1cabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc            defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci  [?25h[?0c[?25l[?1c
5 lines <ed 1 timeidefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0c$-5,$w >> test.out
[?25l[?1c"test.out"6 lines, 151 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$s/\s\+//g
[?25l[?1c7 substitutions on 4 linesabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
a
a
a[?25h[?0c[?25l[?1c
a
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghij
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?25h[?0c
[?25l[?1cabcdefghij[?25h[?0c
    ab[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc                       defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc                 defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci  [?25h[?0c[?25l[?1c
5 lines <ed 3 timesidefghijklmnopqrstuvwxyz    defghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$w >> test.out
[?25l[?1c"test.out"5 lines, 147 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test66 = test61; then \
#	  if diff test.out test66.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test66.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test66.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test67.in
[?25h[?8c[?25h[?0c[?25l[?1c"test67.in" 33 lines, 1110 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#<buffer>: " . exists("#BufEnter#<buffer>"))
:au BufEnter <buffer> let g:entered=1[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest that groups and patterns are tested correctly when calling exists() for[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 999 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
:edit testfile2.test
:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
:e! test.out
:call append(0, results)
:$d
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet results=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup auexists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "##BufEnter: " . exists("##BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter * let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup auexists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter * let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter *.test let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit testfile.test
[?25l[?1c"testfile.test" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter <buffer> let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit testfile2.test
[?25l[?1c"testfile2.test" [New File][?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File][?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, results)
[?25l[?1c##BufEnter: 1
#BufEnter: 0
#BufEnter: 1
#auexists#BufEnter: 0
#auexists#BufEnter: 1
#BufEnter#*.test: 0
#BufEnter#*.test: 1
#BufEnter#<buffer>: 0
#BufEnter#<buffer>: 1
#BufEnter#<buffer>: 0[?25h[?0c[?25l[?1c:[?25h[?0c$d
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 10 lines, 190 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test67 = test61; then \
#	  if diff test.out test67.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test67.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test67.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test68.in
[?25h[?8c[?25h[?0c[?25l[?1c"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

{[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for text formatting.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 48 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noai tw=2 fo=t
[?25l[?1c[?25h[?0c[?25l[?1ca
b[?25h[?0c
[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 38 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c
a  b[?25h[?0c[?25l[?1c
:[?25h[?0cset ai tw=2 fo=tw
[?25l[?1c[?25h[?0c[?25l[?1c
b[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
a[?25h[?0ca [?25l[?1c
b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=3 fo=t
gqgqo
a ^V^A^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
a ^A[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=3 fo=t
[?25l[?1c[?25h[?0c[?25l[?1c
^A[?25h[?0c[?25l[?1ca
^A
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=2 fo=tcq1 comments=:#
gqgqjgqgqo
a b
#a b^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
a b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=2 fo=tcq1 comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
#a b[?25h[?0c[?25l[?1ca b
#a b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 46 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=tcn comments=:#
A b^[jA b^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  1 a[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=tcn comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
b[?25h[?0c[?25l[?1c
# 1 a[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+3
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 35 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=t2a si
i  ^[A_^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+3
[?25l[?1c{

  x a
  b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=t2a si
[?25l[?1c[?25h[?0c[?25l[?1c    b[?25h[?0c[?25l[?1c b_[?25h[?0c[?25l[?1c
c[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=qn comments=:#
gwap
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
# 1 a b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=qn comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=q2 comments=:#
gwap
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
# x[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=q2 comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c# x a
[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+2
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 26 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw& fo=a
I^^^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+2
[?25l[?1c{
   1aa
   2bb[?25h[?0c[?25l[?1c
:[?25h[?0cset tw& fo=a
[?25l[?1c[?25h[?0c[?25l[?1c1aa ^^2bb }STARTTEST[?25h[?0c
[?25l[?1c/^STARTTEST
[?25h[?0c[?25l[?1c
/mno pqr/[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 69 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
A vwx yz^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0cmno pqr/
[?25l[?1c/* abc def ghi jkl
 *    mno pqr stu[?25h[?0c[?25l[?1c
:[?25h[?0csetl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1c
*    vwx yz[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^#/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 47 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:setl tw=12 fo=tqnc comments=:#
A foobar^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^#/
[?25l[?1c
# 1 xxxxx[?25h[?0c[?25l[?1c
:[?25h[?0csetl tw=12 fo=tqnc comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
#   foobar[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:1;/^Results/,$wq! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c63 fewer lines# 1 a#   b}{
# x a#   b}{ 1aa ^^2bb }/* abc def ghi jkl
 *    mno pqr stu
 *    vwx yz
 */# 1 xxxxx
#   foobar[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 77 lines, 281 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test68 = test61; then \
#	  if diff test.out test68.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test68.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test68.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test69.in
[?25h[?8c[?25h[?0c[?25l[?1c"test69.in" 192 lines, 2185 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for multi-byte text formatting.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 2 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest 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[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=t
[?25l[?1c[?25h[?0c
[?25l[?1c
XYZ[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1c
Z
abc [?25h[?0c[?25l[?1c
X[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cZ[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=1 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
X[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=1 fo=tm
[?25l[?1c[?25h[?0c[?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c
X a
[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c
XY
[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
X Y
[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 140 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y
aX
abX
abcX
abX c
abXY^[
ENDTEST

{
X
Xa
X a
XY
X Y
aX
abX
abcX
abX c[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=tm
[?25l[?1c[?25h[?0c
[?25l[?1ca[?25h[?0c
[?25l[?1ca[?25h[?0c
[?25l[?1cY
[?25h[?0c
[?25l[?1cY 
[?25h[?0c[?25l[?1c
aX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abcX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abX c
[?25h[?0c[?25l[?1cX
c[?25h[?0c[?25l[?1c
abXY
[?25h[?0c[?25l[?1cX
Y
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1cY
a[?25h[?0c[?25l[?1cX
ab[?25h[?0c[?25l[?1cX
abc[?25h[?0c[?25l[?1cX
ab[?25h[?0c[?25l[?1cX
c
ab[?25h[?0c[?25l[?1c
X[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 47 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set ai tw=2 fo=tm
gqgqjgqgqo
X
Xa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  X[?25h[?0c[?25l[?1c
:[?25h[?0cset ai tw=2 fo=tm
[?25l[?1c[?25h[?0c  [?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
  [?25h[?0c[?25l[?1c
X
  a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 53 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set noai tw=2 fo=tm
gqgqjgqgqo
  X
  Xa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  X[?25h[?0c[?25l[?1c
:[?25h[?0cset noai tw=2 fo=tm
[?25l[?1c[?25h[?0c  [?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
  [?25h[?0c[?25l[?1c
X
a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 169 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
XaY
XY
XYZ
X Y
X YZ
XX
XXa
XXY^[
ENDTEST

{
X
Xa
XaY
XY
XYZ
X Y
X YZ
XX
XXa[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=cqm comments=n:X
[?25l[?1c[?25h[?0c

[?25l[?1cXY[?25h[?0c

[?25l[?1cXZ
[?25h[?0c

[?25l[?1c
X Z
[?25h[?0c[?25l[?1c
XX
[?25h[?0c[?25l[?1c
XXa
[?25h[?0c[?25l[?1c
XXY
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
Xa
[?25h[?0c[?25l[?1cXa[?25h[?0c[?25l[?1cXY
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cXZ
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cX Z
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
Xa
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 30 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=2 fo=tm
RXa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=2 fo=tm
[?25l[?1c[?25h[?0c[?25l[?1c
X
a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set mps+=^Vu2018:^Vu2019
d%
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
‘two three ’four[?25h[?0c[?25l[?1c
:[?25h[?0cset mps+=^‘:^’
[?25l[?1c[?25h[?0c[?25l[?1c four[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
/^ra test
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 16 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTjVjra
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^ra test
[?25l[?1c
ra test[?25h[?0c[?25l[?1c
abba
[?25h[?0c[?25l[?1cbba 
[?25h[?0c[?25l[?1c
a
aab 
[?25h[?0c[?25l[?1caaaaaaa [?25h[?0c
[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set whichwrap+=h
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 43 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/^x
dh
:set whichwrap-=h
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset whichwrap+=h
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^x
[?25l[?1cáx[?25h[?0c[?25l[?1cx[?25h[?0c
[?25l[?1c
:[?25h[?0cset whichwrap-=h
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:let a = '.é.' " one char of two bytes
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 548 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:let b = '.é.' " 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 = '.é.'
:put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet a = '.é.' " one char of two bytes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b = '.eé.' " normal e with composing char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^byteidx
[?25l[?1c
byteidx[?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), bytei

dx(a, 4)])
[?25l[?1c:set whichwrap-=h
ENDTESTáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), bytei

dx(b, 4)])
[?25l[?1cENDTESTáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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[?25h[?0c[?25l[?1c
/[?25h[?0c^byteidxcomp
[?25l[?1c
byteidxcomp[?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxc

omp(a, 3), byteidxcomp(a, 4)])
[?25l[?1cáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
:[?25h[?0clet b = '.eé.'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxc

omp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
[?25l[?1cSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^substitute
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 75 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:let y = substitute('123', '\zs', 'a', 'g')    | put =y
ENDTEST[?25h[?0c[?25l[?1csubstitute[?25h[?0c[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^substitute
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('123', '\zs', 'a', 'g')    | put =y
[?25l[?1ca1a2a3a[?25h[?0c[?25l[?1c

/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out[?25h[?0c[?25l[?1c

:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c

/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c104 fewer lines{ four}ra test
aaaaaaaáxbyteidx[0, 1, 3, 4, -1]
[0, 1, 4, 5, -1]byteidxcomp
[0, 1, 3, 4, -1]
[0, 1, 2, 4, 5, -1]substitute
a1a2a3a[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 166 lines, 730 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test69 = test61; then \
#	  if diff test.out test69.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test69.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test69.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test70.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cSmoke test for MzScheme interface and mzeval() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1398 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mzscheme.vim
[?25l[?1c"test.ok" 6 lines, 94 characters

"test.out" [New File] 6 lines, 94 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test70 = test61; then \
#	  if diff test.out test70.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test70.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test70.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test73.in
[?25h[?8c[?25h[?0c[?25l[?1c"test73.in" 169 lines, 3647 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
:"
:" On windows a stale "Xfind" directory may exist, remove it so that
:" we start from a clean state.
:call delete("Xfind", "rf")
:new
:let cwd=getcwd()
:let test_out = cwd . '/test.out'
:call mkdir('Xfind')
:cd Xfind
:set path=
:find
:exec "w! " . test_out
:close[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for find completion.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 164 lines, 3600 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 delete("Xfind", "rf")
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Do all test in a separate window to avoid E211 when we recursively
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" delete the Xfind directory during cleanup
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This will cause a few errors, do it silently.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" On windows a stale "Xfind" directory may exist, remove it so that
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" we start from a clean state.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xfind", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTESTtest73.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet test_out = cwd . '/test.out'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xfind')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xfind
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/<<PKGBUILDDIR>>/src/vim-nox/testdir/test73.in[?25h[?0c[?25l[?1c:[?25h[?0cset path=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE345: Can't find file "" in path[?25h[?0c[?25l[?1c:[?25h[?0cexec "w! " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out"
<ild/vim-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test.out" [New] 0L, 0C written/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-nox/testdir/test73.in                    [?25h[?0c[?25l[?1c:[?25h[?0cset path=.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-nox/testdir/test73.in                    [?25h[?0c[?25l[?1c:[?25h[?0cset path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-nox/testdir/test73.in                    [?25h[?0c[?25l[?1c:[?25h[?0cset path=./**
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-nox/testdir/test73.in                    [?25h[?0c[?25l[?1c:[?25h[?0c" We shouldn't find any file at this point, test.out must be empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('in')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd in
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/in[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('path')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdirtest73.in                                                   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/file.txt
[?25l[?1c"Xfind/file.txt" [New File]Xfind/file.txt[?25h[?0c[?25l[?1c-- INSERT --Holy Grail[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/file.txt" [New] 1L, 11C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/file.txt
[?25l[?1c"Xfind/in/file.txt" [New File]in/file.txt[?25h[?0c[?25l[?1c-- INSERT --Jimmy Hoffa[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/file.txt" [New] 1L, 12C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/stuff.txt
[?25l[?1c"Xfind/in/stuff.txt" [New File]stuff.txt[?25h[?0c[?25l[?1c-- INSERT --Another Holy Grail[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/stuff.txt" [New] 1L, 19C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/path/file.txt
[?25l[?1c"Xfind/in/path/file.txt" [New File]path/file.txt[?25h[?0c[?25l[?1c-- INSERT --E.T.[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/path/file.txt" [New] 1L, 5C written   [?25h[?0c[?25l[?1c:[?25h[?0cset path=Xfind/**
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Rerun the previous three find completions, using fullpath in 'path'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "set path=" . cwd . "/Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Same steps again, using relative and fullpath items that point to the same
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" recursive location.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This is to test that there are no duplicates in the completion list.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "set path+=Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffafile.txt     [?25h[?0c[?25l[?1c:[?25h[?0c" Test find completion for directory of current buffer, which at this point
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" is Xfind/in/file.txt.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset path=.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind st...[?25l[?1cuff.txt[?25h[?0c
[?25l[?1c"Xfind/in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 19C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test find completion for empty path item ",," which is the current directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xfind
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfindin/stuff.txt      /<<PKGBUILDDIR>>/src/vim-nox/testdir/test73.in[?25h[?0c[?25l[?1c:[?25h[?0cset path=,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind f...[?25l[?1cile.txt[?25h[?0c...[?25l[?1c[?25h[?0c
[?25l[?1c"file.txt" 1L, 11CHoly Grailfile.txt    [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test shortening of
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    foo/x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    foo/y/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" When current directory is above foo/ they should be shortened to (in order
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" of appearance):
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    y/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('foo')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd foo
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/file.txt[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('x')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('y')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd x
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/x[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('bar')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo[?25h[?0c[?25l[?1c:[?25h[?0ccd y
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/y[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('bar')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfindfile.txt                                                         [?25h[?0c[?25l[?1c:[?25h[?0c" We should now be in the Xfind directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce foo/x/bar/voyager.txt
[?25l[?1c"foo/x/bar/voyager.txt" [New File]oo/x/bar/voyager.txt[?25h[?0c[?25l[?1c-- INSERT --Voyager 1[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"foo/x/bar/voyager.txt" [New] 1L, 10C written   [?25h[?0c[?25l[?1c:[?25h[?0ce foo/y/bar/voyager.txt
[?25l[?1c"foo/y/bar/voyager.txt" [New File]y[?25h[?0c[?25l[?1c-- INSERT --Voyager 2[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"foo/y/bar/voyager.txt" [New] 1L, 10C written   [?25h[?0c[?25l[?1c:[?25h[?0cexec "set path=" . cwd . "/Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1cx/bar/voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"foo/x/bar/voyager.txt" 1L, 10C1x[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1cx/bar/voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cy[?25h[?0c
[?25l[?1c"foo/y/bar/voyager.txt" 1L, 10C2y[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" When current directory is .../foo/y/bar they should be shortened to (in
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" order of appearance):
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    ./voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd foo
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/fooy/bar/voyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0ccd y
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/ybar/voyager.txt  [?25h[?0c[?25l[?1c:[?25h[?0ccd bar
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/y/barvoyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"voyager.txt" 1L, 10C[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cx/bar/voyager.txt[?25h[?0c
[?25l[?1c<uild/vim-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/Xfind/foo/x/bar/voyager.txt"
<m-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/Xfind/foo/x/bar/voyager.txt" 1L, 10C1/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/x/bar/voyager.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Check the opposite too:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/y[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foox/bar/voyager.txt                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccd x
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/xbar/voyager.txt  [?25h[?0c[?25l[?1c:[?25h[?0ccd bar
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/x/barvoyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"voyager.txt" 1L, 10C[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cy/bar/voyager.txt[?25h[?0c
[?25l[?1c<uild/vim-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/Xfind/foo/y/bar/voyager.txt"
<m-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/Xfind/foo/y/bar/voyager.txt" 1L, 10C2/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/foo/y/bar/voyager.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Check for correct handling of shorten_fname()'s behavior on windows
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd . "/Xfind/in"
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfind/in[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"file.txt" 1L, 12CJimmy Hoffafile.txt                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for relative to current buffer 'path' item
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd . "/Xfind/"
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xfindin/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cset path=./path
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open the file where Jimmy Hoffa is found
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce in/file.txt
[?25l[?1c"in/file.txt" 1L, 12C[?25h[?0c[?25l[?1c:[?25h[?0c" Find the file containing 'E.T.' in the Xfind/in/path directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1ctxt[?25h[?0c
[?25l[?1c"in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test that completion works when path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open Jimmy Hoffa file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce in/file.txt
[?25l[?1c"in/file.txt" 1L, 12CJimmy Hoffafile.txt     [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Search for the file containing Holy Grail in same directory as in/path.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind stu...[?25l[?1cff.txt[?25h[?0c
[?25l[?1c"in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test.out" 1L, 19C appended[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xfind", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test73 = test61; then \
#	  if diff test.out test73.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test73.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test73.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test75.in
[?25h[?8c[?25h[?0c[?25l[?1c"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<C-V> is<F4>foo
:vnoremap <script> <buffer> <expr> <silent> bar isbar
:call append('$', maparg('foo<C-V>'))
:call append('$', string(maparg('foo<C-V>', '', 0, 1)))
:call append('$', string(maparg('bar', '', 0, 1)))
:map <buffer> <nowait> foo bar
:call append('$', string(maparg('foo', '', 0, 1)))
:"
:map abc x<char-114>x
:call append('$', maparg('abc'))
:map abc y<S-char-114>y
:call append('$', maparg('abc'))
:"
Go^[:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for maparg().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 34 lines, 919 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" Outside of the range, minimum
:inoremap <Char-0x1040> a
:execute "normal a\u1040\<Esc>"
:" Inside of the range, minimum
:inoremap <Char-0x103f> b
:execute "normal a\u103f\<Esc>"
:" Inside of the range, maximum
:inoremap <Char-0xf03f> c
:execute "normal a\uf03f\<Esc>"
:" Outside of the range, maximum
:inoremap <Char-0xf040> d
:execute "normal a\uf040\<Esc>"
:"
:/^eof/+1,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf8
[?25l[?1c:map abc x<char-114>x
:call append('$', maparg('abc'))
:map abc y<S-char-114>y
:call append('$', maparg('abc'))
:"
Go^[:"
:" Outside of the range, minimum
:inoremap <Char-0x1040> a
:execute "normal a\u1040\<Esc>"
:" Inside of the range, minimum
:inoremap <Char-0x103f> b
:execute "normal a\u103f\<Esc>"
:" Inside of the range, maximum
:inoremap <Char-0xf03f> c
:execute "normal a\uf03f\<Esc>"
:" Outside of the range, maximum
:inoremap <Char-0xf040> d
:execute "normal a\uf040\<Esc>"
:"
:/^eof/+1,$w! test.out
:qa!
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0c" Test maparg() with a string result
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap foo<C-V> is<F4>foo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap <script> <buffer> <expr> <silent> bar isbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('foo<C-V>'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('foo<C-V>', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('bar', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap <buffer> <nowait> foo bar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('foo', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap abc x<char-114>x
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('abc'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap abc y<S-char-114>y
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('abc'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1ceof
is<F4>foo
{'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'nowait': 0, 'expr':0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
{'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'nowait': 0, 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
{'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ', 'nowait': 1, 'expr': 0, 'sid': 0, 'rhs': 'bar', 'buffer': 1}
xrx
yRy[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Outside of the range, minimum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0x1040> a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\u1040\<Esc>"
[?25l[?1ca[?25h[?0c[?25l[?1c:[?25h[?0c" Inside of the range, minimum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0x103f> b
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\u103f\<Esc>"
[?25l[?1cb[?25h[?0c[?25l[?1c:[?25h[?0c" Inside of the range, maximum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0xf03f> c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\uf03f\<Esc>"
[?25l[?1cc[?25h[?0c[?25l[?1c:[?25h[?0c" Outside of the range, maximum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0xf040> d
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\uf040\<Esc>"
[?25l[?1cd[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^eof/+1,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 7 lines, 384 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test75 = test61; then \
#	  if diff test.out test75.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test75.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test75.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test77.failed test.ok test.out X* viminfo
cp test77.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test77.in
[?25h[?8c[?25h[?0c[?25l[?1c"test77.in" 30 lines, 719 charactersInserts 2 million lines with consecutive integers starting from 1
(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
and writes its cksum to test.out.

We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
up the lines the checksum would differ.

cksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST
:so small.vim
:if !executable("cksum")
: e! test.ok
: w! test.out
: qa!
:endif
:set fileformat=unix undolevels=-1
ggdG
:let i = 1
:while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhileggdd
:w! Xtest[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cInserts 2 million lines with consecutive integers starting from 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 288 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:r !cksum Xtest
:s/\s/ /g
:set fileformat&
:.w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !executable("cksum")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1ccksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST[?25h[?0c[?25l[?1c
:[?25h[?0cset fileformat=unix undolevels=-1
[?25l[?1c[?25h[?0c[?25l[?1cInserts 2 million lines with consecutive integers starting from 1
(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
and writes its cksum to test.out.

We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
up the lines the checksum would differ.[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhil

e[?25l[?1c12345678910111213141516171819202122[?25h[?0c[?25l[?1c
23[?25h[?0c
[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 2000000 lines, 14888896 characters written[?25h[?0c[?25l[?1c:[?25h[?0cr !cksum Xtest
[?25l[?1c[?25h[?0c[?25l[?1c1
2
3678979763 14888896 Xtest
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22[?25h[?0c[?25l[?1c:[?25h[?0cs/\s/ /g
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 26 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test77 = test61; then \
#	  if diff test.out test77.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test77.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test77.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test79.failed test.ok test.out X* viminfo
cp test79.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test79.in
[?25h[?8c[?25h[?0c[?25l[?1c"test79.in" 255 lines, 3381 charactersTest for *sub-replace-special* and *sub-replace-expression* on :substitute.
Test for submatch() on :substitue.
Test for *:s%* on :substitute.
Test for :s replacing \n with  line break.

STARTTEST
:so small.vim
ENDTEST

Results of test71:

STARTTEST
:set magic
:set cpo&
/^TEST/
j:s/A/&&/
j:s/B/\&/
j:s/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
j:s/D/d/
j:s/E/~/
j:s/F/\~/
j:s/G/\ugg/
j:s/H/\Uh\Eh/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for *sub-replace-special* and *sub-replace-expression* on :substitute.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 347 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTj:s/L/^V^M/
j:s/M/\r/
j:s/N/\^V^M/
j:s/O/\n/
j:s/P/\b/
j:s/Q/\t/
j:s/R/\\/
j:s/S/\c/
j:s/T/^V^@/
j:s/U/\L\uuUu\l\EU/
j:s/V/\U\lVvV\u\Ev/
ENDTEST

TEST_1:
A
B
C123456789
D
E
F
G
H
I[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/&&/
[?25l[?1cA
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\&/
[?25l[?1c&[?25h[?0c
[?25l[?1c:[?25h[?0cs/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l[?1c987654321
[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/d/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/E/~/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/G/\ugg/
[?25l[?1cg
[?25h[?0c
[?25l[?1c:[?25h[?0cs/H/\Uh\Eh/
[?25l[?1ch
[?25h[?0c
[?25l[?1c:[?25h[?0cs/I/\lII/
[?25l[?1ciI
[?25h[?0c[?25l[?1c
J[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\LJ\EJ/
[?25l[?1cjJ
[?25h[?0c[?25l[?1c
K[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\Uk\ek/
[?25l[?1ck
[?25h[?0c[?25l[?1c
lLl[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/^^M/
[?25l[?1c
l[?25h[?0c[?25l[?1c
mMm
[?25h[?0c[?25l[?1c
:[?25h[?0cs/M/\r/
[?25l[?1c
m[?25h[?0c[?25l[?1c
nNn
[?25h[?0c[?25l[?1c
:[?25h[?0cs/N/\^^M/
[?25l[?1c^Mn
[?25h[?0c[?25l[?1c
oOo[?25h[?0c[?25l[?1c
:[?25h[?0cs/O/\n/
[?25l[?1c^@o
[?25h[?0c[?25l[?1c
pPp[?25h[?0c[?25l[?1c
:[?25h[?0cs/P/\b/
[?25l[?1c^Hp
[?25h[?0c[?25l[?1c
qQq[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q/\t/
[?25l[?1c       q
[?25h[?0c[?25l[?1c
rRr[?25h[?0c[?25l[?1c
:[?25h[?0cs/R/\\/
[?25l[?1c\
[?25h[?0c[?25l[?1c
sSs[?25h[?0c[?25l[?1c
:[?25h[?0cs/S/\c/
[?25l[?1cc
[?25h[?0c[?25l[?1c
tTt[?25h[?0c[?25l[?1c
:[?25h[?0cs/T/^^@/
[?25l[?1c^@t
[?25h[?0c[?25l[?1c
U[?25h[?0c[?25l[?1c
:[?25h[?0cs/U/\L\uuUu\l\EU/
[?25l[?1cuuU
[?25h[?0c[?25l[?1c
V[?25h[?0c[?25l[?1c
:[?25h[?0cs/V/\U\lVvV\u\Ev/
[?25l[?1cvVVv
[?25h[?0c[?25l[?1c/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set nomagic
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 351 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/L/^V^M/
j:s/M/\r/
j:s/N/\^V^M/
j:s/O/\n/
j:s/P/\b/
j:s/Q/\t/
j:s/R/\\/
j:s/S/\c/
j:s/T/^V^@/
j:s/U/\L\uuUu\l\EU/
j:s/V/\U\lVvV\u\Ev/
ENDTEST

TEST_2:
A
B
C123456789
D
E
F
G
H
I[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/&&/
[?25l[?1c&&
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\&/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l[?1c987654321
[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/d/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/E/~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/G/\ugg/
[?25l[?1cg
[?25h[?0c
[?25l[?1c:[?25h[?0cs/H/\Uh\Eh/
[?25l[?1ch
[?25h[?0c
[?25l[?1c:[?25h[?0cs/I/\lII/
[?25l[?1ciI
[?25h[?0c[?25l[?1c
J[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\LJ\EJ/
[?25l[?1cjJ
[?25h[?0c[?25l[?1c
K[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\Uk\ek/
[?25l[?1ck
[?25h[?0c[?25l[?1c
lLl[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/^^M/
[?25l[?1c
l[?25h[?0c[?25l[?1c
mMm
[?25h[?0c[?25l[?1c
:[?25h[?0cs/M/\r/
[?25l[?1c
m[?25h[?0c[?25l[?1c
nNn
[?25h[?0c[?25l[?1c
:[?25h[?0cs/N/\^^M/
[?25l[?1c^Mn
[?25h[?0c[?25l[?1c
oOo[?25h[?0c[?25l[?1c
:[?25h[?0cs/O/\n/
[?25l[?1c^@o
[?25h[?0c[?25l[?1c
pPp[?25h[?0c[?25l[?1c
:[?25h[?0cs/P/\b/
[?25l[?1c^Hp
[?25h[?0c[?25l[?1c
qQq[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q/\t/
[?25l[?1c       q
[?25h[?0c[?25l[?1c
rRr[?25h[?0c[?25l[?1c
:[?25h[?0cs/R/\\/
[?25l[?1c\
[?25h[?0c[?25l[?1c
sSs[?25h[?0c[?25l[?1c
:[?25h[?0cs/S/\c/
[?25l[?1cc
[?25h[?0c[?25l[?1c
tTt[?25h[?0c[?25l[?1c
:[?25h[?0cs/T/^^@/
[?25l[?1c^@t
[?25h[?0c[?25l[?1c
U[?25h[?0c[?25l[?1c
:[?25h[?0cs/U/\L\uuUu\l\EU/
[?25l[?1cuuU
[?25h[?0c[?25l[?1c
V[?25h[?0c[?25l[?1c
:[?25h[?0cs/V/\U\lVvV\u\Ev/
[?25l[?1cvVVv
[?25h[?0c[?25l[?1c/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 203 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/B/\='\\'/
j:s/C/\='^V^M'/
j:s/D/\='\^V^M'/
j:s/E/\='\\^V^M'/
j:s/F/\='\r'/
j:s/G/\='^V^@'/
j:s/H/\='\^V^@'/
j:s/I/\='\\^V^@'/
j:s/J/\='\n'/
j:s/K/\="\r"/
j:s/L/\="\n"/
ENDTEST

TEST_3:
aAa
bBb
cCc
dDd
eEe
fFf
gGg
hHh
iIi[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/\='\'/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\='\\'/
[?25l[?1c\\b
[?25h[?0c
[?25l[?1c:[?25h[?0cs/C/\='^^M'/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/\='\^^M'/
[?25l[?1c\d[?25h[?0c
[?25l[?1c


:[?25h[?0cs/E/\='\\^^M'/
[?25l[?1c\\
efFf[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\='\r'/
[?25l[?1c\rf
[?25h[?0c[?25l[?1c
gGg[?25h[?0c[?25l[?1c
:[?25h[?0cs/G/\='^^@'/
[?25l[?1c
g[?25h[?0c[?25l[?1c
hHh
[?25h[?0c[?25l[?1c
:[?25h[?0cs/H/\='\^^@'/
[?25l[?1c
\h[?25h[?0c[?25l[?1c
iIi
[?25h[?0c[?25l[?1c
:[?25h[?0cs/I/\='\\^^@'/
[?25l[?1c
\\
i[?25h[?0c[?25l[?1c
jJj
[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\='\n'/
[?25l[?1c\nj
[?25h[?0c[?25l[?1c
kKk[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\="\r"/
[?25l[?1c
k[?25h[?0c[?25l[?1c
lLl
[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/\="\n"/
[?25l[?1c
l[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 611 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/B/\=substitute(submatch(0), '.', '\\', '')/
j:s/C/\=substitute(submatch(0), '.', '^V^M', '')/
j:s/D/\=substitute(submatch(0), '.', '\^V^M', '')/
j:s/E/\=substitute(submatch(0), '.', '\\^V^M', '')/
j:s/F/\=substitute(submatch(0), '.', '\r', '')/
j:s/G/\=substitute(submatch(0), '.', '^V^@', '')/
j:s/H/\=substitute(submatch(0), '.', '\^V^@', '')/
j:s/I/\=substitute(submatch(0), '.', '\\^V^@', '')/
j:s/J/\=substitute(submatch(0), '.', '\n', '')/
j:s/K/\=substitute(submatch(0), '.', "\r", '')/
j:s/L/\=substitute(submatch(0), '.', "\n", '')/
ENDTEST

TEST_4:
aAa
bBb
cCc
dDd
eEe
fFf
gGg
hHh
iIi[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/\=substitute(submatch(0), '.', '\', '')/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\=substitute(submatch(0), '.', '\\', '')/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/C/\=substitute(submatch(0), '.', '^^M', '')/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/\=substitute(submatch(0), '.', '\^^M', '')/
[?25l[?1cd[?25h[?0c
[?25l[?1c


:[?25h[?0cs/E/\=substitute(submatch(0), '.', '\\^^M', '')/
[?25l[?1c\efFf[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\=substitute(submatch(0), '.', '\r', '')/
[?25l[?1c
f[?25h[?0c[?25l[?1c
gGg
[?25h[?0c[?25l[?1c
:[?25h[?0cs/G/\=substitute(submatch(0), '.', '^^@', '')/
[?25l[?1c
g[?25h[?0c[?25l[?1c
hHh
[?25h[?0c[?25l[?1c
:[?25h[?0cs/H/\=substitute(submatch(0), '.', '\^^@', '')/
[?25l[?1c
h[?25h[?0c[?25l[?1c
iIi
[?25h[?0c[?25l[?1c
:[?25h[?0cs/I/\=substitute(submatch(0), '.', '\\^^@', '')/
[?25l[?1c
\i[?25h[?0c[?25l[?1c
jJj
[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\=substitute(submatch(0), '.', '\n', '')/
[?25l[?1c
j[?25h[?0c[?25l[?1c
kKk
[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\=substitute(submatch(0), '.', "\r", '')/
[?25l[?1c
k[?25h[?0c[?25l[?1c
lLl
[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/\=substitute(submatch(0), '.', "\n", '')/
[?25l[?1c
l[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 445 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set cpo&
/^TEST/
j:s/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)/
j:s/B\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c
TEST_5:[?25h[?0c[?25l[?1c
A123456789
[?25h[?0c[?25l[?1c
:[?25h[?0cs/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .

submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(

3) . submatch(2) . submatch(1)/
[?25l[?1ci\
i987654321[?25h[?0c[?25l[?1c
B123456789
[?25h[?0c[?25l[?1c
:[?25h[?0cs/B\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=string([submatch(0, 1), sub

match(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), sub

match(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
[?25l[?1ci
j[['B123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/^TEST/
:set cpo+=/
j:s/A/a/
j:s/B/%/
:set cpo-=/
j:s/C/c/
j:s/D/%/
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1cTEST_6:
A
B[?25h[?0c[?25l[?1c


:[?25h[?0cset cpo+=/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/a/
[?25l[?1ca[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/%/
[?25l[?1ca[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=/
[?25l[?1c[?25h[?0c[?25l[?1cC
D[?25h[?0c[?25l[?1c


:[?25h[?0cs/C/c/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/%/
[?25l[?1c%[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 11 lines, 303 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set cpo&
/^TEST_7/
j:s/A./\=submatch(0)/
j:s/B./\=submatch(0)/
j:s/C./\=strtrans(string(submatch(0, 1)))/
j:s/D.\nD/\=strtrans(string(submatch(0, 1)))/
j:s/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
/^Q$
:s/Q[^\n]Q/\=submatch(0)."foobar"/
:" Avoid :s error breaks dotest map on Windows.
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST_7/
[?25l[?1c
TEST_7:[?25h[?0c[?25l[?1c
A^MA
[?25h[?0c[?25l[?1c
:[?25h[?0cs/A./\=submatch(0)/
[?25l[?1c
A[?25h[?0c[?25l[?1c
B^@B
[?25h[?0c[?25l[?1c
:[?25h[?0cs/B./\=submatch(0)/
[?25l[?1c
B[?25h[?0c[?25l[?1c
C^@C
[?25h[?0c[?25l[?1c
:[?25h[?0cs/C./\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['C^@']C
[?25h[?0c[?25l[?1c
D^@[?25h[?0c[?25l[?1c
:[?25h[?0cs/D.\nD/\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['D^@', 'D']
[?25h[?0c[?25l[?1c
E^@[?25h[?0c[?25l[?1c
:[?25h[?0cs/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['E^@', '^@', '^@', '^@', '^@E']
[?25h[?0c[?25l[?1c/[?25h[?0c^Q$
[?25l[?1c
Q[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q[^\n]Q/\=submatch(0)."foobar"/
[?25l[?1cE486: Pattern not found: Q[^\n]Q[?25h[?0c[?25l[?1c:[?25h[?0c" Avoid :s error breaks dotest map on Windows.
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
Q

STARTTEST[?25h[?0c[?25l[?1c
:function! TitleString()
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 177 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTlet check = 'foo' =~ 'bar'
  return ""
endfunction
:set titlestring=%{TitleString()}
:/^test_one/s/.*/\="foo\nbar"/
:/^test_two/s/.*/\="foo\nbar"/c
y
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cfunction! TitleString()
[?25l[?1c
:  [?25h[?0c  let check = 'foo' =~ 'bar'

[?25l[?1c:  [?25h[?0c  return ""

[?25l[?1c:  [?25h[?0cendfunction
[?25l[?1cTEST_7:
A[?25h[?0c[?25l[?1c
:[?25h[?0cset titlestring=%{TitleString()}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^test_one/s/.*/\="foo\nbar"/
[?25l[?1cfoo
bar[?25h[?0c[?25l[?1c
:[?25h[?0c/^test_two/s/.*/\="foo\nbar"/c
[?25l[?1c
test_tworeplace with \="foo\nbar" (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c
foobar
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 72 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:1;/^Results/,$wq! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c136 fewer linesaa
c
%TEST_7:AABB['C^@']C['D^@', 'D']
['E^@', '^@', '^@', '^@', '^@E']
Q
Qfoo
bar
foobar[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 134 lines, 574 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test79 = test61; then \
#	  if diff test.out test79.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test79.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test79.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test80.failed test.ok test.out X* viminfo
cp test80.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test80.in
[?25h[?8c[?25h[?0c[?25l[?1c"test80.in" 201 lines, 6298 charactersTest for *sub-replace-special* and *sub-replace-expression* on substitute().
Test for submatch() on substitute().
Test for *:s%* on :substitute.

STARTTEST
:so small.vim
ENDTEST

TEST_1:

STARTTEST
:set magic
:set cpo&
:$put =\"\n\nTEST_1:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
:$put =substitute('D', 'D', 'd', '')
:$put =substitute('E', 'E', '~', '')
:$put =substitute('F', 'F', '\~', '')
:$put =substitute('G', 'G', '\ugg', '')
:$put =substitute('H', 'H', '\Uh\Eh', '')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for *sub-replace-special* and *sub-replace-expression* on substitute().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1142 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =substitute('pPp', 'P', '\b', '')
:$put =substitute('qQq', 'Q', '\t', '')
:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('xXx', 'X', \"\r\", '')
:$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
:$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
/^TEST_2
ENDTEST

TEST_2:

STARTTEST
:set nomagic
:set cpo&
:$put =\"\n\nTEST_2:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_1:\"
[?25l[?1c3 more lines:set cpo&
:$put =\"\n\nTEST_10:\"
:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST

TEST_11:

STARTTEST
:/^Results/,$wq! test.out
ENDTEST

Results of test72:


TEST_1:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', '&&', '')
[?25l[?1c
AA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '\&', '')
[?25l[?1c
&[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l[?1c:let y = substitute('123', '\zs.', 'a', 'g')| $put =y.\zs\ze', 'a', 'g') .', 'a', 'g').\ze1\|\ze', 'a', 'g')zs\|[23]', 'a', 'g')
/^TEST_11ENDTESTTEST_11:STARTTEST
:/^Results/,$wq! test.out
ENDTESTResults of test72:TEST_1:
AA&C123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', 'd', '')
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('E', 'E', '~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('F', 'F', '\~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('G', 'G', '\ugg', '')
[?25l[?1c
Gg[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l[?1c
Hh[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('I', 'I', '\lII', '')
[?25l[?1c
iI[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l[?1c
jJ[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('K', 'K', '\Uk\ek', '')
[?25l[?1c
Kk[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('lLl', 'L', '^^M', '')
[?25l[?1c
l^Ml[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('mMm', 'M', '\r', '')
[?25l[?1c
m^Mm[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('nNn', 'N', '\^^M', '')
[?25l[?1c
n^Mn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('oOo', 'O', '\n', '')
[?25l[?1co
o[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('pPp', 'P', '\b', '')
[?25l[?1c
p^Hp[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('qQq', 'Q', '\t', '')
[?25l[?1c
qq[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('rRr', 'R', '\\', '')
[?25l[?1c
r\r[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('sSs', 'S', '\c', '')
[?25l[?1c
scs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('uUu', 'U', \"\n\", '')
[?25l[?1cu
u[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('vVv', 'V', \"\b\", '')
[?25l[?1c
v^Hv[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('wWw', 'W', \"\\\", '')
[?25l[?1c
w\w[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('xXx', 'X', \"\r\", '')
[?25l[?1c
x^Mx[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
[?25l[?1c
YyyY[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
[?25l[?1c
zZZz[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_2
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('xXx', 'X', \"\r\", '')
:$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
:$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
/^TEST_2
ENDTEST

TEST_2:

STARTTEST
:set nomagic
:set cpo&
:$put =\"\n\nTEST_2:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
:$put =substitute('D', 'D', 'd', '')
:$put =substitute('E', 'E', '~', '')
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1144 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =substitute('pPp', 'P', '\b', '')
:$put =substitute('qQq', 'Q', '\t', '')
:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('tTt', 'T', \"\r\", '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
:$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
/^TEST_3
ENDTEST

TEST_3:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_3:\"
:let y = substitute('aAa', 'A', '\="\\"', '')| $put =y
:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_2:\"
[?25l[?1c3 more linesHh
iI
jJ
Kk
l^Ml
m^Mm
n^Mn
o
o
p^Hp
qq
r\r
scs
u
u
v^Hv
w\w
x^Mx
YyyY
zZZz


TEST_2:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', '&&', '')
[?25l[?1c
AA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '\&', '')
[?25l[?1c
&[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l[?1cKk
l^Ml
mm
nn
op^Hp
q       q
r\rscs
uv^Hv
w\wx^Mx
YyyY
zZZzTEST_2:
AA&C123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', 'd', '')
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('E', 'E', '~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('F', 'F', '\~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('G', 'G', '\ugg', '')
[?25l[?1c
Gg[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l[?1c
Hh[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('I', 'I', '\lII', '')
[?25l[?1c
iI[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l[?1c
jJ[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('K', 'K', '\Uk\ek', '')
[?25l[?1c
Kk[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('lLl', 'L', '^^M', '')
[?25l[?1c
l^Ml[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('mMm', 'M', '\r', '')
[?25l[?1c
m^Mm[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('nNn', 'N', '\^^M', '')
[?25l[?1c
n^Mn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('oOo', 'O', '\n', '')
[?25l[?1co
o[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('pPp', 'P', '\b', '')
[?25l[?1c
p^Hp[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('qQq', 'Q', '\t', '')
[?25l[?1c
qq[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('rRr', 'R', '\\', '')
[?25l[?1c
r\r[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('sSs', 'S', '\c', '')
[?25l[?1c
scs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('tTt', 'T', \"\r\", '')
[?25l[?1c
t^Mt[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('uUu', 'U', \"\n\", '')
[?25l[?1cu
u[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('vVv', 'V', \"\b\", '')
[?25l[?1c
v^Hv[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('wWw', 'W', \"\\\", '')
[?25l[?1c
w\w[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
[?25l[?1c
XxxX[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
[?25l[?1c
yYYy[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_3
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('tTt', 'T', \"\r\", '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
:$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
/^TEST_3
ENDTEST

TEST_3:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_3:\"
:let y = substitute('aAa', 'A', '\="\\"', '')| $put =y
:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y
:let y = substitute('eEe', 'E', '\="\\\\^V^M"', '')     | $put =y
:let y = substitute('fFf', 'F', '\="\\r"', '')| $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 642 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('jJj', 'J', '\="\\n"', '')| $put =y
:let y = substitute('kKk', 'K', '\="\r"', '')| $put =y
:let y = substitute('lLl', 'L', '\="\n"', '')| $put =y
/^TEST_4
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_3:\"
[?25l[?1c3 more linesHh
iI
jJ
Kk
l^Ml
m^Mm
n^Mn
o
o
p^Hp
qq
r\r
scs
t^Mt
u
u
v^Hv
w\w
XxxX
yYYy


TEST_3:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('aAa', 'A', '\="\\"', '')           | $put =y
[?25l[?1c
a\a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('bBb', 'B', '\="\\\\"', '')         | $put =y
[?25l[?1c
b\\b[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('cCc', 'C', '\="^^M"', '')         | $put =y
[?25l[?1c
c^Mc[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('dDd', 'D', '\="\\^^M"', '')       | $put =y
[?25l[?1c
d\^Md[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('eEe', 'E', '\="\\\\^^M"', '')     | $put =y
[?25l[?1c
e\\^Me[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('fFf', 'F', '\="\\r"', '')          | $put =y
[?25l[?1c
f\rf[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('jJj', 'J', '\="\\n"', '')          | $put =y
[?25l[?1c
j\nj[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('kKk', 'K', '\="\r"', '')           | $put =y
[?25l[?1c
k^Mk[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('lLl', 'L', '\="\n"', '')           | $put =y
[?25l[?1cl
l[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_4
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y
:let y = substitute('eEe', 'E', '\="\\\\^V^M"', '')     | $put =y
:let y = substitute('fFf', 'F', '\="\\r"', '')| $put =y
:let y = substitute('jJj', 'J', '\="\\n"', '')| $put =y
:let y = substitute('kKk', 'K', '\="\r"', '')| $put =y
:let y = substitute('lLl', 'L', '\="\n"', '')| $put =y
/^TEST_4
ENDTEST

TEST_4:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_4:\"
:let y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')| $put =y
:let y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '')     | $put =y
:let y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^V^M", "")', '')     | $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 912 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^V^M", "")',
'')   | $put =y
:let y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^V^M", "")', '') | $put =y
:let y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', '')| $put =y
:let y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '')| $put =y
:let y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')| $put =y
:let y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')| $put =y
/^TEST_5
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_4:\"
[?25l[?1c3 more linest^Mt
u
u
v^Hv
w\w
XxxX
yYYy


TEST_3:
a\a
b\\b
c^Mc
d\^Md
e\\^Me
f\rf
j\nj
k^Mk
l
l


TEST_4:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')

      | $put =y
[?25l[?1cu

v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '

')     | $put =y
[?25l[?1cu
v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^^M", "")', '')

    | $put =y
[?25l[?1cv^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^^M", "")', '

')   | $put =y
[?25l[?1cw\w
XxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^^M", "")',

'') | $put =y
[?25l[?1cXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', ''

)      | $put =y
[?25l[?1cyYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mf[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', ''

)      | $put =y
[?25l[?1cTEST_3:
a\a
b\\bc^Mc
d\^Md
e\\^Me
f\rfj\njk^Mk
llTEST_4:
a\a
b\bc^Mc
d^Md
e\^Me
ff
jj[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')

      | $put =y
[?25l[?1cTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')

      | $put =y
[?25l[?1cb\\b
c^Mc
d\^Md
e\\^Me
f\rfj\njk^Mk
llTEST_4:
a\a
b\bc^Mc
d^Md
e\^Me
ff
jjk^Mk
l
l[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_5
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '')| $put =y
:let y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')| $put =y
:let y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')| $put =y
/^TEST_5
ENDTEST

TEST_5:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])', '')
/^TEST_6
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 543 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTENDTEST[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_5:\"
[?25l[?1c3 more linese\\^Me
f\rf
j\nj
k^Mk
l
l


TEST_4:
a\a
b\b
c^Mc
d^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . subm

atch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
[?25l[?1cf\rf
j\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), su

bmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), su

bmatch(1, 1)])', '')
[?25l[?1cj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_6
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])', '')
/^TEST_6
ENDTEST

TEST_6:

STARTTEST
:set magic&
:$put =\"\n\nTEST_6:\"
:set cpo+=/
:$put =substitute('A', 'A', 'a', '')
:$put =substitute('B', 'B', '%', '')
:set cpo-=/
:$put =substitute('C', 'C', 'c', '')
:$put =substitute('D', 'D', '%', '')
/^TEST_7
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 216 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1cTEST_7:[?25h[?0c[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_6:\"
[?25l[?1c3 more linesl


TEST_4:
a\a
b\b
c^Mc
d^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0cset cpo+=/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', 'a', '')
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '%', '')
[?25l[?1c
%[?25h[?0c[?25l[?1c
:[?25h[?0cset cpo-=/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('C', 'C', 'c', '')
[?25l[?1c
c[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', '%', '')
[?25l[?1c
%[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_7
[?25l[?1csearch hit BOTTOM, continuing at TOP:set magic&
:$put =\"\n\nTEST_6:\"
:set cpo+=/
:$put =substitute('A', 'A', 'a', '')
:$put =substitute('B', 'B', '%', '')
:set cpo-=/
:$put =substitute('C', 'C', 'c', '')
:$put =substitute('D', 'D', '%', '')
/^TEST_7
ENDTEST

TEST_7:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A^V^MA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
:$put =substitute('-bb', '\zeb', 'a', 'g')
:$put =substitute('-bb', '\ze', 'c', 'g')
/^TEST_8
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 313 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_7:\"
[?25l[?1c3 more linesd^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
a
%
c
%


TEST_7:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A^^MA', 'A.', '\=submatch(0)', '')
[?25l[?1c
A^MA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
[?25l[?1cB
B[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
[?25l[?1c['B
']B[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('-bb', '\zeb', 'a', 'g')
[?25l[?1c
-abab[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('-bb', '\ze', 'c', 'g')
[?25l[?1c
c-cbcbc[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_8
[?25l[?1csearch hit BOTTOM, continuing at TOP:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A^V^MA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
:$put =substitute('-bb', '\zeb', 'a', 'g')
:$put =substitute('-bb', '\ze', 'c', 'g')
/^TEST_8
ENDTEST

TEST_8:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 10 lines, 186 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTyy/^TEST_9:
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_8:\"
[?25l[?1c3 more linesTEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
a
%
c
%


TEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =',,X'
[?25l[?1c
,,X[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|X\)/\1N/g
[?25l[?1cN,,NX
[?25h[?0c[?25l[?1c:[?25h[?0c$put =',,Y'
[?25l[?1c
,,Y[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|Y\)/\1N/gc
[?25l[?1c,
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cN,,NY
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =',,Z'
[?25l[?1c
,,Z[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|Z\)/\1N/gc
[?25l[?1c,
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cN,,Z
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c,NZ
[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_9:
[?25l[?1csearch hit BOTTOM, continuing at TOP:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
yy/^TEST_9:
ENDTEST

TEST_9:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
ENDTEST

TEST_10:
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 82 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_9:\"
[?25l[?1c3 more linesa
%
c
%


TEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
N,,NX
N,,NY
N,,NZ


TEST_9:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put ='xxx'
[?25l[?1c
xxx[?25h[?0c[?25l[?1c
:[?25h[?0cs/x/X/gc
[?25l[?1cx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cXx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cXx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cx[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_10:
[?25l[?1csearch hit BOTTOM, continuing at TOPTEST_9:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
ENDTEST

TEST_10:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_10:\"
:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 584 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_10:\"
[?25l[?1c3 more linesTEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
N,,NX
N,,NY
N,,NZ


TEST_9:
XXx


TEST_10:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('123', '\zs', 'a', 'g')             | $put =y
[?25l[?1c
a1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\zs.', 'a', 'g')            | $put =y
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '.\zs', 'a', 'g')            | $put =y
[?25l[?1c
1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\ze', 'a', 'g')             | $put =y
[?25l[?1c
a1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\ze.', 'a', 'g')            | $put =y
[?25l[?1c
a1a2a3[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '.\ze', 'a', 'g')            | $put =y
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '1\|\ze', 'a', 'g')          | $put =y
[?25l[?1c
aa2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
[?25l[?1c
1aaa[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_11
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST

TEST_11:

STARTTEST
:/^Results/,$wq! test.out
ENDTEST

Results of test72:


TEST_1:
AA
&
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 26 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 131 lines, 617 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test80 = test61; then \
#	  if diff test.out test80.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test80.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test80.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test82.failed test.ok test.out X* viminfo
cp test82.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test82.in
[?25h[?8c[?25h[?0c[?25l[?1c"test82.in" 103 lines, 3166 charactersTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
Also test "g~ap".

STARTTEST
:so small.vim
:if !has("multi_byte")
: e! test.ok
: w! test.out
: qa!
:endif
:set enc=utf8
ggdG:
:
:function! Ch(a, op, b, expected)
:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 97 lines, 3055 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:call append(0, printf('%d checks passed', b:passed))
:"
:" test that g~ap changes one paragraph only.
:new
iabcd

defg^[gg0g~ap:let lns = getline(1,3)
:q!
:call append(line('$'), lns)
:"
:wq! test.out
ENDTEST

~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("multi_byte")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor[?25h[?0c[?25l[?1c


:[?25h[?0cset enc=utf8
[?25l[?1c:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:call append(0, printf('%d checks passed', b:passed))
:"
:" test that g~ap changes one paragraph only.
:new
iabcd

defg^[gg0g~ap:let lns = getline(1,3)
:q!
:call append(line('$'), lns)
:"
:wq! test.out
ENDTEST

~                                                                               ~                                                                               [?25h[?0c[?25l[?1cTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
Also test "g~ap".

STARTTEST
:so small.vim
:if !has("multi_byte")
: e! test.ok
: w! test.out
: qa!
:endif
:set enc=utf8
ggdG:
:
:function! Ch(a, op, b, expected)
:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Ch(a, op, b, expected)
[?25l[?1c
:  [?25h[?0c:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected

[?25l[?1c:    [?25h[?0c:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a

:op, a:b, a:expected))

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    let b:passed += 1

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Chk(a, b, result)
[?25l[?1c
:  [?25h[?0c:  if a:result == 0

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 0)

[?25l[?1c:    [?25h[?0c:  elseif a:result > 0

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 1)

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 0)

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Check(a, b, result)
[?25l[?1c
:  [?25h[?0c:  call Chk(a:a, a:b, a:result)

[?25l[?1c:  [?25h[?0c:  call Chk(a:b, a:a, -a:result)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! LT(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, -1)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! GT(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, 1)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! EQ(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, 0)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:passed=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('', '')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('', 'a')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('abc', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('Abc', 'abC')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('ab', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('AB', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('ab', 'aBc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xb9\xd0\xa6\

xd0\xa3\xd0\xba\xd0\x95\xd0\xbd')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xaf\xd1\x86\

xd1\x83\xd0\xba\xd0\xb5\xd0\xbd')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa', 'k')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xe2\x84\xaa', 'kkkkkk')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\x

aakk\xe2\x84\xa6')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('Abc\x80', 'AbC\x80')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('Abc\x80', 'AbC\x81')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('Abc', 'AbC\x80')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('abc\x80DEF', 'abc\x80def')  " case folding stops at the first bad cha

racter
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xc3XYZ', '\xc3xyz')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xef\xbc\xba', '\xef\xbd\x9a')  " FF3A (upper), FF5A (lower)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall GT('\xef\xbc\xba', '\xef\xbc\xff')  " first string is ok and equals \xef\

xbd\x9a after folding, second string is illegal and was left unchanged, then the

strings were bytewise compared
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xc3', '\xc3\x83')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.

2X', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, printf('%d checks passed', b:passed))
[?25l[?1c3732 checks passed[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test that g~ap changes one paragraph only.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               [No Name]                                                                       3732 checks passedtest82.in [+]                                                                   [?25h[?0c[?25l[?1cabcddefg[+][?25h[?0c[?25l[?1cABCD
[?25h[?0c[?25l[?1c:[?25h[?0clet lns = getline(1,3)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c3732 checks passed

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), lns)
[?25l[?1cABCDdefg[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 5 lines, 31 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test82 = test61; then \
#	  if diff test.out test82.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test82.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test82.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test84.failed test.ok test.out X* viminfo
cp test84.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test84.in
[?25h[?8c[?25h[?0c[?25l[?1c"test84.in" 35 lines, 786 charactersTests for curswant not changing when setting an option

STARTTEST
:so small.vim
:/^start target options$/+1,/^end target options$/-1 yank
:let target_option_names = split(@0)
:function TestCurswant(option_name)
:  normal! ggf8j
:  let curswant_before = winsaveview().curswant
:  execute 'let' '&'.a:option_name '=' '&'.a:option_name
:  let curswant_after = winsaveview().curswant
:  return [a:option_name, curswant_before, curswant_after]
:endfunction
:
:new
:put =['1234567890', '12345']
:1 delete _
:let result = []
:for option_name in target_option_names
:  call add(result, TestCurswant(option_name))
:endfor
:
:new[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for curswant not changing when setting an option[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 637 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _
:write test.out
:
:qall!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start target options$/+1,/^end target options$/-1 yank
[?25l[?1c3 lines yanked[?25h[?0c[?25l[?1c:[?25h[?0clet target_option_names = split(@0)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction TestCurswant(option_name)
[?25l[?1c
:  [?25h[?0c:  normal! ggf8j

[?25l[?1c:  [?25h[?0c:  let curswant_before = winsaveview().curswant

[?25l[?1c:  [?25h[?0c:  execute 'let' '&'.a:option_name '=' '&'.a:option_name

[?25l[?1c:  [?25h[?0c:  let curswant_after = winsaveview().curswant

[?25l[?1c:  [?25h[?0c:  return [a:option_name, curswant_before, curswant_after]

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:  normal! ggf8j
:  let curswant_before = winsaveview().curswant
:  execute 'let' '&'.a:option_name '=' '&'.a:option_name
:  let curswant_after = winsaveview().curswant
:  return [a:option_name, curswant_before, curswant_after]
:endfunction[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       endfornew
:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _write test.outqall!
ENDTESTtest84.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cput =['1234567890', '12345']
[?25l[?1c123456789012345[+][?25h[?0c[?25l[?1c:[?25h[?0c1 delete _
[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet result = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor option_name in target_option_names
[?25l[?1c
:  [?25h[?0c:  call add(result, TestCurswant(option_name))

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c1234567890
12345[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1234567890
12345
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   :1 delete _
:write test.out
:
:qall!
ENDTEST

test84.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cput =map(copy(result), 'join(v:val, '' '')')
[?25l[?1c3 more linestabstop 7 4timeoutlen 7 7ttimeoutlen 7 7[+][?25h[?0c[?25l[?1c:[?25h[?0c1 delete _
[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cwrite test.out
[?25l[?1c"test.out" [New File] 3 lines, 43 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqall!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test84 = test61; then \
#	  if diff test.out test84.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test84.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test84.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test88.failed test.ok test.out X* viminfo
cp test88.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test88.in
[?25h[?8c[?25h[?0c[?25l[?1c"test88.in" 99 lines, 1449 charactersvim: set ft=vim

Tests for correct display (cursor column position) with +conceal and
tabulators.

STARTTEST
:so small.vim
:if !has('conceal')
   e! test.ok
   wq! test.out
:endif
:" Conceal settings.
:set conceallevel=2
:set concealcursor=nc
:syntax match test /|/ conceal
:" Save current cursor position. Only works in <expr> mode, can't be used
:" with :normal because it moves the cursor to the command line. Thanks to ZyX
:" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
:let positions = []
:nnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
:" Start test.
/^start:
:normal ztj[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cvim: set ft=vim[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 82 lines, 1216 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:normal W
GGk
:normal W
GGk
:normal W
GGk
:normal $
GGk
:" Display result.
:call append('$', 'end:')
:call append('$', positions)
:/^end/,$wq! test.out
ENDTEST

start:
.concealed.     text
|concealed|     text.concealed.     text|concealed|     text

.a.     .b.     .c.     .d.
|a|     |b|     |c|     |d|[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('conceal')
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:normal W
GGk
:normal W[?25h[?0c[?25l[?1c:[?25h[?0c" Conceal settings.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset conceallevel=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset concealcursor=nc
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyntax match test /|/ conceal
[?25l[?1cconcealed  concealed  


a       b       c       d[?25h[?0c[?25l[?1c:[?25h[?0c" Save current cursor position. Only works in <expr> mode, can't be used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" with :normal because it moves the cursor to the command line. Thanks to ZyX
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet positions = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Start test.
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ztj
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:let positions += ['2:1']
[?25h[?0c[?25l[?1c:[?25h[?0c" We should end up in the same column when running these commands on the two
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" lines.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['2:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['2:20']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:20']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:8']
[?25h[?0c[?25l[?1c:[?25h[?0c" Same for next test block.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:28']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:8']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:28']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:1']
[?25h[?0c[?25l[?1c:[?25h[?0c" And check W with multiple tabs and conceals in a line.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:27']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0cset lbr
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0cset list listchars=tab:>-
[?25l[?1c>------

>------->----
>------->------>----.b.>----.c.>----
a>------b>------c>------[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0c" Display result.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', 'end:')
[?25l[?1cend:[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', positions)
[?25l[?1c2:12:172:203:13:173:205:85:255:286:86:256:288:1[?25h[?0c[?25l[?1c:[?25h[?0c/^end/,$wq! test.out
[?25l[?1c"test.out" [New File] 29 lines, 135 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test88 = test61; then \
#	  if diff test.out test88.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test88.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test88.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test90.failed test.ok test.out X* viminfo
cp test90.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test90.in
[?25h[?8c[?25h[?0c[?25l[?1c"test90.in" 53 lines, 1204 charactersTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :

STARTTEST
:so small.vim
:if !has('cryptv') || !exists('*sha256')
   e! test.ok
   wq! test.out
:endif
:"
:let testcase='test for empty string: '
:if sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for 1 char: '
:if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb'
: let res='ok'
:else[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1114 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for contains non-ascii char: '
:if sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:/^start:/,$wq! test.out
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('cryptv') || !exists('*sha256')
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for empty string: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b785

2b855'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'[?25h[?0c[?25l[?1c

:[?25h[?0c$put =testcase.res
[?25l[?1c
test for empty string: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for 1 char: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785af

ee48bb'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1c
test for 1 char: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for 3 chars: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("abc") ==# 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61

f20015ad'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'
:else[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1ctest for 3 chars: ok
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for contains meta char: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8c

c39ed110ca776'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c: let res='ok'
:else
: let res='ng'
:endif[?25h[?0c[?25l[?1c

:[?25h[?0c$put =testcase.res
[?25l[?1ctest for contains meta char: ok[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for contains non-ascii char: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb

0b8d27db8d5feaa813953'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c: let res='ok'
:else
: let res='ng'
:endif[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1c
test for contains non-ascii char: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 6 lines, 143 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test90 = test61; then \
#	  if diff test.out test90.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test90.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test90.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test91.failed test.ok test.out X* viminfo
cp test91.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test91.in
[?25h[?8c[?25h[?0c[?25l[?1c"test91.in" 116 lines, 3240 charactersTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().
vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"
:" Use strings to test for memory leaks.
:" First, check that in an empty window, gettabvar() returns the correct value
:let t:testvar='abcd'
:$put =string(gettabvar(1,'testvar'))
:$put =string(gettabvar(1,'testvar'))
:" Test for getbufvar()
:let b:var_num = '1234'
:let def_num = '5678'
:$put =string(getbufvar(1, 'var_num'))
:$put =string(getbufvar(1, 'var_num', def_num))
:$put =string(getbufvar(1, ''))
:$put =string(getbufvar(1, '', def_num))
:unlet b:var_num
:$put =string(getbufvar(1, 'var_num', def_num))
:$put =string(getbufvar(1, ''))
:$put =string(getbufvar(1, '', def_num))[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 109 lines, 3127 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:tabnext
:3wincmd w
:unlet w:var_dict
:tabrewind
:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:$put =string(gettabwinvar(2, 9, ''))
:$put =string(gettabwinvar(2, 9, '', def_dict))
:$put =string(gettabwinvar(9, 3, ''))
:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict
:$put =string(gettabwinvar(2, 3, '&nux'))
:$put =string(gettabwinvar(2, 3, '&nux', 1))
:tabonly
:"
:/^start/,$wq! test.out
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Use strings to test for memory leaks.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" First, check that in an empty window, gettabvar() returns the correct value
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet t:testvar='abcd'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(gettabvar(1,'testvar'))
[?25l[?1c
'abcd'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(1,'testvar'))
[?25l[?1c
'abcd'[?25h[?0c[?25l[?1c
:[?25h[?0c" Test for getbufvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:var_num = '1234'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_num = '5678'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, 'var_num'))
[?25l[?1c
'1234'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, 'var_num', def_num))
[?25l[?1c
'1234'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, ''))
[?25l[?1c
{'var_num': '1234'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '', def_num))
[?25l[?1c
{'var_num': '1234'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet b:var_num
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, 'var_num', def_num))
[?25l[?1c
'5678'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '', def_num))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(9, '', def_num))
[?25l[?1c
'5678'[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_num
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, '&autoindent'))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '&autoindent', 1))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open new window with forced option values
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew ++ff=dos ++bin ++enc=iso-8859-2
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       {'var_num': '1234'}

'5678'{}''
'5678'
0test91.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0clet otherff = getbufvar(bufnr('%'), '&fileformat')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet otherbin = getbufvar(bufnr('%'), '&bin')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet otherfenc = getbufvar(bufnr('%'), '&fenc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict:$put =string(gettabwinvar(2, 3, '&nux')):$put =string(gettabwinvar(2, 3, '&nux', 1)):tabonly:":/^start/,$wq! test.outENDTESTstart:'abcd''abcd''1234'{'var_num': '1234'}
'5678'

{}
'''5678'

0[?25h[?0c[?25l[?1c:[?25h[?0c$put =otherff
[?25l[?1c
dos[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(otherbin)
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =otherfenc
[?25l[?1c
iso-8859-2[?25h[?0c[?25l[?1c
:[?25h[?0cunlet otherff otherbin otherfenc
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for getwinvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet w:var_str = "Dance"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_str = "Chance"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getwinvar(1, 'var_str'))
[?25l[?1c
'Dance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, 'var_str', def_str))
[?25l[?1c
'Dance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, ''))
[?25l[?1c
{'var_str': 'Dance'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '', def_str))
[?25l[?1c
{'var_str': 'Dance'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet w:var_str
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getwinvar(1, 'var_str', def_str))
[?25l[?1c
'Chance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '', def_str))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(9, '', def_str))
[?25l[?1c
'Chance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '&nu'))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '&nu',  1))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_str
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for gettabvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet t:var_list = [1, 2, 3]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet t:other = 777
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_list = [4, 5, 6, 7]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X{'var_num': '1234'}
'5678'
{}
{}
''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list'))
[?25l[?1c
[1, 2, 3][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list', def_list))
[?25l[?1c
[1, 2, 3][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, ''))
[?25l[?1c
{'var_list': [1, 2, 3], 'other': 777}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '', def_list))
[?25l[?1c
{'var_list': [1, 2, 3], 'other': 777}[?25h[?0c[?25l[?1c
:[?25h[?0ctablast
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cunlet t:var_list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(9, '', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '&nu'))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '&nu', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabonly
[?25l[?1cdos[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for gettabwinvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabprev
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c2 [No Name]  [No Name]  X[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c + test91.in  3 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0cvert split
[?25l[?1c4 X||||||~~~~~[No Name]                              [?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name]                                [No Name]                               X[?25h[?0c[?25l[?1c:[?25h[?0clet w:var_dict = {'dict': 'tabwin'}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_dict = {'dict2': 'newval'}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd b
[?25l[?1c[No Name]                              [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[4, 5, 6, 7]
''
[4, 5, 6, 7]
''
[4, 5, 6, 7]
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict'))
[?25l[?1c
{'dict': 'tabwin'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l[?1c
{'dict': 'tabwin'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, ''))
[?25l[?1c
{'var_dict': {'dict': 'tabwin'}}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l[?1c
{'var_dict': {'dict': 'tabwin'}}[?25h[?0c[?25l[?1c
:[?25h[?0ctabnext
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ||||||~                                       
~                                       
~                                       
~                                       
~                                       
[No Name]                                ~                                      ~                                      ~                                      ~                                      ~                                      [No Name]                              ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1c[No Name]                              [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0cunlet w:var_dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[4, 5, 6, 7]
''
[4, 5, 6, 7]
''
[4, 5, 6, 7]
{'dict': 'tabwin'}
{'dict': 'tabwin'}
{'var_dict': {'dict': 'tabwin'}}
{'var_dict': {'dict': 'tabwin'}}
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 9, '', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(9, 3, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(9, 3, '', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(gettabwinvar(2, 3, '&nux'))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '&nux', 1))
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0ctabonly
[?25l[?1c0[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 50 lines, 530 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test91 = test61; then \
#	  if diff test.out test91.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test91.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test91.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test94.failed test.ok test.out X* viminfo
cp test94.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test94.in
[?25h[?8c[?25h[?0c[?25l[?1c"test94.in" 256 lines, 4824 charactersTest for Visual mode and operators

Tests for the two kinds of operations: Those executed with Visual mode
followed by an operator and those executed via Operator-pending mode. Also
part of the test are mappings, counts, and repetition with the . command.

Test cases:
- Visual modes (v V CTRL-V) followed by an operator; count; repeating
- Visual mode maps; count; repeating
  - Simple
  - With an Ex command (custom text object)
- Operator-pending mode maps
  - Simple
  - With Ex command moving the cursor
  - With Ex command and Visual selection (custom text object)
- Patch 7.3.879: Properly abort Ex command in Operator-pending mode

STARTTEST
:so small.vim
:set enc=utf-8 nocp viminfo+=nviminfo
:
:" User functions
:function MoveToCap()[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Visual mode and operators[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 211 lines, 3837 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTkv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '
:set selection=exclusive
0v3l^[gvcxxx^[
:$put ='---'
:/^start:/+2,$w! test.out
:q!
ENDTEST

start:

apple banana cherry

line 1 line 1
line 2 line 2
line 3 line 3
line 4 line 4
line 5 line 5
line 6 line 6[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf-8 nocp viminfo+=nviminfo
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '
:set selection=exclusive
0v3l^[gvcxxx^[
:$put ='---'
:/^start:/+2,$w! test.out
:q!
ENDTEST

start:

apple banana cherry

line 1 line 1
line 2 line 2
line 3 line 3
line 4 line 4
line 5 line 5
line 6 line 6[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" User functions
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction MoveToCap()
[?25l[?1c
:  [?25h[?0c:  call search('\u', 'W')

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'[?25h[?0c[?25l[?1c:[?25h[?0cfunction SelectInCaps()
[?25l[?1c
:  [?25h[?0c:  let [line1, col1] = searchpos('\u', 'bcnW')

[?25l[?1c:  [?25h[?0c:  let [line2, col2] = searchpos('.\u', 'nW')

[?25l[?1c:  [?25h[?0c:  call setpos("'<", [0, line1, col1, 0])

[?25l[?1c:  [?25h[?0c:  call setpos("'>", [0, line2, col2, 0])

[?25l[?1c:  [?25h[?0c:  normal! gv

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual modes followed by operator
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^apple
[?25l[?1c[?25h[?0ca[?25l[?1c-- VISUAL --[?25h[?0c[?25l[?1cp[?25h[?0c[?25l[?1cle banana cherry[?25h[?0c[?25l[?1c banana cherry[?25h[?0c [?25l[?1cbanan-- VISUAL --[?25h[?0c[?25l[?1c
a  cherry[?25h[?0c[?25l[?1cy[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^line 1
[?25l[?1c[?25h[?0c[?25l[?1cline 1 line 1 -- VISUAL LINE --[?25h[?0c[?25l[?1cINSERT --newline[?25h[?0c[?25l[?1c-- INSERT --newline[?25h[?0c[?25l[?1c
line 3 line 3 
line 4 line 4 


-- VISUAL LINE --[?25h[?0c[?25l[?1cline 5 line 5line 6 line 6xxxxxxxxxxxxx[?25h[?0c[?25l[?1cxxxxxxxxxxxxx
xxxxxxxxxxxxx[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^xxxx
[?25l[?1c[?25h[?0c[?25l[?1c


-- VISUAL BLOCK --[?25h[?0c[?25l[?1cx
[?25h[?0c[?25l[?1cx
x[?25h[?0c[?25l[?1cINSERT --  
  [?25h[?0c [?25l[?1c


-- INSERT --  
    [?25h[?0c [?25l[?1c
xxxx
    xxxx
xxxxxxxx
xxxxxxxxxxxxx
-- VISUAL BLOCK --[?25h[?0c[?25l[?1c
-- INSERT ------
    ----
xxxx----
xxxx----[?25h[?0c-[?25l[?1c-- INSERT ------------------[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual mode maps (movement and text object)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap W /\u/s-1<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Kiwi
[?25l[?1cKiwiRaspberryDateWatermelonPeach[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c/\u/s-1
Kiw[?25h[?0c[?25l[?1c
-- INSERT --NoRaspberryDateWatermelonPeach[?25h[?0co[?25l[?1c
-- INSERT --NoberryDateWatermelonPeach[?25h[?0coberry[?25l[?1cDateWat
-- VISUAL --[?25h[?0c[?25l[?1crmelonPeach[?25h[?0c[?25l[?1cach[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Jambu
[?25l[?1c
JambuRambutanBananaTangerineMango[?25h[?0cJa[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c:'<,'>call SelectInCaps()
Jamb[?25h[?0c[?25l[?1c
-- INSERT ---RambutanBananaTangerineMango[?25h[?0c-[?25l[?1c
-- INSERT ---tanBananaTangerineMango[?25h[?0c-[?25l[?1ctanBanana
-- VISUAL --[?25h[?0c[?25l[?1c
--angerineMango[?25h[?0ca[?25l[?1cgo[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Operator-pending mode maps (movement and text object)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap W /\u/<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap <Leader>W :<C-U>call MoveToCap()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Pineapple
[?25l[?1cPineappleQuinceLoganberryOrangeGrapefruitKiwiZ[?25h[?0c[?25l[?1c
/\u/
-QuinceLoganberryOrangeGrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---LoganberryOrangeGrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---GrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---Z[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Juniper
[?25l[?1c
JuniperDurianZ[?25h[?0c[?25l[?1c
:call MoveToCap()
Whavcre
[?25h[?0c[?25l[?1c:call MoveToCap()
Qhevna[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Lemon
[?25l[?1c
LemonNectarineZ[?25h[?0c[?25l[?1c
:call SelectInCaps()
[?25h[?0c[?25l[?1cLemonLemonNectarineZ
Lemo[?25h[?0cn[?25l[?1c:call SelectInCaps()
NewNectarineZ[?25h[?0cwNecta[?25l[?1c
:call SelectInCaps()
wZ[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^zzzz
[?25l[?1czzzz[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noma | let v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1cE21: Cannot make changes, 'modifiable' is off[?25h[?0c[?25l[?1c:[?25h[?0cset ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed'
[?25l[?1c
ok[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset noma | let v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok'
[?25l[?1c
ok[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: replace last line'
[?25l[?1c
characterwise visual mode: replace last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0clet @" = 'x'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v:errmsg='.v:errmsg
[?25l[?1c
v:errmsg=[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete middle line'
[?25l[?1c
characterwise visual mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- VISUAL --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cb
c
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete middle two line'
[?25l[?1c
characterwise visual mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- VISUAL --[?25h[?0c[?25l[?1ca 
[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='characterwise visual mode: delete last line'
[?25l[?1c
characterwise visual mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete last two line'
[?25l[?1c
characterwise visual mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1cb 
[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Select mode maps
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>End> <End>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>Down> <Down>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>Del> <Del>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete middle line'
[?25l[?1c
characterwise select mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- SELECT --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cb
c
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete middle two line'
[?25l[?1c
characterwise select mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- SELECT --[?25h[?0c[?25l[?1ca 
[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='characterwise select mode: delete last line'
[?25l[?1c
characterwise select mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c
-- SELECT --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete last two line'
[?25l[?1c
characterwise select mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c

-- SELECT --[?25h[?0c[?25l[?1cb 
[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete middle line'
[?25l[?1c
linewise select mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1ca 


-- SELECT LINE --[?25h[?0c[?25l[?1cbc
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete middle two line'
[?25l[?1c
linewise select mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1ca 


-- SELECT LINE --[?25h[?0c[?25l[?1ca
b 
[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='linewise select mode: delete last line'
[?25l[?1c
linewise select mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1cc 
-- SELECT LINE --[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete last two line'
[?25l[?1c
linewise select mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1cb 

-- SELECT LINE --[?25h[?0c[?25l[?1cb
c 
[?25h[?0c[?25l[?1c~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='v_p: replace last character with line register at middle line'
[?25l[?1c
v_p: replace last character with line register at middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0cbb[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1cccc
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at middle line selecting

newline'
[?25l[?1clinewise select mode: delete middle two line
c---linewise select mode: delete last line
ab
---linewise select mode: delete last two line
a---v_p: replace last character with line register at middle line
aaabbaaaccc
---v_p: replace last character with line register at middle line selecting newline[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0cbb[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1c
ccc
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at last line'
[?25l[?1c
v_p: replace last character with line register at last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0ccc[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at last line selecting n

ewline'
[?25l[?1caaa
bbaaaccc
---v_p: replace last character with line register at middle line selecting newline
aaabbaaa
ccc
---v_p: replace last character with line register at last line
aaabbb
ccaaa---v_p: replace last character with line register at last line selecting newline[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0ccc[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='gv in exclusive select mode after operation'
[?25l[?1c
gv in exclusive select mode after operation[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='zzz '
[?25l[?1c
zzz[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='äà '
[?25l[?1c
äÃ[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1czzz[?25h[?0c[?25l[?1c
zzz[?25h[?0c
[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cäÃ[?25h[?0c[?25l[?1c
zzz[?25h[?0c[?25l[?1c
-- VISUAL --zzz[?25h[?0c[?25l[?1cINSERTxxx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='gv in exclusive select mode without operation'
[?25l[?1c
gv in exclusive select mode without operation[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='zzz '
[?25l[?1c
zzz[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1czzz[?25h[?0c[?25l[?1c
zzz[?25h[?0c[?25l[?1c
-- VISUAL --zzz[?25h[?0c[?25l[?1cINSERTxxx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c/^start:/+2,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 123L, 1328C written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test94 = test61; then \
#	  if diff test.out test94.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test94.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test94.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test95.failed test.ok test.out X* viminfo
cp test95.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test95.in
[?25h[?8c[?25h[?0c[?25l[?1c"test95.in" 141 lines, 5827 charactersTest for regexp patterns with multi-byte support, using utf-8.
See test64 for the non-multi-byte tests.

A pattern that gives the expected result produces OK, so that we know it was
actually tried.

STARTTEST
:so small.vim
:so mbyte.vim
:set nocp encoding=utf-8 viminfo+=nviminfo nomore
:" tl is a List of Lists with:
:"    2: test auto/old/new  0: test auto/old  1: test auto/new
:"    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 = []
:
:"""" Multi-byte character tests. These will fail unless vim is compiled
:"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for regexp patterns with multi-byte support, using utf-8.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 131 lines, 5590 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:endif
:      endfor
:      unlet i
:    endif
:  endfor
:endfor
:unlet t tl e l
:
:" check that 'ambiwidth' does not change the meaning of \p
:set regexpengine=1 ambiwidth=single
:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=1 ambiwidth=double
:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=single
:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=double
:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
:
:/\%#=1^Results/,$wq! test.out
ENDTEST

Results of test95:
~                                                                               [?25h[?0c
[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp encoding=utf-8 viminfo+=nviminfo nomore
[?25l[?1c:endif
:      endfor
:      unlet i
:    endif
:  endfor
:endfor
:unlet t tl e l
:
:" check that 'ambiwidth' does not change the meaning of \p
:set regexpengine=1 ambiwidth=single
:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=1 ambiwidth=double
:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=single
:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=double
:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
:
:/\%#=1^Results/,$wq! test.out
ENDTEST

Results of test95:
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c" tl is a List of Lists with:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    2: test auto/old/new  0: test auto/old  1: test auto/new
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp pattern
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    text to test the pattern on
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected match (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 1 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 2 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    etc.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  When there is no match use only the first two items.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Multi-byte character tests. These will fail unless vim is compiled
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[=a=]]\+', 'ddaãâbcd', 'aãâ'])^I^I^I^I^I^I^I^I" equivalence

classes
[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0ccall add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oij

asoifjos'])
[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0ccall add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna']

)[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" this is not a normal "i" but 0xec
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p\+', 'ìa', 'ìa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p*', 'aあ', 'aあ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test recognition of some character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\i\+', '&*¨xx ', 'xx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\f\+', '&*<9f>fname ', 'fname'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test composing character matching
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.ม', 'xมม่x yมy', 'yม'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.มม่', 'xมม่x yมy', 'xมม่'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\u05b9\u05bb", " y\u05b9 x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9\u05bb", " y\u05bb x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "a", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ca", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "a\u0300", "ca\u0300t", "a\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\%C', "ca\u0300t", "a\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ca\%C', "ca\u0300t", "ca\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ca\%Ct', "ca\u0300t", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test \Z
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ú\Z', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'יהוה\Z', 'יהוה', 'יהוה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְהווָה\Z', 'יהוה', 'יהוה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'יהוה\Z', 'ייְהווָה', 'ייְהווָה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְהווָה\Z', 'ייְהווָה', 'ייְהווָה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְ\Z', 'ווְייַ', 'ייַ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200dxy", "ק\u200dx"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200dx\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200dx\\Z", "xק\u200dxy", "ק\u200dx"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\\Z", "xyz"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\\Z\u05b9", "xyz"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\\Z", "xy\u05b9z", "y\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\\Z\u05b9", "xy\u05b9z", "y\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\u05b9\\+\\Z", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\\Z\u05b9\\+", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Combining different tests and features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^[=a=]]\+', 'ddaãâbcd', 'dd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let text = t[2]

[?25l[?1c:  [?25h[?0c:  let matchidx = 3

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    try

[?25l[?1c:      [?25h[?0c:      let l = matchlist(text, pat)

[?25l[?1c:      [?25h[?0c:    catch

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l[?1c:      [?25h[?0c:    endtry

[?25l[?1c:    [?25h[?0c:" check the match itself

[?25l[?1c:    [?25h[?0c:    if len(l) == 0 && len(t) > matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    elseif len(l) > 0 && len(t) == matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l[?1c:      [?25h[?0c:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if len(l) > 0

[?25l[?1c:      [?25h[?0c:"   check all the nine submatches

[?25l[?1c:      [?25h[?0c:      for i in range(1, 9)

[?25l[?1c:[?25h[?0c:        if len(t) <= matchidx + i

[?25l[?1c:[?25h[?0c:          let e = ''

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          let e = t[matchidx + i]

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:        if l[i] != e

[?25l[?1c:[?25h[?0c:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:      endfor

[?25l[?1c:      [?25h[?0c:      unlet i

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl e l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" check that 'ambiwidth' does not change the meaning of \p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset regexpengine=1 ambiwidth=single
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 1 ambi single: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=1 ambiwidth=double
[?25l[?1cOK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 1 ambi double: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=2 ambiwidth=single
[?25l[?1cOK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
eng 1 ambi double: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 2 ambi single: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=2 ambiwidth=double
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
eng 1 ambi double: 0
eng 2 ambi single: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 2 ambi double: 0[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/\%#=1^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 140L, 2022C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test95 = test61; then \
#	  if diff test.out test95.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test95.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test95.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test98.failed test.ok test.out X* viminfo
cp test98.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test98.in
[?25h[?8c[?25h[?0c[?25l[?1c"test98.in" 43 lines, 908 charactersTest for 'scrollbind' causing an unexpected scroll of one of the windows.
STARTTEST
:so small.vim
:" We don't want the status line to cause problems:
:set laststatus=0
:let g:totalLines = &lines * 20
:let middle = g:totalLines / 2
:wincmd n
:wincmd o
:for i in range(1, g:totalLines)
:    call setline(i, 'LINE ' . i)
:endfor
:exe string(middle)
:normal zt
:normal M
:aboveleft vert new
:for i in range(1, g:totalLines)
:    call setline(i, 'line ' . i)
:endfor
:exe string(middle)
:normal zt
:normal M
:" Execute the following two command at once to reproduce the problem.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'scrollbind' causing an unexpected scroll of one of the windows.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 791 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:setl scb | wincmd p
:setl scb
:wincmd w
:let topLineLeft = line('w0')
:wincmd p
:let topLineRight = line('w0')
:setl noscrollbind
:wincmd p
:setl noscrollbind
:q!
:%del _
:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight))
:w! test.out
:brewind
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" We don't want the status line to cause problems:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset laststatus=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:totalLines = &lines * 20
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet middle = g:totalLines / 2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd n
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cwincmd o
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(1, g:totalLines)
[?25l[?1c
:  [?25h[?0c:    call setline(i, 'LINE ' . i)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cLINE 1
LINE 2
LINE 3LINE 4LINE 5LINE 6LINE 7LINE 8LINE 9LINE 10LINE 11LINE 12LINE 13LINE 14LINE 15LINE 16LINE 17LINE 18LINE 19LINE 20LINE 21LINE 22LINE 23[?25h[?0c[?25l[?1c:[?25h[?0cexe string(middle)
[?25l[?1cLINE 229
LINE 230
LINE 231
LINE 232
LINE 233
LINE 234
LINE 235
LINE 236
LINE 237
LINE 238
LINE 239
LINE 240
LINE 241
LINE 242
LINE 243
LINE 244
LINE 245
LINE 246
LINE 247
LINE 248
LINE 249
LINE 250
LINE 251[?25h[?0c[?25l[?1c:[?25h[?0cnormal zt
[?25l[?1cLINE 252
LINE 253
LINE 254
LINE 255
LINE 256
LINE 257
LINE 258
LINE 259
LINE 260
LINE 261
LINE 262[?25h[?0c[?25l[?1c:[?25h[?0cnormal M
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caboveleft vert new
[?25l[?1c        |||||||||||||||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       LINE 240LINE 241LINE 242LINE 243LINE 244LINE 245LINE 246LINE 247LINE 248LINE 249LINE 250LINE 251LINE 252LINE 253LINE 254LINE 255LINE 256LINE 257LINE 258LINE 259LINE 260LINE 261LINE 262[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(1, g:totalLines)
[?25l[?1c
:  [?25h[?0c:    call setline(i, 'line ' . i)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cline 1|
line 2|
line 3                                  
line 4                                  
line 5                                  
line 6                                  
line 7                                  
line 8                                  
line 9                                  
line 10                                 
line 11                                 
line 12                                 
line 13                                 
line 14                                 
line 15                                 
line 16                                 
line 17                                 
line 18                                 
line 19                                 
line 20                                 
line 21                                 
line 22                                 
line 23                                 LINE 240LINE 241[?25h[?0c[?25l[?1c:[?25h[?0cexe string(middle)
[?25l[?1c2293023123223323423523623723823924024124224324424524624748495051[?25h[?0c[?25l[?1c:[?25h[?0cnormal zt
[?25l[?1cline 240                                
line 241                                
line 242                                
line 243                                
line 244                                
line 245                                
line 246                                
line 247                                
line 248                                
line 249                                
line 250                                
line 251                                
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        line 252
line 253
line 254
line 255
line 256
line 257
line 258
line 259
line 260
line 261
line 262[?25h[?0c[?25l[?1c:[?25h[?0cnormal M
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Execute the following two command at once to reproduce the problem.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl scb | wincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl scb
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet topLineLeft = line('w0')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet topLineRight = line('w0')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1cLINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINE[?25h[?0c[?25l[?1c:[?25h[?0c%del _
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, 'Difference between the top lines (left - right): ' . string(t

opLineLeft - topLineRight))
[?25l[?1cDifference between the top lines (left - right): 0[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 51 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test98.in" 43 lines, 908 characters:normal M:" Execute the following two command at once to reproduce the problem.:setl scb | wincmd p:setl scb:wincmd w:let topLineLeft = line('w0'):wincmd p:let topLineRight = line('w0'):setl noscrollbind:wincmd p:setl noscrollbind:q!:%del _:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight)):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test98 = test61; then \
#	  if diff test.out test98.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test98.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test98.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test99.failed test.ok test.out X* viminfo
cp test99.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test99.in
[?25h[?8c[?25h[?0c[?25l[?1c"test99.in" 69 lines, 1400 charactersTests for regexp with multi-byte encoding and various magic settings.
Test matchstr() with a count and multi-byte chars.
See test44 for exactly the same test with re=1.

STARTTEST
:so mbyte.vim
:set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
:set re=2
/^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
f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with multi-byte encoding and various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 43 lines, 931 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
: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
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
[?25l[?1c:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
: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
:[?25h[?0c" Test \%u, [\u] and friends
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%u20ac
[?25l[?1c
/[?25h[?0c[\u4f7f\u5929]\+
[?25l[?1c
/[?25h[?0c\%U12345678
[?25l[?1c
/[?25h[?0c[\U1234abcd\u1234\uabcd]
[?25l[?1c
/[?25h[?0c\%d21879b
[?25l[?1c
:[?25h[?0c" Test backwards search from a multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cx
[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" l Test what 7.3.192 fixed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^l
[?25l[?1c
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
#@/bin/sh -c "if test -f test.out -a test99 = test61; then \
#	  if diff test.out test99.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test99.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test99.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test103.failed test.ok test.out X* viminfo
cp test103.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test103.in
[?25h[?8c[?25h[?0c[?25l[?1c"test103.in" 37 lines, 823 charactersTest for visual mode not being reset causing E315 error.
STARTTEST
:so small.vim
:enew
:let g:msg="Everything's fine."
:function! TriggerTheProblem()
:" At this point there is no visual selection because :call reset it.
:" Let's restore the selection:
:normal gv
:'<,'>del _
:try
:exe "normal \<Esc>"
:catch /^Vim\%((\a\+)\)\=:E315/
:echom 'Snap! E315 error!'
:let g:msg='Snap! E315 error!'
:endtry
:endfunction
:enew
:setl buftype=nofile
:call append(line('$'), 'Delete this line.')
:"
:"
:" NOTE: this has to be done by a call to a function because executing :del the[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for visual mode not being reset causing E315 error.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 723 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"ex-way will require the colon operator which resets the visual mode thus
:"preventing the problem:
:"
GV:call TriggerTheProblem()
:%del _
:call append(line('$'), g:msg)
:w! test.out
:brewind
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cenew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet g:msg="Everything's fine."
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! TriggerTheProblem()
[?25l[?1c
:  [?25h[?0c:^I" At this point there is no visual selection because :call reset it.

[?25l[?1c:  [?25h[?0c:^I" Let's restore the selection:

[?25l[?1c:  [?25h[?0c:^Inormal gv

[?25l[?1c:  [?25h[?0c:^I'<,'>del _

[?25l[?1c:  [?25h[?0c:^Itry

[?25l[?1c:    [?25h[?0c:^I^Iexe "normal \<Esc>"

[?25l[?1c:    [?25h[?0c:^Icatch /^Vim\%((\a\+)\)\=:E315/

[?25l[?1c:    [?25h[?0c:^I^Iechom 'Snap! E315 error!'

[?25l[?1c:    [?25h[?0c:^I^Ilet g:msg='Snap! E315 error!'

[?25l[?1c:    [?25h[?0c:^Iendtry

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cenew
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl buftype=nofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), 'Delete this line.')
[?25l[?1cDelete this line.[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" NOTE: this has to be done by a call to a function because executing :del the
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"       ex-way will require the colon operator which resets the visual mode th

us[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"       preventing the problem:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c
[?25l[?1cDelete this line. 
[?25h[?0c[?25l[?1c:'<,'>[?25h[?0ccall TriggerTheProblem()
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c%del _
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), g:msg)
[?25l[?1cEverything's fine.[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 2 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test103.in" 37 lines, 823 characters:endtry
:endfunction:enew:setl buftype=nofile:call append(line('$'), 'Delete this line.'):":":" NOTE: this has to be done by a call to a function because executing :del the:"       ex-way will require the colon operator which resets the visual mode thus:"       preventing the problem::"GV:call TriggerTheProblem():%del _:call append(line('$'), g:msg):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test103 = test61; then \
#	  if diff test.out test103.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test103.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test103.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test104.failed test.ok test.out X* viminfo
cp test104.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test104.in
[?25h[?8c[?25h[?0c[?25l[?1c"test104.in" 30 lines, 698 charactersTests for :let.  vim: set ft=vim ts=8 :

STARTTEST
:so small.vim
:set runtimepath+=./sautest
:" Test to not autoload when assigning.  It causes internal error.
:try
:  let Test104#numvar = function('tr')
:  $put ='OK: ' . string(Test104#numvar)
:catch
:  $put ='FAIL: ' . v:exception
:endtry
:let a = 1
:let b = 2
:for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0
== 1 ? "a" : "b"}']
:  try
:    redir => messages
:    execute 'let' letargs
:    redir END
:    $put ='OK:'
:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')
:  catch[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :let.  vim: set ft=vim ts=8 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 24 lines, 618 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:    $put ='FAIL: ' . v:exception
:    redir END
:  endtry
:endfor
:/^Results/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset runtimepath+=./sautest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test to not autoload when assigning.  It causes internal error.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  let Test104#numvar = function('tr')

[?25l[?1c:  [?25h[?0c:  $put ='OK: ' . string(Test104#numvar)

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:  $put ='FAIL: ' . v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c:catch
:  $put ='FAIL: ' . v:exception
:endtry
:let a = 1
:let b = 2
:for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0
== 1 ? "a" : "b"}']
:  try:    redir => messages
:    execute 'let' letargsEND$put ='OK:'$put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')
:  catch'FAIL: ' . v:exception  redir END
:  endtryendfor/^Results/,$wq! test.out
ENDTESTResults of test104:
OK: function('tr')[?25h[?0c[?25l[?1c
:[?25h[?0clet a = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b = 2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0

== 1 ? "a" : "b"}']
[?25l[?1c:  [?25h[?0c:  try

[?25l[?1c:    [?25h[?0c:    redir => messages

[?25l[?1c:    [?25h[?0c:    execute 'let' letargs

[?25l[?1ca#1

b#2

:    [?25h[?0c:    redir END

[?25l[?1c:    [?25h[?0c:    $put ='OK:'

[?25l[?1c:    [?25h[?0c:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')

[?25l[?1c:    [?25h[?0c:  catch

[?25l[?1c:    [?25h[?0c:    $put ='FAIL: ' . v:exception

[?25l[?1c:    [?25h[?0c:    redir END

[?25l[?1c:    [?25h[?0c:  endtry

[?25l[?1c:  [?25h[?0c:endfor

[?25l[?1cb#2

b#2

a#1

a#1

b#2

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 13 lines, 244 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test104 = test61; then \
#	  if diff test.out test104.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test104.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test104.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test107.failed test.ok test.out X* viminfo
cp test107.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test107.in
[?25h[?8c[?25h[?0c[?25l[?1c"test107.in" 38 lines, 717 charactersTests for adjusting window and contents     vim: set ft=vim :

STARTTEST
:so small.vim
:new
:call setline(1, range(1,256))
:let r=[]
:func! GetScreenStr(row)
:   let str = ""
:   for c in range(1,3)
:let str .= nr2char(screenchar(a:row, c))
:   endfor
:   return str
:endfunc
:
:exe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
:
:exe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for adjusting window and contents     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 32 lines, 628 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(r, [line("w0"), s3])
:
:exe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:"/^start:/,$wq! test.out
ENDTESTtest107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, range(1,256))
[?25l[?1c1
234567891011[+][?25h[?0c[?25l[?1c:[?25h[?0clet r=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc! GetScreenStr(row)
[?25l[?1c
:  [?25h[?0c:   let str = ""

[?25l[?1c:  [?25h[?0c:   for c in range(1,3)

[?25l[?1c:    [?25h[?0c:       let str .= nr2char(screenchar(a:row, c))

[?25l[?1c:    [?25h[?0c:   endfor

[?25l[?1c:  [?25h[?0c:   return str

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c1
2
3
4
5
6[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
[?25l[?1c[No Name] [+]                                                                   :let s3=GetScreenStr(1)test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
[?25l[?1c50
51
52
53
54
55
56
57
58
59
[No Name] [+]                                                                   :let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST

test107.in                                                                      [?25h[?0c[?25l[?1c

:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
[?25l[?1c59
60
61
62
63
64
65
66
67
68
[No Name] [+]                                                                   :let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST

test107.in                                                                      [?25h[?0c[?25l[?1c

:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c:wincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipeout!
[?25l[?1c::exe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
::exe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
:exe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
::wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:":/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0c$put=r
[?25l[?1c3 more linesstart:
[1, '1  ']
[50, '50 ']
[59, '59 ']3 more lines[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 4 lines, 42 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test107 = test61; then \
#	  if diff test.out test107.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test107.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test107.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test108.failed test.ok test.out X* viminfo
cp test108.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test108.in
[?25h[?8c[?25h[?0c[?25l[?1c"test108.in" 88 lines, 1329 charactersTests for backtrace debug commands.     vim: set ft=vim :

STARTTEST
:so small.vim
:lang mess C
:function! Foo()
:   let var1 = 1
:   let var2 = Bar(var1) + 9
:   return var2
:endfunction
:
:function! Bar(var)
:    let var1 = 2 + a:var
:    let var2 = Bazz(var1) + 4
:    return var2
:endfunction
:
:function! Bazz(var)
:    let var1 = 3 + a:var
:    let var3 = "another var"
:    return var1
:endfunction
:new[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for backtrace debug commands.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 83 lines, 1251 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTup
b
echo "fil is not frame or finish, it is file"
fil
echo "\n- relative backtrace movement\n"
fr -1
frame
fra +1
fram
echo "\n- go beyond limits does not crash\n"
fr 100
fra
frame -40
fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang mess C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Foo()
[?25l[?1c
:  [?25h[?0c:   let var1 = 1

[?25l[?1c:  [?25h[?0c:   let var2 = Bar(var1) + 9

[?25l[?1c:  [?25h[?0c:   return var2

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Bar(var)
[?25l[?1c
:  [?25h[?0c:    let var1 = 2 + a:var

[?25l[?1c:  [?25h[?0c:    let var2 = Bazz(var1) + 4

[?25l[?1c:  [?25h[?0c:    return var2

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Bazz(var)
[?25l[?1c
:  [?25h[?0c:    let var1 = 3 + a:var

[?25l[?1c:  [?25h[?0c:    let var3 = "another var"

[?25l[?1c:  [?25h[?0c:    return var1

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       echo "\n- final result 19:"
cont:0debuggreedy
:redir END$put =out
:w! test.out
:qa!ENDTESTtest108.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cdebuggreedy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdebug echo Foo()
[?25l[?1cEntering Debug mode.  Type "cont" to continue.

cmd: echo Foo()

>[?25h[?0cstep

[?25l[?1cfunction Foo

line 1: let var1 = 1

>[?25h[?0cstep

[?25l[?1cfunction Foo

line 2: let var2 = Bar(var1) + 9

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 1: let var1 = 2 + a:var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 2: let var2 = Bazz(var1) + 4

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 1: let var1 = 3 + a:var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho "- show backtrace:\n"

[?25l[?1c- show backtrace:

>[?25h[?0cbacktrace

[?25l[?1c  2 function Foo[2]

  1 Bar[2]

->0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho "\nshow variables on different levels:\n"

[?25l[?1c
show variables on different levels:

>[?25h[?0cecho var1

[?25l[?1c6
>[?25h[?0cup

[?25l[?1c>[?25h[?0cback

[?25l[?1c  2 function Foo[2]

->1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho var1

[?25l[?1c3
>[?25h[?0cu

[?25l[?1c>[?25h[?0cbt

[?25l[?1c->2 function Foo[2]

  1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho var1

[?25l[?1c1
>[?25h[?0cecho "\n- undefined vars:\n"

[?25l[?1c
- undefined vars:

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 3: return var1

>[?25h[?0cframe 2

[?25l[?1c>[?25h[?0cecho "undefined var3 on former level:"

[?25l[?1cundefined var3 on former level:

>[?25h[?0cecho var3

[?25l[?1cError detected while processing function Foo[2]..Bar[2]..Bazz:

line    3:

E121: Undefined variable: var3

E15: Invalid expression: var3

>[?25h[?0cfr 0

[?25l[?1c>[?25h[?0cecho "here var3 is defined with \"another var\":"

[?25l[?1chere var3 is defined with "another var":

>[?25h[?0cecho var3

[?25l[?1canother var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 3: End of function

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 3: return var2

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 3: End of function

>[?25h[?0cup

[?25l[?1c>[?25h[?0cecho "\nundefined var2 on former level"

[?25l[?1c
undefined var2 on former level

>[?25h[?0cecho var2

[?25l[?1cError detected while processing function Foo[2]..Bar:

line    3:

E121: Undefined variable: var2

E15: Invalid expression: var2

>[?25h[?0cdown

[?25l[?1c>[?25h[?0cecho "here var2 is defined with 10:"

[?25l[?1chere var2 is defined with 10:

>[?25h[?0cecho var2

[?25l[?1c10

>[?25h[?0cecho "\n- backtrace movements:\n"

[?25l[?1c
- backtrace movements:

>[?25h[?0cb

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cecho "\nnext command cannot go down, we are on bottom\n"

[?25l[?1c
next command cannot go down, we are on bottom

>[?25h[?0cdown

[?25l[?1cframe is zero

>[?25h[?0cup

[?25l[?1c>[?25h[?0cecho "\nnext command cannot go up, we are on top\n"

[?25l[?1c
next command cannot go up, we are on top

>[?25h[?0cup

[?25l[?1cframe at highest level: 1

>[?25h[?0cb

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cecho "fil is not frame or finish, it is file"

[?25l[?1cfil is not frame or finish, it is file

>[?25h[?0cfil

[?25l[?1c"[No Name]" --No lines in buffer--

>[?25h[?0cecho "\n- relative backtrace movement\n"

[?25l[?1c
- relative backtrace movement

>[?25h[?0cfr -1

[?25l[?1c>[?25h[?0cframe

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cfra +1

[?25l[?1c>[?25h[?0cfram

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cecho "\n- go beyond limits does not crash\n"

[?25l[?1c
- go beyond limits does not crash

>[?25h[?0cfr 100

[?25l[?1cframe at highest level: 1

>[?25h[?0cfra

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cframe -40

[?25l[?1cframe is zero

>[?25h[?0cfram

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cecho "\n- final result 19:"

[?25l[?1c
- final result 19:

>[?25h[?0ccont

[?25l[?1c19

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c0debuggreedy
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST

test108.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =out
[?25l[?1c83 more lines->1 function Foo[2]
  0 Barline 3: End of functionframe is zero  1 function Foo[2]->0 Barline 3: End of function- final result 19:19[+][?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 84 lines, 1390 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test108 = test61; then \
#	  if diff test.out test108.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test108.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test108.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_autocmd_option.failed test.ok test.out X* viminfo
cp test_autocmd_option.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autocmd_option.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_autocmd_option.in" 77 lines, 2954 charactersTest for option autocommand

STARTTEST
:so small.vim
:if !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! test.out | qa! | endif
:fu! AutoCommand(match)
:let c=g:testcase
:let item=remove(g:options, 0)
:let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Scope:
<%s>\n", item[0], item[1], item[2], item[3])
:let c.=printf("Autocmd Option: <%s>,", a:match)
:let c.=printf(" OldVal: <%s>,", v:option_old)
:let c.=printf(" NewVal: <%s>,", v:option_new)
:let c.=printf(" Scope: <%s>\n", v:option_type)
:call setreg('r', printf("%s\n%s", getreg('r'), c))
:endfu
:au OptionSet * :call AutoCommand(expand("<amatch>"))
:let g:testcase="1: Setting number option\n"
:let g:options=[['number', 0, 1, 'global']]
:set nu
:let g:testcase="2: Setting local number option\n"
:let g:options=[['number', 1, 0, 'local']][?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for option autocommand[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 2896 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let g:testcase="13: Setting option backspace through setbufvar()\n"
:let g:options=[['backup', '', '1', 'local']]
: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
:call setbufvar(1, '&l:bk', 1)
: "should trigger, use correct option name
:call setbufvar(1, '&backup', 1)
:let g:testcase="14: Setting number option using setwinvar\n"
:let g:options=[['number', 0, 1, 'local']]
:call setwinvar(0, '&number', 1)
:" Write register now, because next test shouldn't output anything.
:$put r
:let @r=''
:let g:testcase="\n15: Setting key option, shouldn't trigger\n"
:let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
:setlocal key=blah
:setlocal key=
:$put =g:testcase
:$put r
:/^dummy text/,$w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! 

test.out | qa! | endif
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"[?25h[?0c[?25l[?1c
:[?25h[?0cfu! AutoCommand(match)
[?25l[?1c
:  [?25h[?0c:^Ilet c=g:testcase

[?25l[?1c:  [?25h[?0c:       let item=remove(g:options, 0)

[?25l[?1c:  [?25h[?0c:       let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Sco

pe: <%s>\n", item[0], item[1], item[2], item[3])

[?25l[?1c:  [?25h[?0c:       let c.=printf("Autocmd Option: <%s>,", a:match)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" OldVal: <%s>,", v:option_old)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" NewVal: <%s>,", v:option_new)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" Scope: <%s>\n", v:option_type)

[?25l[?1c:  [?25h[?0c:       call setreg('r', printf("%s\n%s", getreg('r'), c))

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"
:let g:options=[['backup', '', '1', 'local']]
: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
:call setbufvar(1, '&l:bk', 1)
: "should trigger, use correct option name
:call setbufvar(1, '&backup', 1)
:let g:testcase="14: Setting number option using setwinvar\n"
:let g:options=[['number', 0, 1, 'local']]
:call setwinvar(0, '&number', 1)[?25h[?0c[?25l[?1c
:[?25h[?0cau OptionSet * :call AutoCommand(expand("<amatch>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="1: Setting number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"
     57 :let g:options=[['backup', '', '1', 'local']]
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
     59 :call setbufvar(1, '&l:bk', 1)
     60 : "should trigger, use correct option name
     61 :call setbufvar(1, '&backup', 1)
     62 :let g:testcase="14: Setting number option using setwinvar\n"
     63 :let g:options=[['number', 0, 1, 'local']]
     64 :call setwinvar(0, '&number', 1)
     65 :" Write register now, because next test shouldn't output anything.
     66 :$put r
     67 :let @r=''
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
     70 :setlocal key=blah
     71 :setlocal key=
     72 :$put =g:testcase
     73 :$put r
     74 :/^dummy text/,$w! test.out
     75 :qa!
     76 ENDTEST
     77 dummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="2: Setting local number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 1, 0, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal nonu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n":let g:options=[['backup', '', '1', 'local']]: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger:call setbufvar(1, '&l:bk', 1): "should trigger, use correct option name:call setbufvar(1, '&backup', 1):let g:testcase="14: Setting number option using setwinvar\n":let g:options=[['number', 0, 1, 'local']]:call setwinvar(0, '&number', 1):" Write register now, because next test shouldn't output anything.:$put r:let @r='':let g:testcase="\n15: Setting key option, shouldn't trigger\n":let g:options=[['key', 'invalid', 'invalid1', 'invalid']]:setlocal key=blah:setlocal key=:$put =g:testcase:$put r:/^dummy text/,$w! test.out:qa!ENDTESTdummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="3: Setting global number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nonu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="4: Setting local autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="5: Setting global autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="6: Setting global autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ai!
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c Should not print anything, use :noa
[?25l[?1cE492: Not an editor command: Should not print anything, use :noa[?25h[?0c[?25l[?1c:[?25h[?0cnoa :set nonu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="7: Setting several global list and number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list nu
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"$
     57 :let g:options=[['backup', '', '1', 'local']]$
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger$
     59 :call setbufvar(1, '&l:bk', 1)$
     60 : "should trigger, use correct option name$
     61 :call setbufvar(1, '&backup', 1)$
     62 :let g:testcase="14: Setting number option using setwinvar\n"$
     63 :let g:options=[['number', 0, 1, 'local']]$
     64 :call setwinvar(0, '&number', 1)$
     65 :" Write register now, because next test shouldn't output anything.$
     66 :$put r$
     67 :let @r=''$
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"$
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]$
     70 :setlocal key=blah$
     71 :setlocal key=$
     72 :$put =g:testcase$
     73 :$put r$
     74 :/^dummy text/,$w! test.out$
     75 :qa!$
     76 ENDTEST$
     77 dummy text$[?25h[?0c[?25l[?1c:[?25h[?0cnoa set nolist nonu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n":let g:options=[['backup', '', '1', 'local']]: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger:call setbufvar(1, '&l:bk', 1): "should trigger, use correct option name:call setbufvar(1, '&backup', 1):let g:testcase="14: Setting number option using setwinvar\n":let g:options=[['number', 0, 1, 'local']]:call setwinvar(0, '&number', 1):" Write register now, because next test shouldn't output anything.:$put r:let @r='':let g:testcase="\n15: Setting key option, shouldn't trigger\n":let g:options=[['key', 'invalid', 'invalid1', 'invalid']]:setlocal key=blah:setlocal key=:$put =g:testcase:$put r:/^dummy text/,$w! test.out:qa!ENDTESTdummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="8: Setting global acd\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autochdir', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal acd
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="9: Setting global autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="10: Setting local autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal ar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="11: Setting global autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal invar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="12: Setting option backspace through :let\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['backspace', '', 'eol,indent,start', 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet &bs="eol,indent,start"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="13: Setting option backspace through setbufvar()\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['backup', '', '1', 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c "try twice, first time, shouldn't trigger because option name is invalid, sec

ond time, it should trigger
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"[?25h[?0c[?25l[?1c
:[?25h[?0ccall setbufvar(1, '&l:bk', 1)
[?25l[?1cE355: Unknown option: l:bk[?25h[?0c[?25l[?1c:[?25h[?0c "should trigger, use correct option name
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setbufvar(1, '&backup', 1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="14: Setting number option using setwinvar\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setwinvar(0, '&number', 1)
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"
     57 :let g:options=[['backup', '', '1', 'local']]
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
     59 :call setbufvar(1, '&l:bk', 1)
     60 : "should trigger, use correct option name
     61 :call setbufvar(1, '&backup', 1)
     62 :let g:testcase="14: Setting number option using setwinvar\n"
     63 :let g:options=[['number', 0, 1, 'local']]
     64 :call setwinvar(0, '&number', 1)
     65 :" Write register now, because next test shouldn't output anything.
     66 :$put r
     67 :let @r=''
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
     70 :setlocal key=blah
     71 :setlocal key=
     72 :$put =g:testcase
     73 :$put r
     74 :/^dummy text/,$w! test.out
     75 :qa!
     76 ENDTEST
     77 dummy text[?25h[?0c[?25l[?1c:[?25h[?0c" Write register now, because next test shouldn't output anything.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put r
[?25l[?1c60 more lines117Autocmd Option: <autoread>, OldVal: <0>, NewVal: <1>, Scope: <global>11811910: Setting local autoread    120 Expected: Name: <autoread>, Oldval: <0>, NewVal: <1>, Scope: <local>121Autocmd Option: <autoread>, OldVal: <1>, NewVal: <1>, Scope: <local>12212311: Setting global autoread124Expected: Name: <autoread>, Oldval: <1>, NewVal: <0>, Scope: <global>125Autocmd Option: <autoread>, OldVal: <1>, NewVal: <0>, Scope: <global>12612712: Setting option backspace through :let128Expected: Name: <backspace>, Oldval: <>, NewVal: <eol,indent,start>, Scope: <global>129Autocmd Option: <backspace>, OldVal: <>, NewVal: <eol,indent,start>, Scope: <global>131313: Setting option backspace through setbufvar()13Expected: Name: <backup>, Oldval: <>, NewVal: <1>, Scope: <local>13Autocmd Option: <backup>, OldVal: <0>, NewVal: <1>, Scope: <local>131314: Setting number option using setwinvar13xpected: Name: <number>, Oldval: <0>, NewVal: <1>, Scope: <local>13Autocmd Option: <number>, OldVal: <0>, NewVal: <1>, Scope: <local>[?25h[?0c[?25l[?1c:[?25h[?0clet @r=''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="\n15: Setting key option, shouldn't trigger\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['key', 'invalid', 'invalid1', 'invalid']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal key=blah
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal key=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:testcase
[?25l[?1c    138 
    139 15: Setting key option, shouldn't trigger[?25h[?0c[?25l[?1c
:[?25h[?0c$put r
[?25l[?1c
    140 [?25h[?0c[?25l[?1c
:[?25h[?0c/^dummy text/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 64 lines, 2700 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_autocmd_option = test61; then \
#	  if diff test.out test_autocmd_option.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_autocmd_option.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autocmd_option.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autoformat_join.in
[?25h[?8c[?25h[?0c[?25l[?1c"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:[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for setting the '[,'] marks when joining lines.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 9 lines, 265 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^\t\t/
[?25l[?1c[?25h[?0c[?25l[?1cattamen consulite per voster honur.
Tua pulchra facies me fay planszer milies[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^This line/;'}-join
[?25l[?1cThis line.  Should be joined with the next line and with this line


~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet b=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='First test: Start/End '.string(a)
[?25l[?1cFirst test: Start/End '[0, 16, 1, 0]/[0, 17, 1, 0]'[?25h[?0c[?25l[?1c:[?25h[?0c$put ='Second test: Start/End '.string(b)
[?25l[?1cSecond test: Start/End '[0, 19, 11, 0]/[0, 19, 67, 0]'[?25h[?0c[?25l[?1c:[?25h[?0c/^\t\t/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 292 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_autoformat_join = test61; then \
#	  if diff test.out test_autoformat_join.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_autoformat_join.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autoformat_join.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_changelist.failed test.ok test.out X* viminfo
cp test_changelist.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_changelist.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_changelist.in" 22 lines, 288 charactersTest changelist position after splitting window
Set 'undolevels' to make changelist for sourced file

STARTTEST
:so small.vim
Gkylp:set ul=100
Gylp:set ul=100
gg
:vsplit
:try
:  normal g;
:  normal ggVGcpass^[
:catch
:  normal ggVGcfail^[
:finally
:  %w! test.out
:endtry
:qa!
ENDTEST

1
2
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest changelist position after splitting window[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 163 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c

[?25l[?1c11[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c22[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cvsplit
[?25l[?1c|
 window                                 |
Set 'undolevels' to make changelist for |
sourced file|
             |
STARTTEST       |
:so small.vim  |
Gkylp:set ul=100|
Gylp:set ul=100|
gg  |
:vsplit     |
:try                 |
:  normal g;|pass|
:catch  |
:  normal ggVGcfail^[|
:finally|
:  %w! test.out|
:endtry|
:qa!|
ENDTEST|
  |
test_changelist.in [+]                   Test changelist position after splitting windowSet 'undolevels' to make changelist forsourced fileSTARTTEST:so small.vimGkylp:set ul=100Gylp:set ul=100gg:vsplit:try:  normal g;:  normal ggVGcpass^[:catch:  normal ggVGcfail^[:finally:  %w! test.out:endtry:qa!ENDTESTtest_changelist.in [+]                 [?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  normal g;

[?25l[?1c:  [?25h[?0c:  normal ggVGcpass
[?25l[?1c21 fewer lines
:  

:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:  normal ggVGcfail

[?25l[?1c:  

:  [?25h[?0c:finally

[?25l[?1c:  [?25h[?0c:  %w! test.out

[?25l[?1c"test.out" [New File] 1 line, 5 characters written

:  [?25h[?0c:endtry
[?25l[?1cpass||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                          pass~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                         [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_changelist = test61; then \
#	  if diff test.out test_changelist.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_changelist.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_changelist.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_close_count.failed test.ok test.out X* viminfo
cp test_close_count.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_close_count.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_close_count.in" 153 lines, 2665 charactersTests for :[count]close! and :[count]hide     vim: set ft=vim :

STARTTEST
:so small.vim
:let tests = []
:for i in range(5)
:new
:endfor
:4wincmd w
:close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:$close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1wincmd w
:2close![?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :[count]close! and :[count]hide     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 41 lines, 749 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(tests, buffers)
:2wincmd w
:+1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(0, map(copy(tests), 'join(v:val, " ")'))
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:for i in range(5)
:new
:endfor
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:4wincmd w
:.hide[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cclose!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?25h[?0c[?25l[?1c


:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c-1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c+1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File]test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 7 lines, 39 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 15 4 25 27 5 27 5~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c"test_close_count.in" 153 lines, 2665 characters:2wincmd w
:+1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(0, map(copy(tests), 'join(v:val, " ")'))
:w:only!:b1ENDTESTSTARTTEST:let tests = []:for i in range(5):new:endfor:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers):4wincmd w:.hide:let buffers = [][?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 44 lines, 815 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:2wincmd w
:+hide
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new
:endfor
:1wincmd w
:$ hide
:let buffers = []
:windo call add(buffers, bufnr('%'))[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c.hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?25h[?0c[?25l[?1c


:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c-hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c+hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 7 lines, 39 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c13 12 11 10 9 113 12 11 9 112 11 9 112 11 9[+][?25h[?0c[?25l[?1c12 9
15 12 9
15 12[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0cw
[?25l[?1c"test.out" 15 lines, 106 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 15 4 25 27 5 27 513 12 11 10 9 113 12 11 9 112 11 9 112 11 912 915 12 9
15 12~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c:+hide:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w:only!:b1ENDTESTSTARTTEST
:let tests = []
:set hidden
:for i in range(5):new:endfor:1wincmd w:$ hide:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers)"test_close_count.in" line 93 of 153 --60%-- col 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 448 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:1wincmd w
:.+close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new
:endfor
:4wincmd w
^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$ hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$-1 close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c.+close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 15 lines, 106 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c[+][?25h[?0c[?25l[?1c15 12 915 120 19 18 17 16
20 19 18 16
20 18 16
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0cw
[?25l[?1c"test.out" 19 lines, 143 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5

13 12 11 10 9 1
13 12 11 9 1
12 11 9 1
12 11 9
12 9
15 12 9
15 12

20 19 18 17 16
20 19 18 16
20 18 16

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c:.+close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w:only!:b1ENDTESTSTARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new:endfor:4wincmd w
^Wc:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers)"test_close_count.in" line 121 of 153 --79%-- col 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 28 lines, 511 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST1^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
9^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1wincmd w
2^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:only!
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" line 19 of 19 --100%-- col 16 5 4 2 1
5 4 2 15 4 25 27 5 27 513 12 11 10 9 113 12 11 9 112 11 9 112 11 912 915 12 915 1220 19 18 17 1620 19 18 1620 18 16[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c25 24 23 21 124 23 21 124 23 2124 21[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 23 lines, 183 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_close_count = test61; then \
#	  if diff test.out test_close_count.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_close_count.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_close_count.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_comparators.failed test.ok test.out X* viminfo
cp test_comparators.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_comparators.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_comparators.in" 21 lines, 283 characters" Test for expression comparators.   vim: set ft=vim :


STARTTEST
:so small.vim
:try
:  let oldisident=&isident
:  set isident+=#
:  if 1 is#1
:    $put ='ok'
:  else
:    $put ='ng'
:  endif
:finally
:  let &isident=oldisident
:endtry
:"
:/^marker/+1,$wq! test.out
ENDTEST

marker
~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c" Test for expression comparators.   vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 200 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  let oldisident=&isident

[?25l[?1c:  [?25h[?0c:  set isident+=#

[?25l[?1c:  [?25h[?0c:  if 1 is#1

[?25l[?1c:    [?25h[?0c:    $put ='ok'

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    $put ='ng'

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:finally

[?25l[?1c:  [?25h[?0c:  let &isident=oldisident

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c" Test for expression comparators.   vim: set ft=vim :


STARTTEST
:so small.vim
:try
:  let oldisident=&isident
:  set isident+=#
:  if 1 is#1
:    $put ='ok'ok[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^marker/+1,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1 line, 3 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_comparators = test61; then \
#	  if diff test.out test_comparators.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_comparators.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_comparators.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_erasebackword.failed test.ok test.out X* viminfo
cp test_erasebackword.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_erasebackword.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_erasebackword.in" 19 lines, 427 charactersTest for erasing backword

STARTTEST
:so small.vim
:so mbyte.vim
:set encoding=utf-8
G
:/^test/,$w! test.out
:qa!
ENDTEST

test starts here:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for erasing backword[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 12 lines, 362 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest for erasing backword

STARTTEST
:so small.vim
:so mbyte.vim
:set encoding=utf-8
G
o wwwこんにちわ世界ワールドvim ^W^[
o wwwこんにちわ世界ワールドvim ^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^W^W^[
:/^test/,$w! test.out
:qa!
ENDTEST

test starts here:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c

[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1cド[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c/^test/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 111 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_erasebackword = test61; then \
#	  if diff test.out test_erasebackword.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_erasebackword.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_erasebackword.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_eval.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_eval.in" 247 lines, 6201 charactersTest for various eval features.   vim: set ft=vim :

Note: system clipboard is saved, changed and restored.

clipboard contents
something else

STARTTEST
:so small.vim
:set encoding=latin1
:set noswapfile
:lang C
:fun AppendRegContents(reg)
  call AppendRegParts(a:reg, getregtype(a:reg), getreg(a:reg), string(getreg(a:reg, 0, 1)), getreg(a:reg, 1), string(getreg(a:reg, 1, 1)))
:endfun
:fun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
  call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)', a:reg, a:type, a:cont, a:strcont, a:cont1, a:strcont1))
endfun
:command -nargs=? AR :call AppendRegContents(<q-args>)
:fun SetReg(...)
    call call('setreg', a:000)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for various eval features.   vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 233 lines, 6010 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=latin1
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun AppendRegContents(reg)
[?25l[?1c
:  [?25h[?0c  call AppendRegParts(a:reg, getregtype(a:reg), getreg(a:reg), string(getreg

(a:reg, 0, 1)), getreg(a:reg, 1), string(getreg(a:reg, 1, 1)))

[?25l[?1c:  [?25h[?0c:endfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n[?25h[?0c[?25l[?1c:[?25h[?0cfun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
[?25l[?1c
:  [?25h[?0c  call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)', a:re

g, a:type, a:cont, a:strcont, a:cont1, a:strcont1))

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n[?25h[?0c[?25l[?1c:[?25h[?0ccommand -nargs=? AR :call AppendRegContents(<q-args>)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun SetReg(...)
[?25l[?1c
:  [?25h[?0c    call call('setreg', a:000)

[?25l[?1c:  [?25h[?0c    call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))

[?25l[?1c:  [?25h[?0c    call AppendRegContents(a:1)

[?25l[?1c:  [?25h[?0c    if a:1 isnot# '='

[?25l[?1c:    [?25h[?0c        execute "silent normal! Go==\n==\e\"".a:1."P"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?25h[?0c[?25l[?1c:[?25h[?0cfun ErrExe(str)
[?25l[?1c
:  [?25h[?0c    call append('$', 'Executing '.a:str)

[?25l[?1c:  [?25h[?0c    try

[?25l[?1c:    [?25h[?0c        execute a:str

[?25l[?1c:    [?25h[?0c    catch

[?25l[?1c:    [?25h[?0c        $put =v:exception

[?25l[?1c:    [?25h[?0c    endtry

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?25h[?0c[?25l[?1c:[?25h[?0cfun Test()
[?25l[?1c
:  [?25h[?0c$put ='{{{1 let tests'

[?25l[?1c:  [?25h[?0clet @" = 'abc'

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @" = "abc\n"

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @" = "abc\<C-m>"

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @= = '"abc"'

[?25l[?1c:  [?25h[?0cAR =

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Basic setreg tests'

[?25l[?1c:  [?25h[?0ccall SetReg('a', 'abcA', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcB', 'v')

[?25l[?1c:  [?25h[?0ccall SetReg('c', 'abcC', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('d', 'abcD', 'V')

[?25l[?1c:  [?25h[?0ccall SetReg('e', 'abcE', 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('f', 'abcF', "\<C-v>")

[?25l[?1c:  [?25h[?0ccall SetReg('g', 'abcG', 'b10')

[?25l[?1c:  [?25h[?0ccall SetReg('h', 'abcH', "\<C-v>10")

[?25l[?1c:  [?25h[?0ccall SetReg('I', 'abcI')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending single lines with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAc', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAc2','c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBc', 'ca')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBb', 'ba')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBc2','ca')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBb2','b50a')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('C', 'abcCl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('C', 'abcCc', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('D', 'abcDb', 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('E', 'abcEb', 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('E', 'abcEl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('F', 'abcFc', 'c')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending NL with setreg()'

[?25l[?1c:  [?25h[?0ccall setreg('a', 'abcA2', 'c')

[?25l[?1c:  [?25h[?0ccall setreg('b', 'abcB2', 'v')

[?25l[?1c:  [?25h[?0ccall setreg('c', 'abcC2', 'l')

[?25l[?1c:  [?25h[?0ccall setreg('d', 'abcD2', 'V')

[?25l[?1c:  [?25h[?0ccall setreg('e', 'abcE2', 'b')

[?25l[?1c:  [?25h[?0ccall setreg('f', 'abcF2', "\<C-v>")

[?25l[?1c:  [?25h[?0ccall setreg('g', 'abcG2', 'b10')

[?25l[?1c:  [?25h[?0ccall setreg('h', 'abcH2', "\<C-v>10")

[?25l[?1c:  [?25h[?0ccall setreg('I', 'abcI2')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('A', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('B', "\n", 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('D', "\n", 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('E', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('F', "\n", 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Setting lists with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('a', ['abcA3'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB3'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('c', ['abcC3'], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('d', ['abcD3'])

[?25l[?1c:  [?25h[?0ccall SetReg('e', [1, 2, 'abc', 3])

[?25l[?1c:  [?25h[?0ccall SetReg('f', [1, 2, 3])

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending lists with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', ['abcA3c'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB3l'], 'la')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ['abcC3b'], 'lb')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ['abcD32'])

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('A', ['abcA32'])

[?25l[?1c:  [?25h[?0ccall SetReg('B', ['abcB3c'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ['abcC3l'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ['abcD3b'], 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending lists with NL with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', ["\n", 'abcA3l2'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('B', ["\n", 'abcB3c2'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ["\n", 'abcC3b2'], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ["\n", 'abcD3b50'],'b50')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Setting lists with NLs with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4

-4-2"])

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\na

bcB4c-4-2"], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\na

bcC4l-4-2"], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\na

bcD4b-4-2"], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4

b10-4\nabcE4b10-4-2"], 'b10')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Search and expressions'

[?25l[?1c:  [?25h[?0ccall SetReg('/', ['abc/'])

[?25l[?1c:  [?25h[?0ccall SetReg('/', ["abc/\n"])

[?25l[?1c:  [?25h[?0ccall SetReg('=', ['"abc/"'])

[?25l[?1c:  [?25h[?0ccall SetReg('=', ["\"abc/\n\""])

[?25l[?1c:  [?25h[?0c$put ='{{{1 System clipboard'

[?25l[?1c:  [?25h[?0cif has('clipboard')

[?25l[?1c:    [?25h[?0c" Save and restore system clipboard.

[?25l[?1c:    [?25h[?0c" If no connection to X-Server is possible, test should succeed.

[?25l[?1c:    [?25h[?0clet _clipreg = ['*', getreg('*'), getregtype('*')]

[?25l[?1c:    [?25h[?0clet _clipopt = &cb

[?25l[?1c:    [?25h[?0clet &cb='unnamed'

[?25l[?1c:    [?25h[?0c5y

[?25l[?1c:    [?25h[?0cAR *

[?25l[?1c:    [?25h[?0ctabdo :windo :echo "hi"

[?25l[?1c:    [?25h[?0c6y

[?25l[?1c:    [?25h[?0cAR *

[?25l[?1c:    [?25h[?0clet &cb=_clipopt

[?25l[?1c:    [?25h[?0ccall call('setreg', _clipreg)

[?25l[?1c:    [?25h[?0celse

[?25l[?1c:    [?25h[?0c  call AppendRegParts('*', 'V', "clipboard contents\n", "['clipboard conte

nts']", "clipboard contents\n", "['clipboard contents']")

[?25l[?1c:    [?25h[?0c  call AppendRegParts('*', 'V', "something else\n", "['something else']", 

"something else\n", "['something else']")

[?25l[?1c:    [?25h[?0cendif

[?25l[?1c:  [?25h[?0c$put ='{{{1 Errors'

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg()')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, 2, 3, 4)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg([], 2)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, {})')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, 2, [])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg("/", ["1", "2"])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg("=", ["1", "2"])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, ["", "", [], ""])')

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Test()
[?25l[?1c*: type V; value: something else^@ (['something else']), expr: something else^@
(['something else'])
{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)
Vim(call):E118: Too many arguments for function: setreg
Executing call setreg([], 2)
Vim(call):E730: using List as a String
Executing call setreg(1, {})
Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction SetReg
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction AppendRegContents
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction ErrExe
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction Test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelcommand AR
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name not starting with capital
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! g:test()

[?25l[?1c:  [?25h[?0c:echo "test"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)8: Too many arguments for function: setreg[], 2)730: using List as a String1, {}1Dictionary as a String2, [])0List as a String"/", ["1", "2"])883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])Vim(call):E730: using List as a String
Vim(function):E128: Function name must start with a capital or "s:": g:test()
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name includes a colon
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! b:test()

[?25l[?1c:  [?25h[?0c:echo "test"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)Vim(function):E128: Function name must start with a capital or "s:": b:test()[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name folowed by #
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! test2() "#

[?25l[?1c:  [?25h[?0c:echo "test2"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1cExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)
Vim(call):E118: Too many arguments for function: setreg
Executing call setreg([], 2)Vim(call):E730: using List as a String
Executing call setreg(1, {})Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a Stringfunction):E128: Function name must start with a capital or "s:": g:test()btest2() "#[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name starting with/without "g:", buffer-local funcref.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! g:Foo(n)
[?25l[?1c
:  [?25h[?0c:  $put ='called Foo(' . a:n . ')'

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg[?25h[?0c[?25l[?1c
:[?25h[?0clet b:my_func = function('Foo')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall b:my_func(1)
[?25l[?1c
called Foo(1)[?25h[?0c[?25l[?1c
:[?25h[?0cecho g:Foo(2)
[?25l[?1c0
called Foo(2)[?25h[?0c[?25l[?1c
:[?25h[?0cecho Foo(3)
[?25l[?1c0
called Foo(3)[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" script-local function used in Funcref must exist.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso test_eval_func.vim
[?25l[?1cs:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Using $ instead of '$' must give an error
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c: call append($, 'foobar')

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1cExecuting call setreg(1, {})
Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a Stringfunction):E128: Function name must start with a capital or "s:": g:test()btest2() "#
called Foo(123
s:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1func Bar exists: 1
Vim(call):E116: Invalid arguments for function append[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='{{{1 getcurpos/setpos'
[?25l[?1c
{{{1 getcurpos/setpos[?25h[?0c[?25l[?1c
/[?25h[?0c^012345678
[?25l[?1csearch hit BOTTOM, continuing at TOP:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:
{{{1 let tests
": type v; value: abc (['abc']), expr: abc (['abc'])
": type V; value: abc^@ (['abc']), expr: abc^@ (['abc'])
": type V; value: abc^M^@ (['abc^M']), expr: abc^M^@ (['abc^M'])
=: type v; value: abc (['abc']), expr: "abc" (['"abc"'])
{{{1 Basic setreg tests
{{{2 setreg('a', 'abcA', 'c')
a: type v; value: abcA (['abcA']), expr: abcA (['abcA'])
search hit BOTTOM, continuing at TOP[?25h[?0c012345[?25l[?1c:[?25h[?0clet sp = getcurpos()
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0ccall setpos('.', sp)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put
[?25l[?1cExecuting call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
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:": b:test()
Vim(function):E128: Function name must start with a capital or "s:": test2() "#
called Foo(1)
called Foo(2)
called Foo(3)
s:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1
Vim(call):E116: Invalid arguments for function append
{{{1 getcurpos/setpos
6[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" substring and variable name
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet str = 'abcdef'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet n = 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[n:]
[?25l[?1c
def[?25h[?0c[?25l[?1c
:[?25h[?0c$put =str[:n]
[?25l[?1c
abcd[?25h[?0c[?25l[?1c
:[?25h[?0c$put =str[n:n]
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0cunlet n
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet nn = 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[nn:]
[?25l[?1cdef
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put =str[:nn]
[?25l[?1cabcd[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[nn:nn]
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0cunlet nn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:nn = 4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[b:nn:]
[?25l[?1cef
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put =str[:b:nn]
[?25l[?1cabcde[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[b:nn:b:nn]
[?25l[?1c
e[?25h[?0c[?25l[?1c
:[?25h[?0cunlet b:nn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/+1,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 362 lines, 11279 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_eval = test61; then \
#	  if diff test.out test_eval.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_eval.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_eval.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_fixeol.failed test.ok test.out X* viminfo
cp test_fixeol.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_fixeol.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_fixeol.in" 40 lines, 780 charactersTests for 'fixeol'vim: set ft=vim :

STARTTEST
:" use Unix fileformat for consistency
:set ff=unix
:enew!
awith eol^[:w! XXEol
:enew!
:set noeol nofixeol
awithout eol^[:w! XXNoEol
:set eol fixeol
:bwipe XXEol XXNoEol
:"
:" try editing files with 'fixeol' disabled
:e! XXEol
ostays eol^[:set nofixeol
:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol
:w! XXTestNoEol
:bwipe XXEol XXNoEol XXTestEol XXTestNoEol
:set fixeol[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'fixeol'vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 698 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" Append "END" to each file so that we can see what the last written char was.
ggdGaEND^[:w >>XXEol
:w >>XXNoEol
:w >>XXTestEol
:w >>XXTestNoEol
:"
:" Concatenate the results
:e! test.out
a0^[:$r XXEol
:$r XXNoEol
Go1^[:$r XXTestEol
:$r XXTestNoEol
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
2 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol:w! XXTestNoEol:bwipe XXEol XXNoEol XXTestEol XXTestNoEol:set fixeol:":" Append "END" to each file so that we can see what the last written char was.ggdGaEND^[:w >>XXEol:w >>XXNoEol:w >>XXTestEol:w >>XXTestNoEol:":" Concatenate the results:e! test.outa0^[:$r XXEol:$r XXNoEolGo1^[:$r XXTestEol:$r XXTestNoEol:w:qa!ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0c" try editing files with 'fixeol' disabled
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" 1 line, 9 characterswith eol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c
stays eol[?25h[?0c[?25l[?1c:[?25h[?0cset nofixeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! XXTestEol
[?25l[?1c"XXTestEol" [New File] 2 lines, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXNoEol
[?25l[?1c"XXNoEol" [Incomplete last line] 1 line, 11 charactersout eol
~                                                                               [?25h[?0c[?25l[?1c
stays without[?25h[?0c[?25l[?1c:[?25h[?0cset nofixeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! XXTestNoEol
[?25l[?1c"XXTestNoEol" [New File][Incomplete last line] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol XXNoEol XXTestEol XXTestNoEol
[?25l[?1c"test_fixeol.in" 40 lines, 780 characters

4 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fixeol
[?25l[?1c:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol:w! XXTestNoEol:bwipe XXEol XXNoEol XXTestEol XXTestNoEol:set fixeol:":" Append "END" to each file so that we can see what the last written char was.ggdGaEND^[:w >>XXEol:w >>XXNoEol:w >>XXTestEol:w >>XXTestNoEol:":" Concatenate the results:e! test.outa0^[:$r XXEol:$r XXNoEolGo1^[:$r XXTestEol:$r XXTestNoEol:w:qa!ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Append "END" to each file so that we can see what the last written char was.
[?25l[?1c[?25h[?0c[?25l[?1cTests for 'fixeol'vim: set ft=vim :

STARTTEST
:" use Unix fileformat for consistency
:set ff=unix
:enew!
awith eol^[:w! XXEol
:enew!
:set noeol nofixeol
awithout eol^[:w! XXNoEol
:set eol fixeol
:bwipe XXEol XXNoEol
:"
:" try editing files with 'fixeol' disabled
:e! XXEol
ostays eol^[:set nofixeol[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cEND[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXEol
[?25l[?1c"XXEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXNoEol
[?25l[?1c"XXNoEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXTestEol
[?25l[?1c"XXTestEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXTestNoEol
[?25l[?1c"XXTestNoEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Concatenate the results
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File][?25h[?0c[?25l[?1c0[?25h[?0c[?25l[?1c:[?25h[?0c$r XXEol
[?25l[?1c"XXEol" 2 lines, 13 characterswith eolEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXNoEol
[?25l[?1c"XXNoEol" 1 line, 15 characterswithout eolEND[?25h[?0c[?25l[?1c
1[?25h[?0c[?25l[?1c:[?25h[?0c$r XXTestEol
[?25l[?1c"XXTestEol" 3 lines, 23 characterswith eolstays eolEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXTestNoEol
[?25l[?1c"XXTestNoEol" 2 lines, 29 characterswithout eolstays withoutEND[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 10 lines, 84 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_fixeol = test61; then \
#	  if diff test.out test_fixeol.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_fixeol.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_fixeol.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_getcwd.failed test.ok test.out X* viminfo
cp test_getcwd.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_getcwd.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_getcwd.in" 96 lines, 2374 charactersTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :

STARTTEST
:so small.vim
:" Do all test in a separate window to avoid E211 when we recursively
:" delete the Xtopdir directory during cleanup
:"
:" This will cause a few errors, do it silently.
:set visualbell
:set nocp viminfo+=nviminfo
:"
:" On windows a swapfile in Xtopdir prevents it from being cleaned up.
:set noswapfile
:"
:function! GetCwdInfo(win, tab)
: let tab_changed = 0
: let mod = ":t"
: if a:tab > 0 && a:tab != tabpagenr()
:   let tab_changed = 1
:   exec "tabnext " . a:tab
: endif
: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)
: if tab_changed[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 90 lines, 2273 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:wincmd W
:lcd Xdir2
:call add(r, GetCwdInfo(0, 0))
:wincmd W
:lcd Xdir3
:call add(r, GetCwdInfo(0, 0))
:call add(r, GetCwdInfo(bufwinnr("x"), 0))
:call add(r, GetCwdInfo(bufwinnr("y"), 0))
:call add(r, GetCwdInfo(bufwinnr("z"), 0))
:let tp_nr = tabpagenr()
:tabrewind
:call add(r, GetCwdInfo(3, tp_nr))
:call add(r, GetCwdInfo(2, tp_nr))
:call add(r, GetCwdInfo(1, tp_nr))
:"
:call writefile(r, test_out, "a")
:q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Do all test in a separate window to avoid E211 when we recursively
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" delete the Xtopdir directory during cleanup
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This will cause a few errors, do it silently.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" On windows a swapfile in Xtopdir prevents it from being cleaned up.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! GetCwdInfo(win, tab)
[?25l[?1c
:  [?25h[?0c: let tab_changed = 0

[?25l[?1c:  [?25h[?0c: let mod = ":t"

[?25l[?1c:  [?25h[?0c: if a:tab > 0 && a:tab != tabpagenr()

[?25l[?1c:    [?25h[?0c:   let tab_changed = 1

[?25l[?1c:    [?25h[?0c:   exec "tabnext " . a:tab

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)

[?25l[?1c:  [?25h[?0c: if tab_changed

[?25l[?1c:    [?25h[?0c:   tabprevious

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: if a:win == 0 && a:tab == 0

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir()

[?25l[?1c:    [?25h[?0c: elseif a:tab == 0

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(a:win), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir(a:win)

[?25l[?1c:    [?25h[?0c: else

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(a:win, a:tab), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir(a:win, a:tab)

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: return bufname . ' ' . dirname . ' ' . lflag

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:wincmd W
:lcd Xdir2
:call add(r, GetCwdInfo(0, 0))
:wincmd W
:lcd Xdir3
:call add(r, GetCwdInfo(0, 0))
:call add(r, GetCwdInfo(bufwinnr("x"), 0))
:call add(r, GetCwdInfo(bufwinnr("y"), 0))
:call add(r, GetCwdInfo(bufwinnr("z"), 0))
:let tp_nr = tabpagenr()
:tabrewind
:call add(r, GetCwdInfo(3, tp_nr))
:call add(r, GetCwdInfo(2, tp_nr))
:call add(r, GetCwdInfo(1, tp_nr))
:"
:call writefile(r, test_out, "a")
:q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST
[?25h[?0c[?25l[?1c

:[?25h[?0c" On windows a stale "Xtopdir" directory may exist, remove it so that
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" we start from a clean state.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xtopdir", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet r=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       test_getcwd.in                                                                  [?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet test_out = cwd . '/test.out'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xtopdir')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xtopdir
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/<<PKGBUILDDIR>>/src/vim-nox/testdir/test_getcwd.in[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir1')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir2')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir3')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew a
[?25l[?1c"a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-nox/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c:[?25h[?0cnew b
[?25l[?1c"b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-nox/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c:[?25h[?0cnew c
[?25l[?1c"c" [New File]~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-nox/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1cc                                                                               a                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir1
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/Xdir1/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/b/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/a[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                           b                                                                               a                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                                               b                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir3
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/Xdir3/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/b/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/a[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("a"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("b"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("c"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                                               b                                                           a                                                           /<<PKGBUILDDIR>>/src/vim-nox/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("a"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("b"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("c"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew x
[?25l[?1c"x" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  x                                               X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew y
[?25l[?1c"y" [New File]2y  Xy                                                                               x                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew z
[?25l[?1c"z" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               z                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               y                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               x                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1cz                                                                               x                                                                               x X[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cy                                                                               x                                                                               y X[?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir2
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/Xdir2/b/v/v/s/v/t/X/y  X/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/z/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/y/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/x[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cz                 Xz                                                                               y                                                                               x                                                           [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir3
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/Xdir3/b/v/v/s/v/t/X/z  X/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/z/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/y/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtopdir/x[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("x"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("y"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("z"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tp_nr = tabpagenr()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-nox/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(3, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-nox/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(2, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-nox/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(1, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-nox/testdir/test_getcwd.in               [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall writefile(r, test_out, "a")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c 4 [No Name]  3 z                                                               X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdirX/z  XXtopdir/cXtopdir/bXtopdir/a
[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xtopdir", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_getcwd = test61; then \
#	  if diff test.out test_getcwd.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_getcwd.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_getcwd.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_insertcount.failed test.ok test.out X* viminfo
cp test_insertcount.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_insertcount.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_insertcount.in" 14 lines, 204 charactersTests for repeating insert and replace.

STARTTEST
:so small.vim
:/Second
4gro
:/^First/,$wq! test.out
:" get here when failed and in Insert mode
^[:.wq! test.out
ENDTEST

First line
Second line
Last line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for repeating insert and replace.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 111 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/Second
[?25l[?1c[?25h[?0c[?25l[?1cooooecond line
ooo[?25h[?0c
Las[?25l[?1c:[?25h[?0c/^First/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 3 lines, 36 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_insertcount = test61; then \
#	  if diff test.out test_insertcount.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_insertcount.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_insertcount.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listchars.failed test.ok test.out X* viminfo
cp test_listchars.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listchars.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listchars.in" 54 lines, 705 charactersTests for 'listchars' display with 'list' and :list

STARTTEST
:so small.vim
:set ff=unix
:let g:lines = []
:function GetScreenCharsForLine(lnum)
:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val))'), '')
:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\<CR>"
:set listchars+=tab:>-,space:.,trail:<
:set list
:
/^start:/
:normal! jzt
GG
GG
GG
GG
GGH:
:set listchars-=trail:<[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'listchars' display with 'list' and :list[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 431 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTGG
GG
GG
GG
GG:
:put =g:lines
:'[,']w! test.out
ENDTEST[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:lines = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction GetScreenCharsForLine(lnum)
[?25l[?1c
:  [?25h[?0c:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val

))'), '')

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\<CR>"[?25h[?0c[?25l[?1c
:[?25h[?0cnnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))

\<CR>"
[?25l[?1c:endfunction[?25h[?0c[?25l[?1c
:[?25h[?0cset listchars+=tab:>-,space:.,trail:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list
[?25l[?1c$.<expr>.GG.":call..$
:set.$
:set.list$
:$$.jzt$
GG$
GG$
GG$
GG$
GGH:$
:set.$
GG$
GG$
GG$
GG$
GG:$
:put.$.$$
$[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c
start:$[?25h[?0c[?25l[?1c
:[?25h[?0cnormal! jzt
[?25l[?1c>-------aa>-----$
..bb>---<<$
...cccc><$
dd........ee<<>-$
<$
$
$
STARTTEST$
:set.listchars+=trail:<$
:set.nolist$
:$
/^start:/$
:redir!.>>.test.out$
:+1,$list$
:redir.END$
:q!$
ENDTEST$
$
start:$
..fff>--<<$
>-------gg>-----$
.....h>-$
iii<<<<><<$[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(1))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(2))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(3))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(4))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(5))
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset listchars-=trail:<
[?25l[?1c.....
.......>..[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(1))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(2))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(3))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(4))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(5))
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =g:lines
[?25l[?1c10 more >-------aa>-----$$
..bb>---<<$$
...cccc><$$
dd........ee<<>-$$
<$$
>-------aa>-----$$
..bb>---..$$
...cccc>.$$
dd........ee..>-$$
.$$10 more lines[?25h[?0c[?25l[?1c:[?25h[?0c'[,']w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 124 characters written[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 93 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:+1,$list$
:redir.END$
:q!$
ENDTEST$[?25h[?0c[?25l[?1c
$[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset listchars+=trail:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nolist
[?25l[?1c   >>  [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c
start:[?25h[?0c[?25l[?1c
:[?25h[?0credir! >> test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c+1,$list
[?25l[?1c..fff>--<<$

>-------gg>-----$

.....h>-$

iii<<<<><<$

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c>-------aa>-----$
..bb>---..$
...cccc>.$
dd........ee..>-$
.$STARTTEST:set listchars+=trail:<
:set nolist
:
/^start:/
:redir! >> test.out+1,$listredir END
:q!ENDTESTstart:  fff
        ggh
iii   [?25h[?0c[?25l[?1c
:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listchars = test61; then \
#	  if diff test.out test_listchars.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listchars.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listchars.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listlbr.failed test.ok test.out X* viminfo
cp test_listlbr.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listlbr.in" 119 lines, 2868 charactersTest for linebreak and list option (non-utf8)

STARTTEST
:so small.vim
:if !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |
endif
:10new|:vsp|:vert resize 20
:put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width)
:let c=''
:for j in range(1,4)
:for i in range(1,a:width)
:let c.=nr2char(screenchar(j, i))
:endfor
:let c.="\n"
:endfor
:return c
:endfu
:fu! DoRecordScreen()
:wincmd l
:$put =printf(\"\n%s\", g:test)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for linebreak and list option (non-utf8)[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 114 lines, 2792 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTabcd{ef
ghijklm
no}pqrs^[2k0f{^V^Vc%^[
:"
:let g:test ="Test 11: using block replace mode after wrapping"
:$put =g:test
:set linebreak wrap
Go^[150aa^[yypk147|^Vjr0
:"
:let g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$":set list listchars=space:_,trail:-,tab:>-,eol:$
:$put =g:test
:let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |

endif
[?25l[?1cabcd{ef[?25h[?0c[?25l[?1c
:[?25h[?0c10new|:vsp|:vert resize 20
[?25l[?1c       ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name]            ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name]                                                  let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =linenorm! zt
:redraw!let line=ScreenChar(winwidth(0))
:call DoRecordScreen()%w! test.outqaENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0cput =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [+][?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25l[?1cabcdef          
+hijklmn            
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [?25h[?0c[?25l[?1c:[?25h[?0cfu! ScreenChar(width)
[?25l[?1c
:  [?25h[?0c:^Ilet c=''

[?25l[?1c:  [?25h[?0c:^Ifor j in range(1,4)

[?25l[?1c:    [?25h[?0c:^I    for i in range(1,a:width)

[?25l[?1c:      [?25h[?0c:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l[?1c:      [?25h[?0c:^I    endfor

[?25l[?1c:    [?25h[?0c:           let c.="\n"

[?25l[?1c:    [?25h[?0c:^Iendfor

[?25l[?1c:  [?25h[?0c:^Ireturn c

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0cfu! DoRecordScreen()
[?25l[?1c
:  [?25h[?0c:^Iwincmd l

[?25l[?1c:  [?25h[?0c:^I$put =printf(\"\n%s\", g:test)

[?25l[?1c:  [?25h[?0c:^I$put =g:line

[?25l[?1c:  [?25h[?0c:^Iwincmd p

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 1: set linebreak"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 1: set         
+linebreak          
    abcdef          
+hijklmn            
+pqrstuvwxyz_1060ABCTest 1: set linebreak    abcdef          +hijklmn            +pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP      [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 2: set linebreak + set list"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak list listchars=
[?25l[?1c^Iabcdef hijklmn^I  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP      
              
Test 1: set
+linebreak 
    abcdef
+hijklmn  
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c^Iabcdef hijklmn^I  |
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
Test 1: set|
+linebreak|
    abcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      |
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOPTest 1: set linebreakabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP~                                                          ~                                                          [No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines    abcdef                                                 +hijklmn                                                   +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                             ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 3: set linebreak nolist"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak
[?25l[?1c    abcdef          hijklmn            pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
           
Test 1: set
+linebreak
    abcdef
+hijklmn            
+pqrstuvwxyz_1060ABC[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
Test 1: set|
+linebreak|
    abcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
[No Name] [+]        abcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOPTest 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines^Iabcdef hijklmn^I                                         +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Test 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 4: set linebreak with tab and 1 line as long as screen: shou

ld break!"
[?25l[?1cabcdef|^Iabcdef hijklmn^I[?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak ts=8
[?25l[?1c    abcdef[?25h[?0c[?25l[?1c:[?25h[?0clet line="1\t".repeat('a', winwidth(0)-2)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1c      
        
Test 3: set         linebreak nolist
    abcdef
+hijklmn   
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
1       
+aaaaaaaaaaaaaaaaaa [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c1|
+aaaaaaaaaaaaaaaaaa |||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOPTest 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     1aaaaaaaaaaaaaaaaaaTest 4: set linebreak with tab and 1 line as long as screen+: should break!1+aaaaaaaaaaaaaaaaaa~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet line="_S_\t bla"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cTest 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    ~
~
_S_      bla[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c_S_      bla        
                    
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 5: set linebreak with conceal and set list and tab displayed

by different char (line may not be truncated)"
[?25l[?1c_S_      bla|+pqrstuvwxyz_1060ABC[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab
[?25l[?1cabbbb[?25h[?0c[?25l[?1c:[?25h[?0csyn match ConcealVar contained /_/ conceal
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match All /.*/ contains=ConcealVar
[?25l[?1cSabb[?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 5: set         
+linebreak with     
+conceal and set    
+list and tab       
+displayed by       
+different char     
+(line may not be   
+truncated)         ~                                                          ~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _S_      blaTest 5: set linebreak with conceal and set list and tab dis+played by different char (line may not be truncated)Sabbbbbb bla~~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 6: set linebreak with visual block mode"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet line="REMOVE: this not"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cabbbbbb
~
~          
~              
Test 6: set     nebreak withvisual block mode
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cREMOVE: this not    [?25h[?0c[?25l[?1c:[?25h[?0clet line="REMOVE: aaaaaaaaaaaaa"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cREMOVE:             
+aaaaaaaaaaaaa      [?25h[?0c[?25l[?1c:[?25h[?0c1/^REMOVE:
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cR[?25h[?0c[?25l[?1cEMOVE: 
REMOVE:[?25h[?0c[?25l[?1cthis not        
aaaaaaaaaaaaa
~                   [?25h[?0c[?25l[?1c:[?25h[?0c$put
[?25l[?1c~                   
~                   
~                   
Test 6: set         
+linebreak with     
+visual block mode  
this not            
aaaaaaaaaaaaa       
~                   
                    REMOVE:             
REMOVE:[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 7: set linebreak with visual block mode and v_b_A"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cthis not            
aaaaaaaaaaaaa       
REMOVE:             
REMOVE:             
                    
                    
                    
                    
                    
                    Test 7: set
+linebreak with
+visual block mode
+and vbA
~                   
~                   [?25h[?0c[?25l[?1clong line:          [?25h[?0c[?25l[?1c foobar
+foobar foobar      @                   
@                           
             
       
       
           
               
                  
        
                    
                    +foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar[?25h[?0c+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar             
                    [?25l[?1cTARGET at
+end[?25h[?0c[?25l[?1c:[?25h[?0cexe "norm! $3B\<C-v>eAx\<Esc>"
[?25l[?1cx at[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak sbr=
[?25l[?1cfoobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar TARGETx at 
end played by different char (line may not be truncated)[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 8: set linebreak with visual char mode and changing block"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 8: set  
linebreak with
visual char mode
and changing block
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c1111-1111-1111-11-  
1111-1111-1111      [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c111[?25h[?0c[?25l[?1c2222[?25h[?0c[?25l[?1c2222[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 9: using redo after block visual mode"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 9: using redo  
after block visual  
mode                [?25h[?0c[?25l[?1c1111-2222-1111-11-  
1111-2222-1111      
Test 9: using redo  
after block visual  
mode                
~                   
                    
                    
                    
                                        
aaa
aaa
a
~                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
a[?25h[?0c[?25l[?1c3 lines changedA
A
A[?25h[?0c[?25l[?1cA
AaA[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 10: using normal commands after block-visual"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 9: using redo  
after block visual  
mode                
                    
AaA                 
AaA                 
A                   
~                   
                    
                    Test 10: using      
normal commands
after block-visual[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak
[?25l[?1c[?25h[?0c[?25l[?1cAaA                 
AaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
                    
                    
                    abcd{ef
ghijklm
no}pqrs[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cpqrs
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 11: using block replace mode after wrapping"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cAaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
~                   
~                   
                    Test 11: using      
block replace mode  
after wrapping[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak wrap
[?25l[?1c[?25h[?0c[?25l[?1cA                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
Test 11: using      
block replace mode  
after wrapping      
                    [?25h[?0c[?25l[?1caaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa        
~                   
~                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1caaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa
~                   
~                   [?25h[?0c[?25l[?1c0
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?25h[?0c[?25l[?1c@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaa0aaa
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$

"[?25l[?1caaaaaaaaaaaaaaaaaaaa|~[?25h[?0c[?25l[?1c:[?25h[?0cset list listchars=space:_,trail:-,tab:>-,eol:$
[?25l[?1c$[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0clet line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1ca_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1ca_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         
~                   
~                   
~                   
                    
                    
                    
                    ~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1ca_|
aaaaaaaaaaaaaaaaaaaa|
aa>-----a-$||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ~~_S_      blaTest 5: set linebreak with conceal and set list and tab displayed by different char (line may not be truncated)Sabbbbbb bla~~~[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines$                   
Test_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
a------------------ 
$                   Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$a aaaaaaaaaaaaaaaaaaaaaaa12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$a_          aaaaaaaaaaaaaaaaaaaaaa>-----a-$[?25h[?0c[?25l[?1c:[?25h[?0c%w! test.out
[?25l[?1c"test.out" [New File] 62 lines, 2030 characters writtentest.out     test.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listlbr = test61; then \
#	  if diff test.out test_listlbr.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listlbr.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_search_mbyte.failed test.ok test.out X* viminfo
cp test_search_mbyte.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_search_mbyte.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_search_mbyte.in" 15 lines, 226 charactersTest for search('multi-byte char', 'bce')

STARTTEST
:source small.vim
:source mbyte.vim
:set encoding=utf-8
:/^Test bce:/+1
:$put =search('A', 'bce', line('.'))
:1;/^Results:/,$wq! test.out
ENDTEST

Results:

Test bce:
A
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for search('multi-byte char', 'bce')[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 140 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0csource small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csource mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest for search('multi-byte char', 'bce')

STARTTEST
:source small.vim
:source mbyte.vim
:set encoding=utf-8
:/^Test bce:/+1
:$put =search('A', 'bce', line('.'))
:1;/^Results:/,$wq! test.out
ENDTEST

Results:

Test bce:
A
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c/^Test bce:/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =search('A', 'bce', line('.'))
[?25l[?1c15[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results:/,$wq! test.out
[?25l[?1c"test.out" [New File] 5 lines, 27 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_search_mbyte = test61; then \
#	  if diff test.out test_search_mbyte.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_search_mbyte.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_search_mbyte.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_utf8.failed test.ok test.out X* viminfo
cp test_utf8.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_utf8.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_utf8.in" 46 lines, 1245 charactersTests for Unicode manipulationsvim: set ft=vim :

STARTTEST
:so small.vim
:set encoding=utf-8
:"
:" Visual block Insert adjusts for multi-byte char
:new
:exe ":norm! gg0l\<C-V>jjIx\<Esc>"
:let r = getline(1, '$')
:"
:bwipeout!
:$put=r
:"
:" Test for built-in function strchars()
:$put=strchars(str)
:$put=strchars(str, 0)
:$put=strchars(str, 1)
:endfor
:"
:" Test for customlist completion[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for Unicode manipulationsvim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 1151 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete2(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete3(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1c:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:return ['あ', 'い']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete2(lead, line, pos)
:return ['あたし', 'あたま', 'あたりめ']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete3(lead, line, pos)
:return ['Nこ', 'Nん', 'Nぶ']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual block Insert adjusts for multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       function! CustomComplete3(lead, line, pos)
:       return ['Nこ', 'Nん', 'Nぶ']endfunctioncommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')"call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST test_utf8.in                                                                    [?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, ["aaa", "あああ", "bbb"])
[?25l[?1caaa
あああbbb[+][?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! gg0l\<C-V>jjIx\<Esc>"
[?25l[?1cxaa
xあああ
bxbb[?25h[?0c[?25l[?1c:[?25h[?0clet r = getline(1, '$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipeout!
[?25l[?1c:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:       return ['あ', 'い']
:endfunction:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it'):":function! CustomComplete2(lead, line, pos):       return ['あたし', 'あたま', 'あたりめ']:endfunction:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')"function! CustomComplete3(lead, line, pos)
:       return ['Nこ', 'Nん', 'Nぶ']
:endfunctionommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"call garbagecollect(1):/^start:/,$wq! test.out
ENDTEST
 [?25h[?0c[?25l[?1c:[?25h[?0c$put=r
[?25l[?1c3 more linesstart:
axaa
xあああ
bxbb3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for built-in function strchars()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor str in ["a", "あいa", "A\u20dd", "A\u20dd\u20dd", "\u20dd"]
[?25l[?1c
:  [?25h[?0c:^I$put=strchars(str)

[?25l[?1c:  [?25h[?0c:^I$put=strchars(str, 0)

[?25l[?1c:  [?25h[?0c:^I$put=strchars(str, 1)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST

start:axaaxあああbxbb11133322133
1111[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for customlist completion
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete1(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['あ', 'い']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:call garbagecollect(1)
:/^start:/,$wq! test.out[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test1 ...'
:$Test1 '
:$pTest1 '
:$puTest1 '
:$putTest1 '
:$put=Test1 ''Test1 '

Test1[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete2(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['あたし', 'あたま', 'あたりめ']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test2 ...あた'
:$Test2 あた'
:$pTest2 あた'
:$puTest2 あた'
:$putTest2 あた'
:$put=Test2 あた''Test2 あた'

Test2 あた[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete3(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['Nこ', 'Nん', 'Nぶ']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test3 ...N'
:$Test3 N'
:$pTest3 N'
:$puTest3 N'
:$putTest3 N'
:$put=Test3 N''Test3 N'

Test3 N[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 22 lines, 86 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_utf8 = test61; then \
#	  if diff test.out test_utf8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_utf8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_utf8.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_wordcount.failed test.ok test.out X* viminfo
cp test_wordcount.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_wordcount.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_wordcount.in" 126 lines, 2815 charactersTest for wordcount() function

STARTTEST
:so small.vim
:so mbyte.vim
:set enc=utf8
:set selection=inclusive fileformat=unix fileformats=unix
:new
:fu DoRecordWin(...)
:wincmd k
:if exists("a:1")
:call cursor(a:1)
:endif
:let result=[]
:call add(result, g:test)
:call add(result, getline(1, '$'))
:call add(result, wordcount())
:wincmd j
:return result
:endfu
:fu PutInWindow(args)
:wincmd k
:%d _[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for wordcount() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 121 lines, 2753 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:0
v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:let g:test="Test 11: visual mode, single line"
:wincmd k
:set ls=2 stl=%{STL()}
:" start visual mode quickly and select complete buffer
:2
0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:/^RESULT test/,$w! test.out
:qa!
ENDTEST
RESULT test:[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf8
[?25l[?1c:0
v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:let g:test="Test 11: visual mode, single line"
:call PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
:wincmd k
:set ls=2 stl=%{STL()}
:" start visual mode quickly and select complete buffer
:2
0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:/^RESULT test/,$w! test.out
:qa!
ENDTEST
RESULT test:
[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=inclusive fileformat=unix fileformats=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])[2]=g:visual_statcall Log()"/^RESULT test/,$w! test.out
:qa!ENDTEST
RESULT test:
test_wordcount.in                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu DoRecordWin(...)
[?25l[?1c
:  [?25h[?0c:^Iwincmd k

[?25l[?1c:  [?25h[?0c:       if exists("a:1")

[?25l[?1c:    [?25h[?0c:           call cursor(a:1)

[?25l[?1c:    [?25h[?0c:       endif

[?25l[?1c:  [?25h[?0c:       let result=[]

[?25l[?1c:  [?25h[?0c:       call add(result, g:test)

[?25l[?1c:  [?25h[?0c:       call add(result, getline(1, '$'))

[?25l[?1c:  [?25h[?0c:       call add(result, wordcount())

[?25l[?1c:  [?25h[?0c:^Iwincmd j

[?25l[?1c:  [?25h[?0c:       return result

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu PutInWindow(args)
[?25l[?1c
:  [?25h[?0c:       wincmd k

[?25l[?1c:  [?25h[?0c:       %d _

[?25l[?1c:  [?25h[?0c:       call append(1, a:args)

[?25l[?1c:  [?25h[?0c:^Iwincmd j

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu Log()
[?25l[?1c
:  [?25h[?0c:   $put ='----'

[?25l[?1c:  [?25h[?0c:   $put =remove(g:log,0)

[?25l[?1c:  [?25h[?0c:   $put =string(g:log)

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu! STL()
[?25l[?1c
:  [?25h[?0c:    if mode() =~? 'V'

[?25l[?1c:    [?25h[?0c:       let g:visual_stat=wordcount()

[?25l[?1c:    [?25h[?0c:    endif

[?25l[?1c:  [?25h[?0c:    return string(wordcount())

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 1: empty window"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin()
[?25l[?1c[No Name]                                                                       test_wordcount.in                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 1: empty window
[[''], {'chars': 0, 'cursor_chars': 0, 'words': 0, 'cursor_words': 0, 'bytes': 0, 'cursor_bytes': 0}][+][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 2: some words, cursor at start"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1cone two three[+][?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([1,1,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 2: some words, cursor at start
[['', 'one two three'], {'chars': 15, 'cursor_chars': 1, 'words': 3, 'cursor_words': 0, 'bytes': 15, 'cursor_bytes': 1}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 3: some words, cursor at end"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 3: some words, cursor at end
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3, 'bytes': 15, 'cursor_bytes': 14}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 4: some words, cursor at end, ve=all"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 4: some words, cursor at end, ve=all
[['', 'one two three'], {'chars': 15, 'cursor_chars': 15, 'words': 3, 'cursor_words': 3, 'bytes': 15, 'cursor_bytes': 15}][?25h[?0c[?25l[?1c


:[?25h[?0cset ve=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 5: several lines with words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['one two three', 'one two three', 'one two three'])
[?25l[?1cone two threeone two three--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([4,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 5: several lines with words
[['', 'one two three', 'one two three', 'one two three'], {'chars': 43, 'cursor_chars': 42, 'words': 9, 'cursor_words': 9, 'bytes': 43, 'cursor_bytes': 42}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 6: one line with BOM set"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1c[No Name] [+]                                                                   test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset bomb
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 2 lines, 18 characters writtenXtest        [?25h[?0c[?25l[?1c:[?25h[?0cwincmd j
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 6: one line with BOM set
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3, 'bytes': 18, 'cursor_bytes': 14}][?25h[?0c[?25l[?1c


:[?25h[?0cwincmd k
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset nobomb
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtest" 2 lines, 15 characters written   [?25h[?0c[?25l[?1c:[?25h[?0cwincmd j
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 7: one line with multibyte words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh'])
[?25l[?1cÄne M¤ne Müh[+]--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 7: one line with multibyte words
[['', 'Äne M¤ne Müh'], {'chars': 14, 'cursor_chars': 13, 'words': 3, 'cursor_words': 3, 'bytes': 17, 'cursor_bytes': 16}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 8: several lines with multibyte words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1cund raus bist dü!--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 8: several lines with multibyte words
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'cursor_chars': 31, 'words': 7, 'cursor_words': 7, 'bytes': 36, 'cursor_bytes': 35}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 9: visual mode, complete buffer"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 3985, 'words': 579, 'cursor_words': 560, 'bytes': 4153, 'cursor_bytes': 4007}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c0
[?25l[?1c[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual[?25h[?0c[?25l[?1c 
Äne M¤ne Müh 
und raus bist dü! ds': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36[?25h[?0c[?25l[?1cÄne M¤ne Mühnd raus bist dü!3 lines yankedursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1[?25h[?0c213[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 9: visual mode, complete buffer
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 10: visual mode (empty)"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4170, 'words': 606, 'cursor_words': 587, 'bytes': 4342, 'cursor_bytes': 4196}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c0
[?25l[?1c[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor[?25h[?0c213[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 10: visual mode (empty)
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_bytes': 1}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 11: visual mode, single line"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4347, 'words': 632, 'cursor_words': 613, 'bytes': 4521, 'cursor_bytes': 4377}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2
[?25l[?1c213[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 1, 'visual2[?25h[?0c[?25l[?1cÄne M¤ne Mühds': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16[?25h[?0c[?25l[?1c
Äne M¤ne Mühursor_chars': 2, 'words': 7, 'cursor_words': 1, 'bytes': 36, 'cursor_bytes': 3[?25h[?0csor_chars': 15, 'words': 7, 'cursor_words': 4, 'bytes': 36, 'cursor_bytes': 18[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 11: visual mode, single line
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^RESULT test/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 34 lines, 1905 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_wordcount = test61; then \
#	  if diff test.out test_wordcount.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_wordcount.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_wordcount.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test11.in
[?25h[?8c[?25h[?0c[?25l[?1c"test11.in" 84 lines, 3366 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for autocommands:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 48 lines, 2298 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:au! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>"))
:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
: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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" drop out when there is no gzip program
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !executable("gzip")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:au! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>"))
:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
:au! FileReadPost   *.gz   '[,']s/l/L/[?25h[?0c[?25l[?1c:[?25h[?0clet $GZIP = ""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileChangedShell * echo "caught FileChangedShell"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWritePre    *.gz   '[,']!gzip
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWritePost   *.gz   undo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of testfile/,/^end of testfile/w! Xtestfile.gz
[?25l[?1c[?25h[?0c[?25l[?1c11 lines filtered
"Xtestfile.gz" [New File][Incomplete last line] 1 line, 111 characters written

10 more lines; before #1  1 seconds ago

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau FileReadPost    *.gz   '[,']!gzip -d
[?25l[?1c:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
: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[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtestfile.gz                " Read and decompress the testfile
[?25l[?1c"Xtestfile.gz" [Incomplete last line] 1 line, 111 characters
[?25h[?0c[?25l[?1cstart of test.c
/*
 * Here is a new .c file
 */
end of test.c
start of testfile[?25h[?0c[?25l[?1c
:[?25h[?0c?startstart?,$w! test.out      " Write contents of this file
[?25l[?1c"test.out" [New File] 29 lines, 788 characters written[?25h[?0c[?25l[?1c:[?25h[?0cau BufNewFile      *.c    read Xtest.c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
[?25l[?1csearch hit BOTTOM, continuing at TOP"Xtest.c" [New File] 3 lines, 32 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! foo.c                       " Will load Xtest.c
[?25l[?1c"foo.c" [New File]
"Xtest.c" 3 lines, 32 characters

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau FileAppendPre   *.out  '[,']s/new/NEW/
[?25l[?1c/*
 * Here is a new .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau FileAppendPost  *.out  !cat Xtest.c >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw>>test.out                    " Append it to the output file
[?25l[?1c"test.out" 4 lines, 33 characters appended

:!cat Xtest.c >>test.out

[?25h[?0c
Press ENTER or type command to continue[?25l[?1c:[?25h[?0cau! FileAppendPre
[?25l[?1c/*
 * Here is a NEW .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" setup autocommands to decompress before reading and re-compress afterwards
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPre      *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPre      *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost     *.gz   call rename(expand("<afile>"), expand("<afile>:r"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost     *.gz   exe '!gzip ' . shellescape(expand("<afile>:r"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile.gz                " Edit compressed file
[?25l[?1c:!gzip -d 'Xtestfile.gz'

[?25h[?0c[?25l[?1c"Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters:!gzip 'Xtestfile'

[?25h[?0c[?25l[?1ccaught FileChangedShell

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw>>test.out                    " Append it to the output file
[?25l[?1c"test.out" 11 lines, 357 characters appended

:!cat Xtest.c >>test.out

[?25h[?0c
Press ENTER or type command to continue[?25l[?1c:[?25h[?0cset shelltemp                  " need temp files here
[?25l[?1cstart 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  call rename(expand("<afile>"), expand("<afile>") . "

.t")
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  exe 'silent !sed s/e/E/ ' . shellescape(expand("<afi

le>")) . ".t >" . shellescape(expand("<afile>"))
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  exe 'silent !rm ' . shellescape(expand("<afile>")) .

'.t'
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPost  *.out  '[,']s/x/X/g
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out                    " Edit the output file
[?25l[?1c"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.cstart of testfileline 2  Abcdefghijklmnopqrstuvwxyzline 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 4  Abcdefghijklmnopqrstuvwxyzline 5  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[?25h[?0c[?25l[?1c:[?25h[?0c23,$!cat
[?25l[?1c[?25h[?0c[?25l[?1c218 substitutions on 15 lines

28 lines filtered

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c23,$s/\r$//                 " remove CR for when sed adds them
[?25l[?1cE486: Pattern not found: \r$
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>

"))
[?25l[?1cstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE 5  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX[?25h[?0c[?25l[?1c
:[?25h[?0cau  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau! FileReadPost   *.gz   '[,']s/l/L/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$r Xtestfile.gz             " Read compressed file
[?25l[?1c[?25h[?0c[?25l[?1c"Xtestfile.gz" 11 lines, 357 characters

11 substitutions on 11 lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw                           " write it, after filtering
[?25l[?1c"test.out"61 lines, 1599 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau!             " remove all autocommands
[?25l[?1cE216: No such group or event: " remove all autocommands

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce               " Edit test.out again
[?25l[?1c"test.out"61 lines, 1599 charactersstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"test.out" 61 lines, 1599 characters[?25h[?0c[?25l[?1c:[?25h[?0cset nobin ff&   " use the default fileformat for writing
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 61 lines, 1599 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test11 = test61; then \
#	  if diff test.out test11.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test11.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test11.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test52.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for reading and writing files with conversion for Win32.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 57 lines, 1333 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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

[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make this a dummy test for non-Win32 systems
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("win32") | e! test.ok | wq! test.out | endif
[?25l[?1c"test.ok" 18 lines, 1374 characters

"test.out" [New File] 18 lines, 1374 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test52 = test61; then \
#	  if diff test.out test52.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test52.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test52.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test85.failed test.ok test.out X* viminfo
cp test85.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test85.in
[?25h[?8c[?25h[?0c[?25l[?1c"test85.in" 85 lines, 1868 charactersTest for Lua interface and luaeval() function

STARTTEST
:so small.vim
:so lua.vim
:set nocompatible viminfo+=nviminfo
:lua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
:lua h = vim.dict(); h.list = l
:call garbagecollect()
/^1
:" change buffer contents
:lua curbuf = vim.buffer()
:lua curline = vim.eval"line('.')"
:lua curbuf[curline] = "1 changed line 1"
:" scalar test
:let tmp_string = luaeval('"string"')
:let tmp_1000 = luaeval('1000')
:if printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
:let scalar_res = "OK"
:else
:let scalar_res = "FAILED"
:endif
:call append(search("^1"), "scalar test " . scalar_res)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Lua interface and luaeval() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 77 lines, 1775 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")
:lua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
:lua d[4] = d[0]
:lua d[5] = d[1]
:lua d[6] = d[2]
:lua d[7] = d[3]
:lua d[3] = nil
:lua d[2] = nil
:lua d[1] = nil
:lua d[0] = nil
:lua d = nil
:$put =string(d)

:?^1?,$w! test.out
:qa!
ENDTEST

1 line 1
2 line 2
3 line 3[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso lua.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua h = vim.dict(); h.list = l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect()
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" change buffer contents
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua curbuf = vim.buffer()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua curline = vim.eval"line('.')"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua curbuf[curline] = "1 changed line 1"
[?25l[?1cchanged line 1
[?25h[?0c[?25l[?1c:[?25h[?0c" scalar test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tmp_string = luaeval('"string"')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tmp_1000 = luaeval('1000')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
[?25l[?1c
:  [?25h[?0c:let scalar_res = "OK"

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:let scalar_res = "FAILED"

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")[?25h[?0c[?25l[?1c


:[?25h[?0ccall append(search("^1"), "scalar test " . scalar_res)
[?25l[?1cscalar test OK
2 line 2[?25h[?0c[?25l[?1c:[?25h[?0c" dictionary containing a list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tmp = luaeval("h").list[1]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^2/put =tmp
[?25l[?1c
dictionary with list OK[?25h[?0c[?25l[?1c
:[?25h[?0c" circular list (at the same time test lists containing lists)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet l2 = luaeval("h").list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif l2[2] == l2
[?25l[?1c
:  [?25h[?0c:let res = "OK"

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:let res = "FAILED"

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")
:lua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")[?25h[?0c[?25l[?1c
:[?25h[?0ccall setline(search("^3"), "circular test " . res)
[?25l[?1c
circular test OK[?25h[?0c[?25l[?1c
:[?25h[?0clet l = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l = vim.eval("l")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add(123)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add("abc")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add(vim.eval("[1, 2, 3]"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert(123)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert("abc")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert(vim.eval("[1, 2, 3]"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[0] = l[0]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[1] = l[1]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = l[2]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[3] = l[3]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[0] = 123
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[1] = "abc"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = vim.eval("[1, 2, 3]")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[3] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[1] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[0] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(l)
[?25l[?1c
[123.0, 'abc', [1, 2, 3], {'a': 1, 'b': 2, 'c': 3}][?25h[?0c[?25l[?1c
:[?25h[?0clet d = {}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d = vim.eval("d")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[0] = 123
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[1] = "abc"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[2] = vim.eval("[1, 2, 3]")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[4] = d[0]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[5] = d[1]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[6] = d[2]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[7] = d[3]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[3] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[2] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[1] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[0] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(d)
[?25l[?1c
{'4': 123.0, '5': 'abc', '6': [1, 2, 3], '7': {'a': 1, 'b': 2, 'c': 3}}[?25h[?0c[?25l[?1c
:[?25h[?0c?^1?,$w! test.out
[?25l[?1c"test.out" [New] 7L, 206C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test85 = test61; then \
#	  if diff test.out test85.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test85.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test85.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test86.failed test.ok test.out X* viminfo
cp test86.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test86.in
[?25h[?8c[?25h[?0c[?25l[?1c"test86.in" 1711 lines, 48481 charactersTests for various python features.     vim: set ft=vim :

NOTE: This will cause errors when run under valgrind.
This would require recompiling Python with:
  ./configure --without-pymalloc
See http://svn.python.org/view/python/trunk/Misc/README.valgrind?view=markup

STARTTEST
:so small.vim
:set encoding=latin1
:set noswapfile
:if !has('python') | e! test.ok | wq! test.out | endif
:lang C
:fun Test()
:py import vim
:py cb = vim.current.buffer
:let l = []
:py l=vim.bindeval('l')
:py f=vim.bindeval('function("strlen")')
:" Extending List directly with different types
:py l.extend([1, "as'd", [1, 2, f, {'a': 1}]])
:$put =string(l)
:$put =string(l[-1])[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for various python features.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1700 lines, 48188 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:   endif
:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=latin1
[?25l[?1c:   endif
:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c[?25l[?1c

:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('python') | e! test.ok | wq! test.out | endif
[?25l[?1c"test.ok" 1445 lines, 67439 characters

"test.out" [New File] 1445 lines, 67439 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test86 = test61; then \
#	  if diff test.out test86.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test86.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test86.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test87.failed test.ok test.out X* viminfo
cp test87.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test87.in
[?25h[?8c[?25h[?0c[?25l[?1c"test87.in" 1707 lines, 49069 charactersTests for various python features.     vim: set ft=vim :

STARTTEST
:so small.vim
:set noswapfile
:if !has('python3') | e! test.ok | wq! test.out | endif
:lang C
:fun Test()
:py3 import vim
:py3 cb = vim.current.buffer
:let l = []
:py3 l=vim.bindeval('l')
:py3 f=vim.bindeval('function("strlen")')
:" Extending List directly with different types
:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]
:$put =string(l)
:$put =string(l[-1])
:try
:  $put =string(l[-4])
:catch
:  $put =v:exception[:13]
:endtry
:" List assignment[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for various python features.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1701 lines, 48985 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:/^start:/,$w! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('python3') | e! test.ok | wq! test.out | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun Test()
[?25l[?1c
:  [?25h[?0c:py3 import vim

[?25l[?1c:  [?25h[?0c:py3 cb = vim.current.buffer

[?25l[?1c:  [?25h[?0c:let l = []

[?25l[?1c:  [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:  [?25h[?0c:py3 f=vim.bindeval('function("strlen")')

[?25l[?1c:  [?25h[?0c:" Extending List directly with different types

[?25l[?1c:  [?25h[?0c:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:$put =string(l[-1])

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =string(l[-4])

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:13]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:" List assignment

[?25l[?1c:  [?25h[?0c:py3 l[0]=0

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:py3 l[-2]=f

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Extending Dictionary directly with different types

[?25l[?1c:  [?25h[?0c:let d = {}

[?25l[?1c:  [?25h[?0c:fun d.f()

[?25l[?1c:    [?25h[?0c:  return 1

[?25l[?1c:    [?25h[?0c:endfun

[?25l[?1c:    [?25h[?0cpy3 << EOF

[?25l[?1c:    [?25h[?0cd=vim.bindeval('d')

[?25l[?1c:    [?25h[?0cd['1']='asd'

[?25l[?1c:    [?25h[?0cd.update()  # Must not do anything, including throwing errors

[?25l[?1c:    [?25h[?0cd.update(b=[1, 2, f])

[?25l[?1c:    [?25h[?0cd.update((('-1', {'a': 1}),))

[?25l[?1c:    [?25h[?0cd.update({'0': -1})

[?25l[?1c:    [?25h[?0cdk = d.keys()

[?25l[?1c:    [?25h[?0cdv = d.values()

[?25l[?1c:    [?25h[?0cdi = d.items()

[?25l[?1c:    [?25h[?0cdk.sort(key=repr)

[?25l[?1c:    [?25h[?0cdv.sort(key=repr)

[?25l[?1c:    [?25h[?0cdi.sort(key=repr)

[?25l[?1c:    [?25h[?0cEOF

[?25l[?1c:    [?25h[?0c:$put =py3eval('d[''f''](self={})')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(dk)')

[?25l[?1c:    [?25h[?0c:$put =substitute(py3eval('repr(dv)'),'0x\x\+','','g')

[?25l[?1c:    [?25h[?0c:$put =substitute(py3eval('repr(di)'),'0x\x\+','','g')

[?25l[?1c:    [?25h[?0c:for [key, Val] in sort(items(d))

[?25l[?1c:      [?25h[?0c:  $put =string(key) . ' : ' . string(Val)

[?25l[?1c:      [?25h[?0c:  unlet key Val

[?25l[?1c:      [?25h[?0c:endfor

[?25l[?1c:    [?25h[?0c:py3 del dk

[?25l[?1c:    [?25h[?0c:py3 del di

[?25l[?1c:    [?25h[?0c:py3 del dv

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" removing items with del

[?25l[?1c:    [?25h[?0c:py3 del l[2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:try

[?25l[?1c:      [?25h[?0c:   py3 del l[:3]

[?25l[?1c:      [?25h[?0c:   py3 del l[1:]

[?25l[?1c:      [?25h[?0c:catch

[?25l[?1c:      [?25h[?0c:   $put =v:exception

[?25l[?1c:      [?25h[?0c:endtry

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:py3 del d['-1']

[?25l[?1c:    [?25h[?0c:py3 del d['f']

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.get(''b'', 1)'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.pop(''b'')'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.get(''b'', 1)'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.has_key(''0''))')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.has_key(''1''))')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(''0'' in d)')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(''1'' in d)')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(list(iter(d)))')

[?25l[?1c:    [?25h[?0c:$put =string(d)

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.popitem())')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.get(''0''))')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(list(iter(d)))')

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" removing items out of range: silently skip items that don't exist

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:" The following two ranges delete nothing as they match empty list:

[?25l[?1c:    [?25h[?0c:py3 del l[2:1]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[2:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[2:3]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:4]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:5]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:6]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:" The following two ranges delete nothing as they match empty list:

[?25l[?1c:    [?25h[?0c:py3 del l[-1:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[-2:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[-3:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[-4:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[-5:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[-6:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[::2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[3:0:-2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:4:-2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" Slice assignment to a list

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[0:0]=['a']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[1:2]=['b']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:4]=['c']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[4:4]=['d']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[-1:2]=['e']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[-10:2]=['f']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:-10]=['g']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = []

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[0:0]=['h']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:6:2] = [10, 20]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[6:2:-2] = [10, 20]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[6:2] = ()

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[6:2:1] = ()

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:2:1] = ()

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" Locked variables

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:lockvar! l

[?25l[?1c:    [?25h[?0cpy3 << EOF

[?25l[?1c:    [?25h[?0cdef emsg(ei):

[?25l[?1c:    [?25h[?0c    return ei[0].__name__ + ':' + repr(ei[1].args)

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0ctry:

[?25l[?1c:    [?25h[?0c    l[2]='i'

[?25l[?1c:    [?25h[?0cexcept vim.error:

[?25l[?1c:    [?25h[?0c    cb.append('l[2] threw vim.error: ' + emsg(sys.exc_info()))

[?25l[?1c:    [?25h[?0cEOF

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:unlockvar! l

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" Function calls

[?25l[?1c:    [?25h[?0cpy3 << EOF

[?25l[?1c:    [?25h[?0cimport sys

[?25l[?1c:    [?25h[?0cimport re

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0cpy33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional

argument but (\d+) were given$')

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0cdef ee(expr, g=globals(), l=locals()):

[?25l[?1c:    [?25h[?0c    cb = vim.current.buffer

[?25l[?1c:    [?25h[?0c    try:

[?25l[?1c:    [?25h[?0c        try:

[?25l[?1c:    [?25h[?0c            exec(expr, g, l)

[?25l[?1c:    [?25h[?0c        except Exception as e:

[?25l[?1c:    [?25h[?0c            if sys.version_info >= (3, 3) and e.__class__ is AttributeErro

r and str(e).find('has no attribute')>=0 and not str(e).startswith("'vim."):

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + repr((e.__class__, AttributeError(s

tr(e)[str(e).rfind(" '") + 2:-1]))))

[?25l[?1c:    [?25h[?0c            elif sys.version_info >= (3, 3) and e.__class__ is ImportError

and str(e).find('No module named \'') >= 0:

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + repr((e.__class__, ImportError(str(

e).replace("'", '')))))

[?25l[?1c:    [?25h[?0c            elif sys.version_info >= (3, 3) and e.__class__ is TypeError:

[?25l[?1c:    [?25h[?0c                m = py33_type_error_pattern.search(str(e))

[?25l[?1c:    [?25h[?0c                if m:

[?25l[?1c:    [?25h[?0c                    msg = '__call__() takes exactly {0} positional argumen

t ({1} given)'.format(m.group(1), m.group(2))

[?25l[?1c:    [?25h[?0c                    cb.append(expr + ':' + repr((e.__class__, TypeError(ms

g))))

[?25l[?1c:    [?25h[?0c                else:

[?25l[?1c:    [?25h[?0c                    cb.append(expr + ':' + repr((e.__class__, e)))

[?25l[?1c:    [?25h[?0c            elif sys.version_info >= (3, 5) and e.__class__ is ValueError 

and str(e) == 'embedded null byte':

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + repr((TypeError, TypeError('expecte

d bytes with no null'))))

[?25l[?1c:    [?25h[?0c            else:

[?25l[?1c:    [?25h[?0c                msg = repr((e.__class__, e))

[?25l[?1c:    [?25h[?0c                # Some Python versions say can't, others cannot.

[?25l[?1c:    [?25h[?0c                if msg.find('can\'t') > -1:

[?25l[?1c:    [?25h[?0c                    msg = msg.replace('can\'t', 'cannot')

[?25l[?1c:    [?25h[?0c                # Some Python versions use single quote, some double quote

[?25l[?1c:    [?25h[?0c                if msg.find('"cannot ') > -1:

[?25l[?1c:    [?25h[?0c                    msg = msg.replace('"cannot ', '\'cannot ')

[?25l[?1c:    [?25h[?0c                if msg.find(' attributes"') > -1:

[?25l[?1c:    [?25h[?0c                    msg = msg.replace(' attributes"', ' attributes\'')

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + msg)

[?25l[?1c:    [?25h[?0c        else:

[?25l[?1c:    [?25h[?0c            cb.append(expr + ':NOT FAILED')

[?25l[?1c:    [?25h[?0c    except Exception as e:

[?25l[?1c:    [?25h[?0c        cb.append(expr + '::' + repr((e.__class__, e)))

[?25l[?1c:    [?25h[?0cEOF

[?25l[?1c:    [?25h[?0c:fun New(...)

[?25l[?1c:      [?25h[?0c:   return ['NewStart']+a:000+['NewEnd']

[?25l[?1c:      [?25h[?0c:endfun

[?25l[?1c:      [?25h[?0c:fun DictNew(...) dict

[?25l[?1c:[?25h[?0c:   return ['DictNewStart']+a:000+['DictNewEnd', self]

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:let l=[function('New'), function('DictNew')]

[?25l[?1c:[?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0c:py3 l.extend(list(l[0](1, 2, 3)))

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:py3 l.extend(list(l[1](1, 2, 3, self={'a': 'b'})))

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:py3 l+=[l[0].name]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:py3 ee('l[1](1, 2, 3)')

[?25l[?1c:[?25h[?0c:py3 f=l[0]

[?25l[?1c:[?25h[?0c:delfunction New

[?25l[?1c:[?25h[?0c:py3 ee('f(1, 2, 3)')

[?25l[?1c:[?25h[?0c:if has('float')

[?25l[?1c:[?25h[?0c:   let l=[0.0]

[?25l[?1c:[?25h[?0c:   py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0c:   py3 l.extend([0.0])

[?25l[?1c:[?25h[?0c:   $put =string(l)

[?25l[?1c:[?25h[?0c:else

[?25l[?1c:[?25h[?0c:   $put ='[0.0, 0.0]'

[?25l[?1c:[?25h[?0c:endif

[?25l[?1c:[?25h[?0c:let messages=[]

[?25l[?1c:[?25h[?0c:delfunction DictNew

[?25l[?1c:[?25h[?0cpy3 <<EOF

[?25l[?1c:[?25h[?0cimport sys

[?25l[?1c:[?25h[?0cd=vim.bindeval('{}')

[?25l[?1c:[?25h[?0cm=vim.bindeval('messages')

[?25l[?1c:[?25h[?0cdef em(expr, g=globals(), l=locals()):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        exec(expr, g, l)

[?25l[?1c:[?25h[?0c    except Exception as e:

[?25l[?1c:[?25h[?0c        if sys.version_info >= (3, 5) and e.__class__ is ValueError an

d str(e) == 'embedded null byte':

[?25l[?1c:[?25h[?0c            m.extend([TypeError.__name__])

[?25l[?1c:[?25h[?0c        else:

[?25l[?1c:[?25h[?0c            m.extend([e.__class__.__name__])

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cem('d["abc1"]')

[?25l[?1c:[?25h[?0cem('d["abc1"]="\\0"')

[?25l[?1c:[?25h[?0cem('d["abc1"]=vim')

[?25l[?1c:[?25h[?0cem('d[""]=1')

[?25l[?1c:[?25h[?0cem('d["a\\0b"]=1')

[?25l[?1c:[?25h[?0cem('d[b"a\\0b"]=1')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cem('d.pop("abc1")')

[?25l[?1c:[?25h[?0cem('d.popitem()')

[?25l[?1c:[?25h[?0cdel em

[?25l[?1c:[?25h[?0cdel m

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:$put =messages

[?25l[?1c:[?25h[?0c:unlet messages

[?25l[?1c:[?25h[?0c:" locked and scope attributes

[?25l[?1c:[?25h[?0c:let d={} | let dl={} | lockvar dl

[?25l[?1c:[?25h[?0c:for s in split("d dl v: g:")

[?25l[?1c:[?25h[?0c:    let name=tr(s, ':', 's')

[?25l[?1c:[?25h[?0c:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l[?1c:[?25h[?0c:    let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".py3e

val(name.".".v:val)'), ';')

[?25l[?1c:[?25h[?0c:    $put =toput

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:silent! let d.abc2=1

[?25l[?1c:[?25h[?0c:silent! let dl.abc3=1

[?25l[?1c:[?25h[?0c:py3 d.locked=True

[?25l[?1c:[?25h[?0c:py3 dl.locked=False

[?25l[?1c:[?25h[?0c:silent! let d.def=1

[?25l[?1c:[?25h[?0c:silent! let dl.def=1

[?25l[?1c:[?25h[?0c:put ='d:'.string(d)

[?25l[?1c:[?25h[?0c:put ='dl:'.string(dl)

[?25l[?1c:[?25h[?0c:unlet d dl

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:let l=[] | let ll=[] | lockvar ll

[?25l[?1c:[?25h[?0c:for s in split("l ll")

[?25l[?1c:[?25h[?0c:    let name=tr(s, ':', 's')

[?25l[?1c:[?25h[?0c:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l[?1c:[?25h[?0c:    let toput=s.' : locked:'.py3eval(name.'.locked')

[?25l[?1c:[?25h[?0c:    $put =toput

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:silent! call extend(l, [0])

[?25l[?1c:[?25h[?0c:silent! call extend(ll, [0])

[?25l[?1c:[?25h[?0c:py3 l.locked=True

[?25l[?1c:[?25h[?0c:py3 ll.locked=False

[?25l[?1c:[?25h[?0c:silent! call extend(l, [1])

[?25l[?1c:[?25h[?0c:silent! call extend(ll, [1])

[?25l[?1c:[?25h[?0c:put ='l:'.string(l)

[?25l[?1c:[?25h[?0c:put ='ll:'.string(ll)

[?25l[?1c:[?25h[?0c:unlet l ll

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" py3eval()

[?25l[?1c:[?25h[?0c:let l=py3eval('[0, 1, 2]')

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:let d=py3eval('{"a": "b", "c": 1, "d": ["e"]}')

[?25l[?1c:[?25h[?0c:$put =sort(items(d))

[?25l[?1c:[?25h[?0c:let v:errmsg = ''

[?25l[?1c:[?25h[?0c:$put ='py3eval(\"None\") = ' . py3eval('None') . v:errmsg

[?25l[?1c:[?25h[?0c:if has('float')

[?25l[?1c:[?25h[?0c:   let f=py3eval('0.0')

[?25l[?1c:[?25h[?0c:   $put =string(f)

[?25l[?1c:[?25h[?0c:else

[?25l[?1c:[?25h[?0c:   $put ='0.0'

[?25l[?1c:[?25h[?0c:endif

[?25l[?1c:[?25h[?0c:" Invalid values:

[?25l[?1c:[?25h[?0c:for e in ['"\0"', '{"\0": 1}', 'undefined_name', 'vim']

[?25l[?1c:[?25h[?0c:   try

[?25l[?1c:[?25h[?0c:      let v=py3eval(e)

[?25l[?1c:[?25h[?0c:   catch

[?25l[?1c:[?25h[?0c:      let toput=e.":\t".v:exception[:13]

[?25l[?1c:[?25h[?0c:      $put =toput

[?25l[?1c:[?25h[?0c:   endtry

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" threading

[?25l[?1c:[?25h[?0c:let l = [0]

[?25l[?1c:[?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0cpy3 <<EOF

[?25l[?1c:[?25h[?0cimport threading

[?25l[?1c:[?25h[?0cimport time

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass T(threading.Thread):

[?25l[?1c:[?25h[?0c    def __init__(self):

[?25l[?1c:[?25h[?0c        threading.Thread.__init__(self)

[?25l[?1c:[?25h[?0c        self.t = 0

[?25l[?1c:[?25h[?0c        self.running = True

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def run(self):

[?25l[?1c:[?25h[?0c        while self.running:

[?25l[?1c:[?25h[?0c            self.t += 1

[?25l[?1c:[?25h[?0c            time.sleep(0.1)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ct = T()

[?25l[?1c:[?25h[?0cdel T

[?25l[?1c:[?25h[?0ct.start()

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:sleep 1

[?25l[?1c:[?25h[?0c:py3 t.running = False

[?25l[?1c:[?25h[?0c:py3 t.join()

[?25l[?1c:[?25h[?0c:" Check if the background thread is working.  Count should be 10, but

on a

[?25l[?1c:[?25h[?0c:" busy system (AppVeyor) it can be much lower.

[?25l[?1c:[?25h[?0c:py3 l[0] = t.t > 4

[?25l[?1c:[?25h[?0c:py3 del time

[?25l[?1c:[?25h[?0c:py3 del threading

[?25l[?1c:[?25h[?0c:py3 del t

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" settrace

[?25l[?1c:[?25h[?0c:let l = []

[?25l[?1c:[?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0cpy3 <<EOF

[?25l[?1c:[?25h[?0cimport sys

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef traceit(frame, event, arg):

[?25l[?1c:[?25h[?0c    global l

[?25l[?1c:[?25h[?0c    if event == "line":

[?25l[?1c:[?25h[?0c        l += [frame.f_lineno]

[?25l[?1c:[?25h[?0c    return traceit

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef trace_main():

[?25l[?1c:[?25h[?0c    for i in range(5):

[?25l[?1c:[?25h[?0c        pass

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:py3 sys.settrace(traceit)

[?25l[?1c:[?25h[?0c:py3 trace_main()

[?25l[?1c:[?25h[?0c:py3 sys.settrace(None)

[?25l[?1c:[?25h[?0c:py3 del traceit

[?25l[?1c:[?25h[?0c:py3 del trace_main

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Slice

[?25l[?1c:[?25h[?0c:py3 ll = vim.bindeval('[0, 1, 2, 3, 4, 5]')

[?25l[?1c:[?25h[?0c:py3 l = ll[:4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[2:]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[:-4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-2:]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[2:4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[4:2]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-4:-2]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-2:-4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[:]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[0:6]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-10:10]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[4:2:-1]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[::2]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[4:2:1]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 del l

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Vars

[?25l[?1c:[?25h[?0c:let g:foo = 'bac'

[?25l[?1c:[?25h[?0c:let w:abc3 = 'def'

[?25l[?1c:[?25h[?0c:let b:baz = 'bar'

[?25l[?1c:[?25h[?0c:let t:bar = 'jkl'

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  throw "Abc"

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  put =py3eval('vim.vvars[''exception'']')

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:put =py3eval('vim.vars[''foo'']')

[?25l[?1c:[?25h[?0c:put =py3eval('vim.current.window.vars[''abc3'']')

[?25l[?1c:[?25h[?0c:put =py3eval('vim.current.buffer.vars[''baz'']')

[?25l[?1c:[?25h[?0c:put =py3eval('vim.current.tabpage.vars[''bar'']')

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Options

[?25l[?1c:[?25h[?0c:" paste:          boolean, global

[?25l[?1c:[?25h[?0c:" previewheight   number,  global

[?25l[?1c:[?25h[?0c:" operatorfunc:   string,  global

[?25l[?1c:[?25h[?0c:" number:         boolean, window-local

[?25l[?1c:[?25h[?0c:" numberwidth:    number,  window-local

[?25l[?1c:[?25h[?0c:" colorcolumn:    string,  window-local

[?25l[?1c:[?25h[?0c:" statusline:     string,  window-local/global

[?25l[?1c:[?25h[?0c:" autoindent:     boolean, buffer-local

[?25l[?1c:[?25h[?0c:" shiftwidth:     number,  buffer-local

[?25l[?1c:[?25h[?0c:" omnifunc:       string,  buffer-local

[?25l[?1c:[?25h[?0c:" preserveindent: boolean, buffer-local/global

[?25l[?1c:[?25h[?0c:" path:           string,  buffer-local/global

[?25l[?1c:[?25h[?0c:let g:bufs=[bufnr('%')]

[?25l[?1c:[?25h[?0c:new

[?25l[?1c:[?25h[?0c:let g:bufs+=[bufnr('%')]

[?25l[?1c:[?25h[?0c:vnew

[?25l[?1c:[?25h[?0c:let g:bufs+=[bufnr('%')]

[?25l[?1c:[?25h[?0c:wincmd j

[?25l[?1c:[?25h[?0c:vnew

[?25l[?1c:[?25h[?0c:let g:bufs+=[bufnr('%')]

[?25l[?1c:[?25h[?0c:wincmd l

[?25l[?1c:[?25h[?0c:fun RecVars(opt)

[?25l[?1c:[?25h[?0c:  let gval =string(eval('&g:'.a:opt))

[?25l[?1c:[?25h[?0c:  let wvals=join(map(range(1, 4),  'v:val.":".string(getwinvar(v:va

l, "&".a:opt))'))

[?25l[?1c:[?25h[?0c:  let bvals=join(map(copy(g:bufs), 'v:val.":".string(getbufvar(v:va

l, "&".a:opt))'))

[?25l[?1c:[?25h[?0c:  put ='  G: '.gval

[?25l[?1c:[?25h[?0c:  put ='  W: '.wvals

[?25l[?1c:[?25h[?0c:  put ='  B: '.wvals

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef e(s, g=globals(), l=locals()):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        exec(s, g, l)

[?25l[?1c:[?25h[?0c    except Exception as e:

[?25l[?1c:[?25h[?0c        vim.command('return ' + repr(e.__class__.__name__))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef ev(s, g=globals(), l=locals()):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        return eval(s, g, l)

[?25l[?1c:[?25h[?0c    except Exception as e:

[?25l[?1c:[?25h[?0c        vim.command('let exc=' + repr(e.__class__.__name__))

[?25l[?1c:[?25h[?0c        return 0

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:fun E(s)

[?25l[?1c:[?25h[?0c:   python3 e(vim.eval('a:s'))

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:fun Ev(s)

[?25l[?1c:[?25h[?0c:   let r=py3eval('ev(vim.eval("a:s"))')

[?25l[?1c:[?25h[?0c:   if exists('exc')

[?25l[?1c:[?25h[?0c:       throw exc

[?25l[?1c:[?25h[?0c:   endif

[?25l[?1c:[?25h[?0c:   return r

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:py3 gopts1=vim.options

[?25l[?1c:[?25h[?0c:py3 wopts1=vim.windows[2].options

[?25l[?1c:[?25h[?0c:py3 wopts2=vim.windows[0].options

[?25l[?1c:[?25h[?0c:py3 wopts3=vim.windows[1].options

[?25l[?1c:[?25h[?0c:py3 bopts1=vim.buffers[vim.bindeval("g:bufs")[2]].options

[?25l[?1c:[?25h[?0c:py3 bopts2=vim.buffers[vim.bindeval("g:bufs")[1]].options

[?25l[?1c:[?25h[?0c:py3 bopts3=vim.buffers[vim.bindeval("g:bufs")[0]].options

[?25l[?1c:[?25h[?0c:$put ='wopts iters equal: '.py3eval('list(wopts1) == list(wopts

2)')

[?25l[?1c:[?25h[?0c:$put ='bopts iters equal: '.py3eval('list(bopts1) == list(bopts

2)')

[?25l[?1c:[?25h[?0c:py3 gset=set(iter(gopts1))

[?25l[?1c:[?25h[?0c:py3 wset=set(iter(wopts1))

[?25l[?1c:[?25h[?0c:py3 bset=set(iter(bopts1))

[?25l[?1c:[?25h[?0c:set path=.,..,,

[?25l[?1c:[?25h[?0c:let lst=[]

[?25l[?1c:[?25h[?0c:let lst+=[['paste',          1,     0,     1,     2,      1,   

1,      0    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['previewheight',  5,     1,     6,     'a',    0,   

1,      0    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['operatorfunc',   'A',   'B',   'C',   2,      0,   

1,      0    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['number',         0,     1,     1,     0,      1,   

0,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['numberwidth',    2,     3,     5,     -100,   0,   

0,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['colorcolumn',    '+1',  '+2',  '+3',  'abc4',  0,  

 0,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['statusline',     '1',   '2',   '4',   0,      0,   

1,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['autoindent',     0,     1,     1,     2,      1,   

0,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['shiftwidth',     0,     2,     1,     3,      0,   

0,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['omnifunc',       'A',   'B',   'C',   1,      0,   

0,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['preserveindent', 0,     1,     1,     2,      1,   

1,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['path',           '.,,', ',,',  '.',   0,      0,   

1,      2    ]]

[?25l[?1c:[?25h[?0c:for       [oname,            oval1, oval2, oval3, invval, bool,

global, local] in lst

[?25l[?1c:[?25h[?0c:   py3 oname=vim.eval('oname')

[?25l[?1c:[?25h[?0c:   py3 oval1=vim.bindeval('oval1')

[?25l[?1c:[?25h[?0c:   py3 oval2=vim.bindeval('oval2')

[?25l[?1c:[?25h[?0c:   py3 oval3=vim.bindeval('oval3')

[?25l[?1c:[?25h[?0c:   if invval is 0 || invval is 1

[?25l[?1c:[?25h[?0c:       py3 invval=bool(vim.bindeval('invval'))

[?25l[?1c:[?25h[?0c:   else

[?25l[?1c:[?25h[?0c:       py3 invval=vim.bindeval('invval')

[?25l[?1c:[?25h[?0c:   endif

[?25l[?1c:[?25h[?0c:   if bool

[?25l[?1c:[?25h[?0c:       py3 oval1=bool(oval1)

[?25l[?1c:[?25h[?0c:       py3 oval2=bool(oval2)

[?25l[?1c:[?25h[?0c:       py3 oval3=bool(oval3)

[?25l[?1c:[?25h[?0c:   endif

[?25l[?1c:[?25h[?0c:   put ='>>> '.oname

[?25l[?1c:[?25h[?0c:   $put ='  g/w/b:'.py3eval('oname in gset').'/'.py3eval('ona

me in wset').'/'.py3eval('oname in bset')

[?25l[?1c:[?25h[?0c:   $put ='  g/w/b (in):'.py3eval('oname in gopts1').'/'.py3ev

al('oname in wopts1').'/'.py3eval('oname in bopts1')

[?25l[?1c:[?25h[?0c:   for v in ['gopts1', 'wopts1', 'bopts1']

[?25l[?1c:[?25h[?0c:       try

[?25l[?1c:[?25h[?0c:           put ='  p/'.v.': '.Ev('repr('.v.'['''.oname.''

'])')

[?25l[?1c:[?25h[?0c:       catch

[?25l[?1c:[?25h[?0c:           put ='  p/'.v.'! '.v:exception

[?25l[?1c:[?25h[?0c:       endtry

[?25l[?1c:[?25h[?0c:       let r=E(v.'['''.oname.''']=invval')

[?25l[?1c:[?25h[?0c:       if r isnot 0

[?25l[?1c:[?25h[?0c:           put ='  inv: '.string(invval).'! '.r

[?25l[?1c:[?25h[?0c:       endif

[?25l[?1c:[?25h[?0c:       for vv in (v is# 'gopts1' ? [v] : [v, v[:-2].'2', v[

:-2].'3'])

[?25l[?1c:[?25h[?0c:           let val=substitute(vv, '^.opts', 'oval', '')

[?25l[?1c:[?25h[?0c:           let r=E(vv.'['''.oname.''']='.val)

[?25l[?1c:[?25h[?0c:           if r isnot 0

[?25l[?1c:[?25h[?0c:               put ='  '.vv.'! '.r

[?25l[?1c:[?25h[?0c:           endif

[?25l[?1c:[?25h[?0c:       endfor

[?25l[?1c:[?25h[?0c:   endfor

[?25l[?1c:[?25h[?0c:   call RecVars(oname)

[?25l[?1c:[?25h[?0c:   for v in ['wopts3', 'bopts3']

[?25l[?1c:[?25h[?0c:       let r=E('del '.v.'["'.oname.'"]')

[?25l[?1c:[?25h[?0c:       if r isnot 0

[?25l[?1c:[?25h[?0c:           put ='  del '.v.'! '.r

[?25l[?1c:[?25h[?0c:       endif

[?25l[?1c:[?25h[?0c:   endfor

[?25l[?1c:[?25h[?0c:   call RecVars(oname)

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:delfunction RecVars

[?25l[?1c:[?25h[?0c:delfunction E

[?25l[?1c:[?25h[?0c:delfunction Ev

[?25l[?1c:[?25h[?0c:py3 del ev

[?25l[?1c:[?25h[?0c:py3 del e

[?25l[?1c:[?25h[?0c:only

[?25l[?1c:[?25h[?0c:for buf in g:bufs[1:]

[?25l[?1c:[?25h[?0c:   execute 'bwipeout!' buf

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:py3 del gopts1

[?25l[?1c:[?25h[?0c:py3 del wopts1

[?25l[?1c:[?25h[?0c:py3 del wopts2

[?25l[?1c:[?25h[?0c:py3 del wopts3

[?25l[?1c:[?25h[?0c:py3 del bopts1

[?25l[?1c:[?25h[?0c:py3 del bopts2

[?25l[?1c:[?25h[?0c:py3 del bopts3

[?25l[?1c:[?25h[?0c:py3 del oval1

[?25l[?1c:[?25h[?0c:py3 del oval2

[?25l[?1c:[?25h[?0c:py3 del oval3

[?25l[?1c:[?25h[?0c:py3 del oname

[?25l[?1c:[?25h[?0c:py3 del invval

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test buffer object

[?25l[?1c:[?25h[?0c:vnew

[?25l[?1c:[?25h[?0c:put ='First line'

[?25l[?1c:[?25h[?0c:put ='Second line'

[?25l[?1c:[?25h[?0c:put ='Third line'

[?25l[?1c:[?25h[?0c:1 delete _

[?25l[?1c:[?25h[?0c:py3 b=vim.current.buffer

[?25l[?1c:[?25h[?0c:wincmd w

[?25l[?1c:[?25h[?0c:mark a

[?25l[?1c:[?25h[?0c:augroup BUFS

[?25l[?1c:[?25h[?0c:   autocmd BufFilePost * python3 cb.append(vim.eval('expand("<a

buf>")') + ':BufFilePost:' + vim.eval('bufnr("%")'))

[?25l[?1c:[?25h[?0c:   autocmd BufFilePre * python3 cb.append(vim.eval('expand("<ab

uf>")') + ':BufFilePre:' + vim.eval('bufnr("%")'))

[?25l[?1c:[?25h[?0c:augroup END

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0c# Tests BufferAppend and BufferItem

[?25l[?1c:[?25h[?0ccb.append(b[0])

[?25l[?1c:[?25h[?0c# Tests BufferSlice and BufferAssSlice

[?25l[?1c:[?25h[?0ccb.append('abc5') # Will be overwritten

[?25l[?1c:[?25h[?0ccb[-1:] = b[:-2]

[?25l[?1c:[?25h[?0c# Test BufferLength and BufferAssSlice

[?25l[?1c:[?25h[?0ccb.append('def') # Will not be overwritten

[?25l[?1c:[?25h[?0ccb[len(cb):] = b[:]

[?25l[?1c:[?25h[?0c# Test BufferAssItem and BufferMark

[?25l[?1c:[?25h[?0ccb.append('ghi') # Will be overwritten

[?25l[?1c:[?25h[?0ccb[-1] = repr((len(cb) - cb.mark('a')[0], cb.mark('a')[1]))

[?25l[?1c:[?25h[?0c# Test BufferRepr

[?25l[?1c:[?25h[?0ccb.append(repr(cb) + repr(b))

[?25l[?1c:[?25h[?0c# Modify foreign buffer

[?25l[?1c:[?25h[?0cb.append('foo')

[?25l[?1c:[?25h[?0cb[0]='bar'

[?25l[?1c:[?25h[?0cb[0:0]=['baz']

[?25l[?1c:[?25h[?0cvim.command('call append("$", getbufline(%i, 1, "$"))' % b.numbe

r)
[?25l[?1c:[?25h[?0c# Test assigning to name property

[?25l[?1c:[?25h[?0cimport os

[?25l[?1c:[?25h[?0cold_name = cb.name

[?25l[?1c:[?25h[?0ccb.name = 'foo'

[?25l[?1c:[?25h[?0ccb.append(cb.name[-11:].replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0cb.name = 'bar'

[?25l[?1c:[?25h[?0ccb.append(b.name[-11:].replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0ccb.name = old_name

[?25l[?1c:[?25h[?0ccb.append(cb.name[-17:].replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0cdel old_name

[?25l[?1c:[?25h[?0c# Test CheckBuffer

[?25l[?1c:[?25h[?0cfor _b in vim.buffers:

[?25l[?1c:[?25h[?0c    if _b is not cb:

[?25l[?1c:[?25h[?0c        vim.command('bwipeout! ' + str(_b.number))

[?25l[?1c:[?25h[?0cdel _b

[?25l[?1c:[?25h[?0ccb.append('valid: b:%s, cb:%s' % (repr(b.valid), repr(cb.valid))

)
[?25l[?1c:[?25h[?0cfor expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc6")

'):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        exec(expr)

[?25l[?1c:[?25h[?0c    except vim.error:

[?25l[?1c:[?25h[?0c        pass

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        # Usually a SEGV here

[?25l[?1c:[?25h[?0c        # Should not happen in any case

[?25l[?1c:[?25h[?0c        cb.append('No exception for ' + expr)

[?25l[?1c:[?25h[?0cvim.command('cd .')

[?25l[?1c:[?25h[?0cdel b

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.buffers object

[?25l[?1c:[?25h[?0c:set hidden

[?25l[?1c:[?25h[?0c:edit a

[?25l[?1c:[?25h[?0c:buffer #

[?25l[?1c:[?25h[?0c:edit b

[?25l[?1c:[?25h[?0c:buffer #

[?25l[?1c:[?25h[?0c:edit c

[?25l[?1c:[?25h[?0c:buffer #

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0c# Check GCing iterator that was not fully exhausted

[?25l[?1c:[?25h[?0ci = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i:' + str(next(i)))

[?25l[?1c:[?25h[?0c# and also check creating more than one iterator at a time

[?25l[?1c:[?25h[?0ci2 = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i2:' + str(next(i2)))

[?25l[?1c:[?25h[?0ccb.append('i:' + str(next(i)))

[?25l[?1c:[?25h[?0c# The following should trigger GC and not cause any problems

[?25l[?1c:[?25h[?0cdel i

[?25l[?1c:[?25h[?0cdel i2

[?25l[?1c:[?25h[?0ci3 = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i3:' + str(next(i3)))

[?25l[?1c:[?25h[?0cdel i3

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cprevnum = 0

[?25l[?1c:[?25h[?0cfor b in vim.buffers:

[?25l[?1c:[?25h[?0c    # Check buffer order

[?25l[?1c:[?25h[?0c    if prevnum >= b.number:

[?25l[?1c:[?25h[?0c        cb.append('!!! Buffer numbers not in strictly ascending 

order')

[?25l[?1c:[?25h[?0c    # Check indexing: vim.buffers[number].number == number

[?25l[?1c:[?25h[?0c    cb.append(str(b.number) + ':' + repr(vim.buffers[b.number]) 

+ '=' + repr(b))

[?25l[?1c:[?25h[?0c    prevnum = b.number

[?25l[?1c:[?25h[?0cdel prevnum

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append(str(len(vim.buffers)))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cbnums = list(map(lambda b: b.number, vim.buffers))[1:]

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c# Test wiping out buffer with existing iterator

[?25l[?1c:[?25h[?0ci4 = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i4:' + str(next(i4)))

[?25l[?1c:[?25h[?0cvim.command('bwipeout! ' + str(bnums.pop(0)))

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    next(i4)

[?25l[?1c:[?25h[?0cexcept vim.error:

[?25l[?1c:[?25h[?0c    pass

[?25l[?1c:[?25h[?0celse:

[?25l[?1c:[?25h[?0c    cb.append('!!!! No vim.error')

[?25l[?1c:[?25h[?0ci4 = iter(vim.buffers)

[?25l[?1c:[?25h[?0cvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l[?1c:[?25h[?0cvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l[?1c:[?25h[?0ccb.append('i4:' + str(next(i4)))

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    next(i4)

[?25l[?1c:[?25h[?0cexcept StopIteration:

[?25l[?1c:[?25h[?0c    cb.append('StopIteration')

[?25l[?1c:[?25h[?0cdel i4

[?25l[?1c:[?25h[?0cdel bnums

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.{tabpage,window}list and vim.{tabpage,window} object

s
[?25l[?1c:[?25h[?0c:tabnew 0

[?25l[?1c:[?25h[?0c:tabnew 1

[?25l[?1c:[?25h[?0c:vnew a.1

[?25l[?1c:[?25h[?0c:tabnew 2

[?25l[?1c:[?25h[?0c:vnew a.2

[?25l[?1c:[?25h[?0c:vnew b.2

[?25l[?1c:[?25h[?0c:vnew c.2

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0ccb.append('Number of tabs: ' + str(len(vim.tabpages)))

[?25l[?1c:[?25h[?0ccb.append('Current tab pages:')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef W(w):

[?25l[?1c:[?25h[?0c    if '(unknown)' in repr(w):

[?25l[?1c:[?25h[?0c        return '<window object (unknown)>'

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        return repr(w)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef Cursor(w, start=len(cb)):

[?25l[?1c:[?25h[?0c    if w.buffer is cb:

[?25l[?1c:[?25h[?0c        return repr((start - w.cursor[0], w.cursor[1]))

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        return repr(w.cursor)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cfor t in vim.tabpages:

[?25l[?1c:[?25h[?0c    cb.append('  ' + repr(t) + '(' + str(t.number) + ')' + ': ' 

+ str(len(t.windows)) + ' windows, current is ' + W(t.window))

[?25l[?1c:[?25h[?0c    cb.append('  Windows:')

[?25l[?1c:[?25h[?0c    for w in t.windows:

[?25l[?1c:[?25h[?0c        cb.append('    ' + W(w) + '(' + str(w.number) + ')' + ':

displays buffer ' + repr(w.buffer) + '; cursor is at ' + Cursor(w))

[?25l[?1c:[?25h[?0c        # Other values depend on the size of the terminal, so th

ey are checked partly:

[?25l[?1c:[?25h[?0c        for attr in ('height', 'row', 'width', 'col'):

[?25l[?1c:[?25h[?0c            try:

[?25l[?1c:[?25h[?0c                aval = getattr(w, attr)

[?25l[?1c:[?25h[?0c                if type(aval) is not int:

[?25l[?1c:[?25h[?0c                    raise TypeError

[?25l[?1c:[?25h[?0c                if aval < 0:

[?25l[?1c:[?25h[?0c                    raise ValueError

[?25l[?1c:[?25h[?0c            except Exception as e:

[?25l[?1c:[?25h[?0c                cb.append('!!!!!! Error while getting attribute 

' + attr + ': ' + e.__class__.__name__)

[?25l[?1c:[?25h[?0c        del aval

[?25l[?1c:[?25h[?0c        del attr

[?25l[?1c:[?25h[?0c        w.cursor = (len(w.buffer), 0)

[?25l[?1c:[?25h[?0cdel W

[?25l[?1c:[?25h[?0cdel Cursor

[?25l[?1c:[?25h[?0ccb.append('Number of windows in current tab page: ' + str(len(vi

m.windows)))

[?25l[?1c:[?25h[?0cif list(vim.windows) != list(vim.current.tabpage.windows):

[?25l[?1c:[?25h[?0c    cb.append('!!!!!! Windows differ')

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.current

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef H(o):

[?25l[?1c:[?25h[?0c    return repr(o)

[?25l[?1c:[?25h[?0ccb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l[?1c:[?25h[?0ccb.append('Current window: ' + repr(vim.current.window) + ': ' +

H(vim.current.window) + ' is ' + H(vim.current.tabpage.window))

[?25l[?1c:[?25h[?0ccb.append('Current buffer: ' + repr(vim.current.buffer) + ': ' +

H(vim.current.buffer) + ' is ' + H(vim.current.window.buffer)+ ' is ' + H(vim.c

urrent.tabpage.window.buffer))

[?25l[?1c:[?25h[?0cdel H

[?25l[?1c:[?25h[?0c# Assigning: fails

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    vim.current.window = vim.tabpages[0].window

[?25l[?1c:[?25h[?0cexcept ValueError:

[?25l[?1c:[?25h[?0c    cb.append('ValueError at assigning foreign tab window')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cfor attr in ('window', 'tabpage', 'buffer'):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        setattr(vim.current, attr, None)

[?25l[?1c:[?25h[?0c    except TypeError:

[?25l[?1c:[?25h[?0c        cb.append('Type error at assigning None to vim.current.'

+ attr)

[?25l[?1c:[?25h[?0cdel attr

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c# Assigning: success

[?25l[?1c:[?25h[?0cvim.current.tabpage = vim.tabpages[-2]

[?25l[?1c:[?25h[?0cvim.current.buffer = cb

[?25l[?1c:[?25h[?0cvim.current.window = vim.windows[0]

[?25l[?1c:[?25h[?0cvim.current.window.cursor = (len(vim.current.buffer), 0)

[?25l[?1c:[?25h[?0ccb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l[?1c:[?25h[?0ccb.append('Current window: ' + repr(vim.current.window))

[?25l[?1c:[?25h[?0ccb.append('Current buffer: ' + repr(vim.current.buffer))

[?25l[?1c:[?25h[?0ccb.append('Current line: ' + repr(vim.current.line))

[?25l[?1c:[?25h[?0cws = list(vim.windows)

[?25l[?1c:[?25h[?0cts = list(vim.tabpages)

[?25l[?1c:[?25h[?0cfor b in vim.buffers:

[?25l[?1c:[?25h[?0c    if b is not cb:

[?25l[?1c:[?25h[?0c        vim.command('bwipeout! ' + str(b.number))

[?25l[?1c:[?25h[?0cdel b

[?25l[?1c:[?25h[?0ccb.append('w.valid: ' + repr([w.valid for w in ws]))

[?25l[?1c:[?25h[?0ccb.append('t.valid: ' + repr([t.valid for t in ts]))

[?25l[?1c:[?25h[?0cdel w

[?25l[?1c:[?25h[?0cdel t

[?25l[?1c:[?25h[?0cdel ts

[?25l[?1c:[?25h[?0cdel ws

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:tabonly!

[?25l[?1c:[?25h[?0c:only!

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test types

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cfor expr, attr in (

[?25l[?1c:[?25h[?0c    ('vim.vars',                         'Dictionary'),

[?25l[?1c:[?25h[?0c    ('vim.options',                      'Options'),

[?25l[?1c:[?25h[?0c    ('vim.bindeval("{}")',               'Dictionary'),

[?25l[?1c:[?25h[?0c    ('vim.bindeval("[]")',               'List'),

[?25l[?1c:[?25h[?0c    ('vim.bindeval("function(\'tr\')")', 'Function'),

[?25l[?1c:[?25h[?0c    ('vim.current.buffer',               'Buffer'),

[?25l[?1c:[?25h[?0c    ('vim.current.range',                'Range'),

[?25l[?1c:[?25h[?0c    ('vim.current.window',               'Window'),

[?25l[?1c:[?25h[?0c    ('vim.current.tabpage',              'TabPage'),

[?25l[?1c:[?25h[?0c):

[?25l[?1c:[?25h[?0c    cb.append(expr + ':' + attr + ':' + repr(type(eval(expr)) is

getattr(vim, attr)))

[?25l[?1c:[?25h[?0cdel expr

[?25l[?1c:[?25h[?0cdel attr

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test __dir__() method

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cfor name, o in (

[?25l[?1c:[?25h[?0c        ('current',    vim.current),

[?25l[?1c:[?25h[?0c        ('buffer',     vim.current.buffer),

[?25l[?1c:[?25h[?0c        ('window',     vim.current.window),

[?25l[?1c:[?25h[?0c        ('tabpage',    vim.current.tabpage),

[?25l[?1c:[?25h[?0c        ('range',      vim.current.range),

[?25l[?1c:[?25h[?0c        ('dictionary', vim.bindeval('{}')),

[?25l[?1c:[?25h[?0c        ('list',       vim.bindeval('[]')),

[?25l[?1c:[?25h[?0c        ('function',   vim.bindeval('function("tr")')),

[?25l[?1c:[?25h[?0c        ('output',     sys.stdout),

[?25l[?1c:[?25h[?0c    ):

[?25l[?1c:[?25h[?0c    cb.append(name + ':' + ','.join(dir(o)))

[?25l[?1c:[?25h[?0cdel name

[?25l[?1c:[?25h[?0cdel o

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.*.__new__

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Dictionary({})'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Dictionary(a=1)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Dictionary(((''a'', 1),))'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.List()'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.List(iter(''abc7''))'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'')'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4])'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[])'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', self={})'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={})'))

[?25l[?1c:[?25h[?0c:$put ='auto_rebind'

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', auto_rebind=False)')

)
[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], au

to_rebind=False)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[], auto_rebind

=False)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', self={}, auto_rebind

=False)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={}, auto_rebind=False)'))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.Function

[?25l[?1c:[?25h[?0c:function Args(...)

[?25l[?1c:[?25h[?0c:   return a:000

[?25l[?1c:[?25h[?0c:endfunction

[?25l[?1c:[?25h[?0c:function SelfArgs(...) dict

[?25l[?1c:[?25h[?0c:   return [a:000, self]

[?25l[?1c:[?25h[?0c:endfunction

[?25l[?1c:[?25h[?0c:" The following four lines should not crash

[?25l[?1c:[?25h[?0c:let Pt = function('tr', [[]], {'l': []})

[?25l[?1c:[?25h[?0c:py3 Pt = vim.bindeval('Pt')

[?25l[?1c:[?25h[?0c:unlet Pt

[?25l[?1c:[?25h[?0c:py3 del Pt

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef ecall(out_prefix, func, *args, **kwargs):

[?25l[?1c:[?25h[?0c    line = out_prefix + ': '

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        ret = func(*args, **kwargs)

[?25l[?1c:[?25h[?0c    except Exception:

[?25l[?1c:[?25h[?0c        line += '!exception: ' + emsg(sys.exc_info())

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        line += '!result: ' + str(vim.Function('string')(ret

), 'utf-8')

[?25l[?1c:[?25h[?0c    cb.append(line)

[?25l[?1c:[?25h[?0ca = vim.Function('Args')

[?25l[?1c:[?25h[?0cpa1 = vim.Function('Args', args=['abcArgsPA1'])

[?25l[?1c:[?25h[?0cpa2 = vim.Function('Args', args=[])

[?25l[?1c:[?25h[?0cpa3 = vim.Function('Args', args=['abcArgsPA3'], self={'abcSe

lfPA3': 'abcSelfPA3Val'})

[?25l[?1c:[?25h[?0cpa4 = vim.Function('Args', self={'abcSelfPA4': 'abcSelfPA4Va

l'})

[?25l[?1c:[?25h[?0ccb.append('a: ' + repr(a))

[?25l[?1c:[?25h[?0ccb.append('pa1: ' + repr(pa1))

[?25l[?1c:[?25h[?0ccb.append('pa2: ' + repr(pa2))

[?25l[?1c:[?25h[?0ccb.append('pa3: ' + repr(pa3))

[?25l[?1c:[?25h[?0ccb.append('pa4: ' + repr(pa4))

[?25l[?1c:[?25h[?0csa = vim.Function('SelfArgs')

[?25l[?1c:[?25h[?0cpsa1 = vim.Function('SelfArgs', args=['abcArgsPSA1'])

[?25l[?1c:[?25h[?0cpsa2 = vim.Function('SelfArgs', args=[])

[?25l[?1c:[?25h[?0cpsa3 = vim.Function('SelfArgs', args=['abcArgsPSA3'], self={

'abcSelfPSA3': 'abcSelfPSA3Val'})

[?25l[?1c:[?25h[?0cpsa4 = vim.Function('SelfArgs', self={'abcSelfPSA4': 'abcSel

fPSA4Val'})

[?25l[?1c:[?25h[?0cpsa5 = vim.Function('SelfArgs', self={'abcSelfPSA5': 'abcSel

fPSA5Val'}, auto_rebind=0)

[?25l[?1c:[?25h[?0cpsa6 = vim.Function('SelfArgs', args=['abcArgsPSA6'], self={

'abcSelfPSA6': 'abcSelfPSA6Val'}, auto_rebind=())

[?25l[?1c:[?25h[?0cpsa7 = vim.Function('SelfArgs', args=['abcArgsPSA7'], auto_r

ebind=[])

[?25l[?1c:[?25h[?0cpsa8 = vim.Function('SelfArgs', auto_rebind=False)

[?25l[?1c:[?25h[?0cpsa9 = vim.Function('SelfArgs', self={'abcSelfPSA9': 'abcSel

fPSA9Val'}, auto_rebind=True)

[?25l[?1c:[?25h[?0cpsaA = vim.Function('SelfArgs', args=['abcArgsPSAA'], self={

'abcSelfPSAA': 'abcSelfPSAAVal'}, auto_rebind=1)

[?25l[?1c:[?25h[?0cpsaB = vim.Function('SelfArgs', args=['abcArgsPSAB'], auto_r

ebind={'abcARPSAB': 'abcARPSABVal'})

[?25l[?1c:[?25h[?0cpsaC = vim.Function('SelfArgs', auto_rebind=['abcARPSAC'])

[?25l[?1c:[?25h[?0ccb.append('sa: ' + repr(sa))

[?25l[?1c:[?25h[?0ccb.append('psa1: ' + repr(psa1))

[?25l[?1c:[?25h[?0ccb.append('psa2: ' + repr(psa2))

[?25l[?1c:[?25h[?0ccb.append('psa3: ' + repr(psa3))

[?25l[?1c:[?25h[?0ccb.append('psa4: ' + repr(psa4))

[?25l[?1c:[?25h[?0ccb.append('psa5: ' + repr(psa5))

[?25l[?1c:[?25h[?0ccb.append('psa6: ' + repr(psa6))

[?25l[?1c:[?25h[?0ccb.append('psa7: ' + repr(psa7))

[?25l[?1c:[?25h[?0ccb.append('psa8: ' + repr(psa8))

[?25l[?1c:[?25h[?0ccb.append('psa9: ' + repr(psa9))

[?25l[?1c:[?25h[?0ccb.append('psaA: ' + repr(psaA))

[?25l[?1c:[?25h[?0ccb.append('psaB: ' + repr(psaB))

[?25l[?1c:[?25h[?0ccb.append('psaC: ' + repr(psaC))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cpsar = vim.Function('SelfArgs', args=[{'abcArgsPSAr': 'abcAr

gsPSArVal'}], self={'abcSelfPSAr': 'abcSelfPSArVal'})

[?25l[?1c:[?25h[?0cpsar.args[0]['abcArgsPSAr2'] = [psar.self, psar.args[0]]

[?25l[?1c:[?25h[?0cpsar.self['rec'] = psar

[?25l[?1c:[?25h[?0cpsar.self['self'] = psar.self

[?25l[?1c:[?25h[?0cpsar.self['args'] = psar.args

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    cb.append('psar: ' + repr(psar))

[?25l[?1c:[?25h[?0cexcept Exception:

[?25l[?1c:[?25h[?0c    cb.append('!!!!!!!! Caught exception: ' + emsg(sys.exc_i

nfo()))

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:$put ='s(a): '.string(py3eval('a'))

[?25l[?1c:[?25h[?0c:$put ='s(pa1): '.string(py3eval('pa1'))

[?25l[?1c:[?25h[?0c:$put ='s(pa2): '.string(py3eval('pa2'))

[?25l[?1c:[?25h[?0c:$put ='s(pa3): '.string(py3eval('pa3'))

[?25l[?1c:[?25h[?0c:$put ='s(pa4): '.string(py3eval('pa4'))

[?25l[?1c:[?25h[?0c:$put ='s(sa): '.string(py3eval('sa'))

[?25l[?1c:[?25h[?0c:$put ='s(psa1): '.string(py3eval('psa1'))

[?25l[?1c:[?25h[?0c:$put ='s(psa2): '.string(py3eval('psa2'))

[?25l[?1c:[?25h[?0c:$put ='s(psa3): '.string(py3eval('psa3'))

[?25l[?1c:[?25h[?0c:$put ='s(psa4): '.string(py3eval('psa4'))

[?25l[?1c:[?25h[?0c:$put ='s(psa5): '.string(py3eval('psa5'))

[?25l[?1c:[?25h[?0c:$put ='s(psa6): '.string(py3eval('psa6'))

[?25l[?1c:[?25h[?0c:$put ='s(psa7): '.string(py3eval('psa7'))

[?25l[?1c:[?25h[?0c:$put ='s(psa8): '.string(py3eval('psa8'))

[?25l[?1c:[?25h[?0c:$put ='s(psa9): '.string(py3eval('psa9'))

[?25l[?1c:[?25h[?0c:$put ='s(psaA): '.string(py3eval('psaA'))

[?25l[?1c:[?25h[?0c:$put ='s(psaB): '.string(py3eval('psaB'))

[?25l[?1c:[?25h[?0c:$put ='s(psaC): '.string(py3eval('psaC'))

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:for v in ['sa', 'psa1', 'psa2', 'psa3', 'psa4', 'psa5', 'ps

a6', 'psa7', 'psa8', 'psa9', 'psaA', 'psaB', 'psaC']

[?25l[?1c:[?25h[?0c:   let d = {'f': py3eval(v)}

[?25l[?1c:[?25h[?0c:   $put ='d.'.v.'(): '.string(d.f())

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a()', a, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa1()', pa1, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa2()', pa2, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa3()', pa3, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa4()', pa4, )

[?25l[?1c:[?25h[?0c:py3 ecall('sa()', sa, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa1()', psa1, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa2()', psa2, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa3()', psa3, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa4()', psa4, )

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a(42, 43)', a, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa1(42, 43)', pa1, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa2(42, 43)', pa2, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa3(42, 43)', pa3, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa4(42, 43)', pa4, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('sa(42, 43)', sa, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa1(42, 43)', psa1, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa2(42, 43)', psa2, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa3(42, 43)', psa3, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa4(42, 43)', psa4, 42, 43)

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a(42, self={"20": 1})', a, 42, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa1(42, self={"20": 1})', pa1, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('pa2(42, self={"20": 1})', pa2, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('pa3(42, self={"20": 1})', pa3, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('pa4(42, self={"20": 1})', pa4, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('sa(42, self={"20": 1})', sa, 42, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa1(42, self={"20": 1})', psa1, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa2(42, self={"20": 1})', psa2, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa3(42, self={"20": 1})', psa3, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa4(42, self={"20": 1})', psa4, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a(self={"20": 1})', a, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa1(self={"20": 1})', pa1, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa2(self={"20": 1})', pa2, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa3(self={"20": 1})', pa3, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa4(self={"20": 1})', pa4, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('sa(self={"20": 1})', sa, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa1(self={"20": 1})', psa1, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa2(self={"20": 1})', psa2, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa3(self={"20": 1})', psa3, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa4(self={"20": 1})', psa4, self={'20': 1})

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef s(v):

[?25l[?1c:[?25h[?0c    if v is None:

[?25l[?1c:[?25h[?0c        return repr(v)

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        return str(vim.Function('string')(v), 'utf-8')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.args: ' + s(a.args))

[?25l[?1c:[?25h[?0ccb.append('pa1.args: ' + s(pa1.args))

[?25l[?1c:[?25h[?0ccb.append('pa2.args: ' + s(pa2.args))

[?25l[?1c:[?25h[?0ccb.append('pa3.args: ' + s(pa3.args))

[?25l[?1c:[?25h[?0ccb.append('pa4.args: ' + s(pa4.args))

[?25l[?1c:[?25h[?0ccb.append('sa.args: ' + s(sa.args))

[?25l[?1c:[?25h[?0ccb.append('psa1.args: ' + s(psa1.args))

[?25l[?1c:[?25h[?0ccb.append('psa2.args: ' + s(psa2.args))

[?25l[?1c:[?25h[?0ccb.append('psa3.args: ' + s(psa3.args))

[?25l[?1c:[?25h[?0ccb.append('psa4.args: ' + s(psa4.args))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.self: ' + s(a.self))

[?25l[?1c:[?25h[?0ccb.append('pa1.self: ' + s(pa1.self))

[?25l[?1c:[?25h[?0ccb.append('pa2.self: ' + s(pa2.self))

[?25l[?1c:[?25h[?0ccb.append('pa3.self: ' + s(pa3.self))

[?25l[?1c:[?25h[?0ccb.append('pa4.self: ' + s(pa4.self))

[?25l[?1c:[?25h[?0ccb.append('sa.self: ' + s(sa.self))

[?25l[?1c:[?25h[?0ccb.append('psa1.self: ' + s(psa1.self))

[?25l[?1c:[?25h[?0ccb.append('psa2.self: ' + s(psa2.self))

[?25l[?1c:[?25h[?0ccb.append('psa3.self: ' + s(psa3.self))

[?25l[?1c:[?25h[?0ccb.append('psa4.self: ' + s(psa4.self))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.name: ' + s(a.name))

[?25l[?1c:[?25h[?0ccb.append('pa1.name: ' + s(pa1.name))

[?25l[?1c:[?25h[?0ccb.append('pa2.name: ' + s(pa2.name))

[?25l[?1c:[?25h[?0ccb.append('pa3.name: ' + s(pa3.name))

[?25l[?1c:[?25h[?0ccb.append('pa4.name: ' + s(pa4.name))

[?25l[?1c:[?25h[?0ccb.append('sa.name: ' + s(sa.name))

[?25l[?1c:[?25h[?0ccb.append('psa1.name: ' + s(psa1.name))

[?25l[?1c:[?25h[?0ccb.append('psa2.name: ' + s(psa2.name))

[?25l[?1c:[?25h[?0ccb.append('psa3.name: ' + s(psa3.name))

[?25l[?1c:[?25h[?0ccb.append('psa4.name: ' + s(psa4.name))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.auto_rebind: ' + s(a.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa1.auto_rebind: ' + s(pa1.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa2.auto_rebind: ' + s(pa2.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa3.auto_rebind: ' + s(pa3.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa4.auto_rebind: ' + s(pa4.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('sa.auto_rebind: ' + s(sa.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa1.auto_rebind: ' + s(psa1.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa2.auto_rebind: ' + s(psa2.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa3.auto_rebind: ' + s(psa3.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa4.auto_rebind: ' + s(psa4.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa5.auto_rebind: ' + s(psa5.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa6.auto_rebind: ' + s(psa6.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa7.auto_rebind: ' + s(psa7.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa8.auto_rebind: ' + s(psa8.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa9.auto_rebind: ' + s(psa9.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psaA.auto_rebind: ' + s(psaA.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psaB.auto_rebind: ' + s(psaB.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psaC.auto_rebind: ' + s(psaC.auto_rebind))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdel s

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdel a

[?25l[?1c:[?25h[?0cdel pa1

[?25l[?1c:[?25h[?0cdel pa2

[?25l[?1c:[?25h[?0cdel pa3

[?25l[?1c:[?25h[?0cdel pa4

[?25l[?1c:[?25h[?0cdel sa

[?25l[?1c:[?25h[?0cdel psa1

[?25l[?1c:[?25h[?0cdel psa2

[?25l[?1c:[?25h[?0cdel psa3

[?25l[?1c:[?25h[?0cdel psa4

[?25l[?1c:[?25h[?0cdel psa5

[?25l[?1c:[?25h[?0cdel psa6

[?25l[?1c:[?25h[?0cdel psa7

[?25l[?1c:[?25h[?0cdel psa8

[?25l[?1c:[?25h[?0cdel psa9

[?25l[?1c:[?25h[?0cdel psaA

[?25l[?1c:[?25h[?0cdel psaB

[?25l[?1c:[?25h[?0cdel psaC

[?25l[?1c:[?25h[?0cdel psar

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdel ecall

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test stdout/stderr

[?25l[?1c:[?25h[?0c:redir => messages

[?25l[?1c:[?25h[?0c:py3 sys.stdout.write('abc8') ; sys.stdout.write('def')

[?25l[?1c:[?25h[?0c:py3 sys.stderr.write('abc9') ; sys.stderr.write('def')

[?25l[?1c:[?25h[?0c:py3 sys.stdout.writelines(iter('abcA'))

[?25l[?1c:[?25h[?0c:py3 sys.stderr.writelines(iter('abcB'))

[?25l[?1c:[?25h[?0c:redir END

[?25l[?1c:[?25h[?0c:$put =string(substitute(messages, '\d\+', '', 'g'))

[?25l[?1c:[?25h[?0c:" Test subclassing

[?25l[?1c:[?25h[?0c:fun Put(...)

[?25l[?1c:[?25h[?0c:   $put =string(a:000)

[?25l[?1c:[?25h[?0c:   return a:000

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cclass DupDict(vim.Dictionary):

[?25l[?1c:[?25h[?0c    def __setitem__(self, key, value):

[?25l[?1c:[?25h[?0c        super(DupDict, self).__setitem__(key, value)

[?25l[?1c:[?25h[?0c        super(DupDict, self).__setitem__('dup_' + key, val

ue)

[?25l[?1c:[?25h[?0cdd = DupDict()

[?25l[?1c:[?25h[?0cdd['a'] = 'b'

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass DupList(vim.List):

[?25l[?1c:[?25h[?0c    def __getitem__(self, idx):

[?25l[?1c:[?25h[?0c        return [super(DupList, self).__getitem__(idx)] * 2

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdl = DupList()

[?25l[?1c:[?25h[?0cdl2 = DupList(iter('abcC'))

[?25l[?1c:[?25h[?0cdl.extend(dl2[0])

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass DupFun(vim.Function):

[?25l[?1c:[?25h[?0c    def __call__(self, arg):

[?25l[?1c:[?25h[?0c        return super(DupFun, self).__call__(arg, arg)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdf = DupFun('Put')

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:$put =string(sort(keys(py3eval('dd'))))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dl'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dl2'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('df(2)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dl') is# py3eval('dl'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dd') is# py3eval('dd'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('df'))

[?25l[?1c:[?25h[?0c:delfunction Put

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdel DupDict

[?25l[?1c:[?25h[?0cdel DupList

[?25l[?1c:[?25h[?0cdel DupFun

[?25l[?1c:[?25h[?0cdel dd

[?25l[?1c:[?25h[?0cdel dl

[?25l[?1c:[?25h[?0cdel dl2

[?25l[?1c:[?25h[?0cdel df

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test chdir

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cimport os

[?25l[?1c:[?25h[?0cfnamemodify = vim.Function('fnamemodify')

[?25l[?1c:[?25h[?0ccb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0ccb.append(vim.eval('@%'))

[?25l[?1c:[?25h[?0cos.chdir('..')

[?25l[?1c:[?25h[?0cpath = fnamemodify('.', ':p:h:t')

[?25l[?1c:[?25h[?0cif path != b'src':

[?25l[?1c:[?25h[?0c  # Running tests from a shadow directory, so move up anot

her level

[?25l[?1c:[?25h[?0c  # This will result in @% looking like shadow/testdir/tes

t87.in, hence the

[?25l[?1c:[?25h[?0c  # slicing to remove the leading path and path separator

[?25l[?1c:[?25h[?0c  os.chdir('..')

[?25l[?1c:[?25h[?0c  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0c  cb.append(vim.eval('@%')[len(path)+1:].replace(os.path.s

ep, '/'))

[?25l[?1c:[?25h[?0c  os.chdir(path)

[?25l[?1c:[?25h[?0celse:

[?25l[?1c:[?25h[?0c  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0c  cb.append(vim.eval('@%').replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0cdel path

[?25l[?1c:[?25h[?0cos.chdir('testdir')

[?25l[?1c:[?25h[?0ccb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0ccb.append(vim.eval('@%'))

[?25l[?1c:[?25h[?0cdel fnamemodify

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test errors

[?25l[?1c:[?25h[?0c:fun F() dict

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:fun D()

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cd = vim.Dictionary()

[?25l[?1c:[?25h[?0cned = vim.Dictionary(foo='bar', baz='abcD')

[?25l[?1c:[?25h[?0cdl = vim.Dictionary(a=1)

[?25l[?1c:[?25h[?0cdl.locked = True

[?25l[?1c:[?25h[?0cl = vim.List()

[?25l[?1c:[?25h[?0cll = vim.List('abcE')

[?25l[?1c:[?25h[?0cll.locked = True

[?25l[?1c:[?25h[?0cnel = vim.List('abcO')

[?25l[?1c:[?25h[?0cf = vim.Function('string')

[?25l[?1c:[?25h[?0cfd = vim.Function('F')

[?25l[?1c:[?25h[?0cfdel = vim.Function('D')

[?25l[?1c:[?25h[?0cvim.command('delfunction D')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef subexpr_test(expr, name, subexprs):

[?25l[?1c:[?25h[?0c    cb.append('>>> Testing %s using %s' % (name, expr)

)
[?25l[?1c:[?25h[?0c    for subexpr in subexprs:

[?25l[?1c:[?25h[?0c        ee(expr % subexpr)

[?25l[?1c:[?25h[?0c    cb.append('<<< Finished')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef stringtochars_test(expr):

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'StringToChars', (

[?25l[?1c:[?25h[?0c        '1',       # Fail type checks

[?25l[?1c:[?25h[?0c        'b"\\0"',  # Fail PyString_AsStringAndSize(obj

ect, , NULL) check

[?25l[?1c:[?25h[?0c        '"\\0"',   # Fail PyString_AsStringAndSize(byt

es, , NULL) check

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass Mapping(object):

[?25l[?1c:[?25h[?0c    def __init__(self, d):

[?25l[?1c:[?25h[?0c        self.d = d

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __getitem__(self, key):

[?25l[?1c:[?25h[?0c        return self.d[key]

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def keys(self):

[?25l[?1c:[?25h[?0c        return self.d.keys()

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def items(self):

[?25l[?1c:[?25h[?0c        return self.d.items()

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef convertfrompyobject_test(expr, recurse=True):

[?25l[?1c:[?25h[?0c    # pydict_to_tv

[?25l[?1c:[?25h[?0c    stringtochars_test(expr % '{%s : 1}')

[?25l[?1c:[?25h[?0c    if recurse:

[?25l[?1c:[?25h[?0c        convertfrompyobject_test(expr % '{"abcF" : %s}

', False)

[?25l[?1c:[?25h[?0c    # pymap_to_tv

[?25l[?1c:[?25h[?0c    stringtochars_test(expr % 'Mapping({%s : 1})')

[?25l[?1c:[?25h[?0c    if recurse:

[?25l[?1c:[?25h[?0c        convertfrompyobject_test(expr % 'Mapping({"abc

G" : %s})', False)

[?25l[?1c:[?25h[?0c    # pyseq_to_tv

[?25l[?1c:[?25h[?0c    iter_test(expr)

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'ConvertFromPyObject', (

[?25l[?1c:[?25h[?0c        'None',                 # Not conversible

[?25l[?1c:[?25h[?0c        '{b"": 1}',             # Empty key not allowe

d
[?25l[?1c:[?25h[?0c        '{"": 1}',              # Same, but with unico

de object

[?25l[?1c:[?25h[?0c        'FailingMapping()',     #

[?25l[?1c:[?25h[?0c        'FailingMappingKey()',  #

[?25l[?1c:[?25h[?0c        'FailingNumber()',      #

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef convertfrompymapping_test(expr):

[?25l[?1c:[?25h[?0c    convertfrompyobject_test(expr)

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'ConvertFromPyMapping', 

(
[?25l[?1c:[?25h[?0c        '[]',

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef iter_test(expr):

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, '*Iter*', (

[?25l[?1c:[?25h[?0c        'FailingIter()',

[?25l[?1c:[?25h[?0c        'FailingIterNext()',

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef number_test(expr, natural=False, unsigned=False):

[?25l[?1c:[?25h[?0c    if natural:

[?25l[?1c:[?25h[?0c        unsigned = True

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'NumberToLong', (

[?25l[?1c:[?25h[?0c        '[]',

[?25l[?1c:[?25h[?0c        'None',

[?25l[?1c:[?25h[?0c    ) + (('-1',) if unsigned else ())

[?25l[?1c:[?25h[?0c    + (('0',) if natural else ()))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingTrue(object):

[?25l[?1c:[?25h[?0c    def __bool__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('bool')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingIter(object):

[?25l[?1c:[?25h[?0c    def __iter__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('iter')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingIterNext(object):

[?25l[?1c:[?25h[?0c    def __iter__(self):

[?25l[?1c:[?25h[?0c        return self

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __next__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('next')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingIterNextN(object):

[?25l[?1c:[?25h[?0c    def __init__(self, n):

[?25l[?1c:[?25h[?0c        self.n = n

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __iter__(self):

[?25l[?1c:[?25h[?0c        return self

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __next__(self):

[?25l[?1c:[?25h[?0c        if self.n:

[?25l[?1c:[?25h[?0c            self.n -= 1

[?25l[?1c:[?25h[?0c            return 1

[?25l[?1c:[?25h[?0c        else:

[?25l[?1c:[?25h[?0c            raise NotImplementedError('next N')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingMappingKey(object):

[?25l[?1c:[?25h[?0c    def __getitem__(self, item):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('getitem:mappingkey'

)
[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def keys(self):

[?25l[?1c:[?25h[?0c        return list("abcH")

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingMapping(object):

[?25l[?1c:[?25h[?0c    def __getitem__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('getitem:mapping')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def keys(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('keys')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingList(list):

[?25l[?1c:[?25h[?0c    def __getitem__(self, idx):

[?25l[?1c:[?25h[?0c        if i == 2:

[?25l[?1c:[?25h[?0c            raise NotImplementedError('getitem:list')

[?25l[?1c:[?25h[?0c        else:

[?25l[?1c:[?25h[?0c            return super(FailingList, self).__getitem_

_(idx)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass NoArgsCall(object):

[?25l[?1c:[?25h[?0c    def __call__(self):

[?25l[?1c:[?25h[?0c        pass

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingCall(object):

[?25l[?1c:[?25h[?0c    def __call__(self, path):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('call')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingNumber(object):

[?25l[?1c:[?25h[?0c    def __int__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('int')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append("> Output")

[?25l[?1c:[?25h[?0ccb.append(">> OutputSetattr")

[?25l[?1c:[?25h[?0cee('del sys.stdout.softspace')

[?25l[?1c:[?25h[?0cnumber_test('sys.stdout.softspace = %s', unsigned=True

)
[?25l[?1c:[?25h[?0cnumber_test('sys.stderr.softspace = %s', unsigned=True

)
[?25l[?1c:[?25h[?0cee('assert sys.stdout.isatty()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.seekable()==False')

[?25l[?1c:[?25h[?0cee('sys.stdout.close()')

[?25l[?1c:[?25h[?0cee('sys.stdout.flush()')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.isatty()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.seekable()==False')

[?25l[?1c:[?25h[?0cee('sys.stderr.close()')

[?25l[?1c:[?25h[?0cee('sys.stderr.flush()')

[?25l[?1c:[?25h[?0cee('sys.stdout.attr = None')

[?25l[?1c:[?25h[?0ccb.append(">> OutputWrite")

[?25l[?1c:[?25h[?0cee('assert sys.stdout.writable()==True')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.readable()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.writable()==True')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.readable()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.closed()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.closed()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.errors=="strict"')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.errors=="strict"')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.encoding==sys.stderr.encoding')

[?25l[?1c:[?25h[?0cee('sys.stdout.write(None)')

[?25l[?1c:[?25h[?0ccb.append(">> OutputWriteLines")

[?25l[?1c:[?25h[?0cee('sys.stdout.writelines(None)')

[?25l[?1c:[?25h[?0cee('sys.stdout.writelines([1])')

[?25l[?1c:[?25h[?0citer_test('sys.stdout.writelines(%s)')

[?25l[?1c:[?25h[?0ccb.append("> VimCommand")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.command(%s)')

[?25l[?1c:[?25h[?0cee('vim.command("", 2)')

[?25l[?1c:[?25h[?0c#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l[?1c:[?25h[?0ccb.append("> VimToPython")

[?25l[?1c:[?25h[?0c#! Not checked: everything: needs errors in internal p

ython functions

[?25l[?1c:[?25h[?0ccb.append("> VimEval")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.eval(%s)')

[?25l[?1c:[?25h[?0cee('vim.eval("", FailingTrue())')

[?25l[?1c:[?25h[?0c#! Not checked: everything: needs errors in internal p

ython functions

[?25l[?1c:[?25h[?0ccb.append("> VimEvalPy")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.bindeval(%s)')

[?25l[?1c:[?25h[?0cee('vim.eval("", 2)')

[?25l[?1c:[?25h[?0c#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l[?1c:[?25h[?0ccb.append("> VimStrwidth")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.strwidth(%s)')

[?25l[?1c:[?25h[?0ccb.append("> VimForeachRTP")

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(None)')

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(NoArgsCall())')

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(FailingCall())')

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(int, 2)')

[?25l[?1c:[?25h[?0ccb.append('> import')

[?25l[?1c:[?25h[?0cold_rtp = vim.options['rtp']

[?25l[?1c:[?25h[?0cvim.options['rtp'] = os.getcwd().replace('\\', '\\\\')

.replace(',', '\\,')

[?25l[?1c:[?25h[?0cee('import xxx_no_such_module_xxx')

[?25l[?1c:[?25h[?0cee('import failing_import')

[?25l[?1c:[?25h[?0cee('import failing')

[?25l[?1c:[?25h[?0cvim.options['rtp'] = old_rtp

[?25l[?1c:[?25h[?0cdel old_rtp

[?25l[?1c:[?25h[?0ccb.append("> Options")

[?25l[?1c:[?25h[?0ccb.append(">> OptionsItem")

[?25l[?1c:[?25h[?0cee('vim.options["abcQ"]')

[?25l[?1c:[?25h[?0cee('vim.options[""]')

[?25l[?1c:[?25h[?0cstringtochars_test('vim.options[%s]')

[?25l[?1c:[?25h[?0ccb.append(">> OptionsContains")

[?25l[?1c:[?25h[?0cstringtochars_test('%s in vim.options')

[?25l[?1c:[?25h[?0ccb.append("> Dictionary")

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryConstructor")

[?25l[?1c:[?25h[?0cee('vim.Dictionary("abcI")')

[?25l[?1c:[?25h[?0c##! Not checked: py_dict_alloc failure

[?25l[?1c:[?25h[?0ccb.append(">> DictionarySetattr")

[?25l[?1c:[?25h[?0cee('del d.locked')

[?25l[?1c:[?25h[?0cee('d.locked = FailingTrue()')

[?25l[?1c:[?25h[?0cee('vim.vvars.locked = False')

[?25l[?1c:[?25h[?0cee('d.scope = True')

[?25l[?1c:[?25h[?0cee('d.xxx = True')

[?25l[?1c:[?25h[?0ccb.append(">> _DictionaryItem")

[?25l[?1c:[?25h[?0cee('d.get("a", 2, 3)')

[?25l[?1c:[?25h[?0cstringtochars_test('d.get(%s)')

[?25l[?1c:[?25h[?0cee('d.pop("a")')

[?25l[?1c:[?25h[?0cee('dl.pop("a")')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryContains")

[?25l[?1c:[?25h[?0cee('"" in d')

[?25l[?1c:[?25h[?0cee('0 in d')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryIterNext")

[?25l[?1c:[?25h[?0cee('for i in ned: ned["a"] = 1')

[?25l[?1c:[?25h[?0cdel i

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryAssItem")

[?25l[?1c:[?25h[?0cee('dl["b"] = 1')

[?25l[?1c:[?25h[?0cstringtochars_test('d[%s] = 1')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('d["a"] = %s')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryUpdate")

[?25l[?1c:[?25h[?0ccb.append(">>> kwargs")

[?25l[?1c:[?25h[?0ccb.append(">>> iter")

[?25l[?1c:[?25h[?0cee('d.update(FailingMapping())')

[?25l[?1c:[?25h[?0cee('d.update([FailingIterNext()])')

[?25l[?1c:[?25h[?0cee('d.update([FailingIterNextN(1)])')

[?25l[?1c:[?25h[?0citer_test('d.update(%s)')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('d.update(%s)')

[?25l[?1c:[?25h[?0cstringtochars_test('d.update(((%s, 0),))')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('d.update((("a", %s),))')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryPopItem")

[?25l[?1c:[?25h[?0cee('d.popitem(1, 2)')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryHasKey")

[?25l[?1c:[?25h[?0cee('d.has_key()')

[?25l[?1c:[?25h[?0ccb.append("> List")

[?25l[?1c:[?25h[?0ccb.append(">> ListConstructor")

[?25l[?1c:[?25h[?0cee('vim.List(1, 2)')

[?25l[?1c:[?25h[?0cee('vim.List(a=1)')

[?25l[?1c:[?25h[?0citer_test('vim.List(%s)')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('vim.List([%s])')

[?25l[?1c:[?25h[?0ccb.append(">> ListItem")

[?25l[?1c:[?25h[?0cee('l[1000]')

[?25l[?1c:[?25h[?0ccb.append(">> ListAssItem")

[?25l[?1c:[?25h[?0cee('ll[1] = 2')

[?25l[?1c:[?25h[?0cee('l[1000] = 3')

[?25l[?1c:[?25h[?0ccb.append(">> ListAssSlice")

[?25l[?1c:[?25h[?0cee('ll[1:100] = "abcJ"')

[?25l[?1c:[?25h[?0citer_test('l[:] = %s')

[?25l[?1c:[?25h[?0cee('nel[1:10:2]  = "abcK"')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cee('nel[1:10:2]  = "a"')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cee('nel[1:1:-1]  = "a"')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cee('nel[:] = FailingIterNextN(2)')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('l[:] = [%s]')

[?25l[?1c:[?25h[?0ccb.append(">> ListConcatInPlace")

[?25l[?1c:[?25h[?0citer_test('l.extend(%s)')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('l.extend([%s])')

[?25l[?1c:[?25h[?0ccb.append(">> ListSetattr")

[?25l[?1c:[?25h[?0cee('del l.locked')

[?25l[?1c:[?25h[?0cee('l.locked = FailingTrue()')

[?25l[?1c:[?25h[?0cee('l.xxx = True')

[?25l[?1c:[?25h[?0ccb.append("> Function")

[?25l[?1c:[?25h[?0ccb.append(">> FunctionConstructor")

[?25l[?1c:[?25h[?0ccb.append(">>> FunctionConstructor")

[?25l[?1c:[?25h[?0cee('vim.Function("123")')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx")')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx#non#existent#function#xxx")')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx2", arg

s=[])')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx3", sel

f={})')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx4", arg

s=[], self={})')

[?25l[?1c:[?25h[?0ccb.append(">>> FunctionNew")

[?25l[?1c:[?25h[?0cee('vim.Function("tr", self="abcFuncSelf")')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", args=427423)')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", self="abcFuncSelf2", args="abcF

uncArgs2")')

[?25l[?1c:[?25h[?0cee('vim.Function(self="abcFuncSelf2", args="abcFuncArg

s2")')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", "", self="abcFuncSelf2", args="

abcFuncArgs2")')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", "")')

[?25l[?1c:[?25h[?0ccb.append(">> FunctionCall")

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('f(%s)')

[?25l[?1c:[?25h[?0cconvertfrompymapping_test('fd(self=%s)')

[?25l[?1c:[?25h[?0ccb.append("> TabPage")

[?25l[?1c:[?25h[?0ccb.append(">> TabPageAttr")

[?25l[?1c:[?25h[?0cee('vim.current.tabpage.xxx')

[?25l[?1c:[?25h[?0ccb.append("> TabList")

[?25l[?1c:[?25h[?0ccb.append(">> TabListItem")

[?25l[?1c:[?25h[?0cee('vim.tabpages[1000]')

[?25l[?1c:[?25h[?0ccb.append("> Window")

[?25l[?1c:[?25h[?0ccb.append(">> WindowAttr")

[?25l[?1c:[?25h[?0cee('vim.current.window.xxx')

[?25l[?1c:[?25h[?0ccb.append(">> WindowSetattr")

[?25l[?1c:[?25h[?0cee('vim.current.window.buffer = 0')

[?25l[?1c:[?25h[?0cee('vim.current.window.cursor = (100000000, 100000000)

')
[?25l[?1c:[?25h[?0cee('vim.current.window.cursor = True')

[?25l[?1c:[?25h[?0cnumber_test('vim.current.window.height = %s', unsigned

=True)

[?25l[?1c:[?25h[?0cnumber_test('vim.current.window.width = %s', unsigned=

True)

[?25l[?1c:[?25h[?0cee('vim.current.window.xxxxxx = True')

[?25l[?1c:[?25h[?0ccb.append("> WinList")

[?25l[?1c:[?25h[?0ccb.append(">> WinListItem")

[?25l[?1c:[?25h[?0cee('vim.windows[1000]')

[?25l[?1c:[?25h[?0ccb.append("> Buffer")

[?25l[?1c:[?25h[?0ccb.append(">> StringToLine (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[0] = "\\na"')

[?25l[?1c:[?25h[?0cee('vim.current.buffer[0] = b"\\na"')

[?25l[?1c:[?25h[?0ccb.append(">> SetBufferLine (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[0] = True')

[?25l[?1c:[?25h[?0ccb.append(">> SetBufferLineList (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[:] = True')

[?25l[?1c:[?25h[?0cee('vim.current.buffer[:] = ["\\na", "bc"]')

[?25l[?1c:[?25h[?0ccb.append(">> InsertBufferLines (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.append(None)')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.append(["\\na", "bc"])')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.append("\\nbc")')

[?25l[?1c:[?25h[?0ccb.append(">> RBItem")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[100000000]')

[?25l[?1c:[?25h[?0ccb.append(">> RBAsItem")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[100000000] = ""')

[?25l[?1c:[?25h[?0ccb.append(">> BufferAttr")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.xxx')

[?25l[?1c:[?25h[?0ccb.append(">> BufferSetattr")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.name = True')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.xxx = True')

[?25l[?1c:[?25h[?0ccb.append(">> BufferMark")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.mark(0)')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.mark("abcM")')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.mark("!")')

[?25l[?1c:[?25h[?0ccb.append(">> BufferRange")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.range(1, 2, 3)')

[?25l[?1c:[?25h[?0ccb.append("> BufMap")

[?25l[?1c:[?25h[?0ccb.append(">> BufMapItem")

[?25l[?1c:[?25h[?0cee('vim.buffers[100000000]')

[?25l[?1c:[?25h[?0cnumber_test('vim.buffers[%s]', natural=True)

[?25l[?1c:[?25h[?0ccb.append("> Current")

[?25l[?1c:[?25h[?0ccb.append(">> CurrentGetattr")

[?25l[?1c:[?25h[?0cee('vim.current.xxx')

[?25l[?1c:[?25h[?0ccb.append(">> CurrentSetattr")

[?25l[?1c:[?25h[?0cee('vim.current.line = True')

[?25l[?1c:[?25h[?0cee('vim.current.buffer = True')

[?25l[?1c:[?25h[?0cee('vim.current.window = True')

[?25l[?1c:[?25h[?0cee('vim.current.tabpage = True')

[?25l[?1c:[?25h[?0cee('vim.current.xxx = True')

[?25l[?1c:[?25h[?0cdel d

[?25l[?1c:[?25h[?0cdel ned

[?25l[?1c:[?25h[?0cdel dl

[?25l[?1c:[?25h[?0cdel l

[?25l[?1c:[?25h[?0cdel ll

[?25l[?1c:[?25h[?0cdel nel

[?25l[?1c:[?25h[?0cdel f

[?25l[?1c:[?25h[?0cdel fd

[?25l[?1c:[?25h[?0cdel fdel

[?25l[?1c:[?25h[?0cdel subexpr_test

[?25l[?1c:[?25h[?0cdel stringtochars_test

[?25l[?1c:[?25h[?0cdel Mapping

[?25l[?1c:[?25h[?0cdel convertfrompyobject_test

[?25l[?1c:[?25h[?0cdel convertfrompymapping_test

[?25l[?1c:[?25h[?0cdel iter_test

[?25l[?1c:[?25h[?0cdel number_test

[?25l[?1c:[?25h[?0cdel FailingTrue

[?25l[?1c:[?25h[?0cdel FailingIter

[?25l[?1c:[?25h[?0cdel FailingIterNext

[?25l[?1c:[?25h[?0cdel FailingIterNextN

[?25l[?1c:[?25h[?0cdel FailingMapping

[?25l[?1c:[?25h[?0cdel FailingMappingKey

[?25l[?1c:[?25h[?0cdel FailingList

[?25l[?1c:[?25h[?0cdel NoArgsCall

[?25l[?1c:[?25h[?0cdel FailingCall

[?25l[?1c:[?25h[?0cdel FailingNumber

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:delfunction F

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test import

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0csys.path.insert(0, os.path.join(os.getcwd(), 'python_b

efore'))

[?25l[?1c:[?25h[?0csys.path.append(os.path.join(os.getcwd(), 'python_afte

r'))

[?25l[?1c:[?25h[?0cvim.options['rtp'] = os.getcwd().replace(',', '\\,').r

eplace('\\', '\\\\')

[?25l[?1c:[?25h[?0cl = []

[?25l[?1c:[?25h[?0cdef callback(path):

[?25l[?1c:[?25h[?0c    l.append(os.path.relpath(path))

[?25l[?1c:[?25h[?0cvim.foreach_rtp(callback)

[?25l[?1c:[?25h[?0ccb.append(repr(l))

[?25l[?1c:[?25h[?0cdel l

[?25l[?1c:[?25h[?0cdef callback(path):

[?25l[?1c:[?25h[?0c    return os.path.relpath(path)

[?25l[?1c:[?25h[?0ccb.append(repr(vim.foreach_rtp(callback)))

[?25l[?1c:[?25h[?0cdel callback

[?25l[?1c:[?25h[?0cfrom module import dir as d

[?25l[?1c:[?25h[?0cfrom modulex import ddir

[?25l[?1c:[?25h[?0ccb.append(d + ',' + ddir)

[?25l[?1c:[?25h[?0cimport before

[?25l[?1c:[?25h[?0ccb.append(before.dir)

[?25l[?1c:[?25h[?0cimport after

[?25l[?1c:[?25h[?0ccb.append(after.dir)

[?25l[?1c:[?25h[?0cimport topmodule as tm

[?25l[?1c:[?25h[?0cimport topmodule.submodule as tms

[?25l[?1c:[?25h[?0cimport topmodule.submodule.subsubmodule.subsubsubmodul

e as tmsss

[?25l[?1c:[?25h[?0ccb.append(tm.__file__.replace(os.path.sep, '/')[-len('

modulex/topmodule/__init__.py'):])

[?25l[?1c:[?25h[?0ccb.append(tms.__file__.replace(os.path.sep, '/')[-len(

'modulex/topmodule/submodule/__init__.py'):])

[?25l[?1c:[?25h[?0ccb.append(tmsss.__file__.replace(os.path.sep, '/')[-le

n('modulex/topmodule/submodule/subsubmodule/subsubsubmodule.py'):])

[?25l[?1c:[?25h[?0cdel before

[?25l[?1c:[?25h[?0cdel after

[?25l[?1c:[?25h[?0cdel d

[?25l[?1c:[?25h[?0cdel ddir

[?25l[?1c:[?25h[?0cdel tm

[?25l[?1c:[?25h[?0cdel tms

[?25l[?1c:[?25h[?0cdel tmsss

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test exceptions

[?25l[?1c:[?25h[?0c:fun Exe(e)

[?25l[?1c:[?25h[?0c:   execute a:e

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cExe = vim.bindeval('function("Exe")')

[?25l[?1c:[?25h[?0cee('vim.command("throw \'abcN\'")')

[?25l[?1c:[?25h[?0cee('Exe("throw \'def\'")')

[?25l[?1c:[?25h[?0cee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')

[?25l[?1c:[?25h[?0cee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')

[?25l[?1c:[?25h[?0cee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')"

)')

[?25l[?1c:[?25h[?0cee('vim.eval("xxx_unknown_function_xxx()")')

[?25l[?1c:[?25h[?0cee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx

\')")')

[?25l[?1c:[?25h[?0cdel Exe

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:delfunction Exe

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Regression: interrupting vim.command propagates t

o next vim.command

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef test_keyboard_interrupt():

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        vim.command('while 1 | endwhile')

[?25l[?1c:[?25h[?0c    except KeyboardInterrupt:

[?25l[?1c:[?25h[?0c        cb.append('Caught KeyboardInterrupt')

[?25l[?1c:[?25h[?0c    except Exception:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! No exception')

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        vim.command('$ put =\'Running :put\'')

[?25l[?1c:[?25h[?0c    except KeyboardInterrupt:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! Caught KeyboardInterrupt

')
[?25l[?1c:[?25h[?0c    except Exception:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        cb.append('No exception')

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:debuggreedy

[?25l[?1c:[?25h[?0c:call inputsave()

[?25l[?1c:[?25h[?0c:call feedkeys("s\ns\ns\ns\nq\n")

[?25l[?1c:[?25h[?0c:redir => output

[?25l[?1c:[?25h[?0c:debug silent! py3 test_keyboard_interrupt()

[?25l[?1c:[?25h[?0c:redir END

[?25l[?1c:[?25h[?0c:0 debuggreedy

[?25l[?1c:[?25h[?0c:call inputrestore()

[?25l[?1c:[?25h[?0c:silent $put =output

[?25l[?1c:[?25h[?0c:unlet output

[?25l[?1c:[?25h[?0c:py3 del test_keyboard_interrupt

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Cleanup

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdel cb

[?25l[?1c:[?25h[?0cdel ee

[?25l[?1c:[?25h[?0cdel emsg

[?25l[?1c:[?25h[?0cdel sys

[?25l[?1c:[?25h[?0cdel os

[?25l[?1c:[?25h[?0cdel vim

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:endfun
[?25l[?1c:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:/^start:/,$w! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun RunTest()
[?25l[?1c
:  [?25h[?0c:let checkrefs = !empty($PYTHONDUMPREFS)

[?25l[?1c:  [?25h[?0c:let start = getline(1, '$')

[?25l[?1c:  [?25h[?0c:for i in range(checkrefs ? 10 : 1)

[?25l[?1c:    [?25h[?0c:   if i != 0

[?25l[?1c:      [?25h[?0c:       %d _

[?25l[?1c:      [?25h[?0c:       call setline(1, start)

[?25l[?1c:      [?25h[?0c:   endif

[?25l[?1c:    [?25h[?0c:   call Test()

[?25l[?1c:    [?25h[?0c:   if i == 0

[?25l[?1c:      [?25h[?0c:       let result = getline(1, '$')

[?25l[?1c:      [?25h[?0c:   endif

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c:if checkrefs

[?25l[?1c:    [?25h[?0c:   %d _

[?25l[?1c:    [?25h[?0c:   call setline(1, result)

[?25l[?1c:    [?25h[?0c:endif

[?25l[?1c:  [?25h[?0c:endfun
[?25l[?1c:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall RunTest()
[?25l[?1c8 more lin
3 more lines[?25h[?0c

[?25l[?1c"a" [New File]

"b" [New File]

"c" [New File]

"0" [New File]

"1" [New File]

"a.1" [New File]

"2" [New File]

"a.2" [New File]

"b.2" [New File]

"c.2" [New File]

Already only one window

abc8def

Error detected while processing function RunTest[8]..Test:

line 1106:

abc9def

abcA

line 1108:

abcB

8 more lines

Entering Debug mode.  Type "cont" to continue.

function RunTest[8]..Test

line 1650: py3 test_keyboard_interrupt()

>s

function RunTest[8]..Test

line 1650: while 1 | endwhile

>s

function RunTest[8]..Test

line 1650: endwhile

>s

function RunTest[8]..Test

line 1650: while 1 | endwhile

>s

function RunTest[8]..Test

line 1650: endwhile

>q
['.']
'.'
3,xx
before
after
pythonx/topmodule/__init__.py
pythonx/topmodule/submodule/__init__.py
pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py
vim.command("throw 'abcN'"):(<class 'vim.error'>, error('abcN',))
Exe("throw 'def'"):(<class 'vim.error'>, error('def',))
vim.eval("Exe('throw ''ghi''')"):(<class 'vim.error'>, error('ghi',))
vim.eval("Exe('echoerr ''jkl''')"):(<class 'vim.error'>, error('Vim(echoerr):jkl',))
vim.eval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',))
vim.eval("xxx_unknown_function_xxx()"):(<class 'vim.error'>, error('Vim:E117: Unknown function: xxx_unknown_function_xxx',))
vim.bindeval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',))
Caught KeyboardInterrupt
Running :put
No exception

"test87.in" [Modified][Not edited] line 3151 of 3151 --100%-- col 1[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction RunTest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction Test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1445 lines, 77744 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test87 = test61; then \
#	  if diff test.out test87.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test87.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test87.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test12.in
[?25h[?8c[?25h[?0c[?25l[?1c"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/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'directory' option.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 965 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset dir=.,~
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/start of testfile/,/end of testfile/w! Xtest1
[?25l[?1c"Xtest1" [New] 4L, 70C written[?25h[?0c[?25l[?1c:[?25h[?0c" do an ls of the current dir to find the swap file (should not be there)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:  !ls .X*.swp >test.out

[?25l[?1c:!ls .X*.swp >test.out[?25h[?0c
ls: cannot access '.X*.swp': No such file or directory

shell returned 2

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:  r !ls X*.swp >test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:!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[?25h[?0c[?25l[?1c:[?25h[?0c!echo first line >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1c"Xtest1" 4L, 70Cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest1" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:" Do an ls of the current dir to find the swap file, remove the leading dot

[?25l[?1c:  [?25h[?0c:" to make the result the same for all systems.

[?25l[?1c:  [?25h[?0c:  r!ls .X*.swp

[?25l[?1c:  [?25h[?0c:  s/\.*X/X/

[?25l[?1c:  [?25h[?0c:  .w >>test.out
[?25l[?1c"test.out" 1L, 11C appended

:  [?25h[?0c:  undo

[?25l[?1c1 line less; before #1  0 seconds ago

:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:  !ls X*.swp >>test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c!echo under Xtest1.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir Xtest2
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0cset dir=./Xtest2,.,~
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1c"Xtest1" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0c!ls X*.swp >>test.out
[?25l[?1c[?25h[?0c
ls: cannot access 'X*.swp': No such file or directory

shell returned 2


Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under under >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ls Xtest2 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest1.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir Xtest.je
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c/start of testfile/,/end of testfile/w! Xtest2/Xtest3
[?25l[?1csearch hit BOTTOM, continuing at TOP"Xtest2/Xtest3" [New] 4L, 70C written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset dir=Xtest.je,~
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce Xtest2/Xtest3
[?25l[?1c"Xtest2/Xtest3" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0cswap
[?25l[?1cXtest.je/Xtest3.swp[?25h[?0c[?25l[?1c:[?25h[?0c!ls Xtest2 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest3 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ls Xtest.je >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest3.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test12 = test61; then \
#	  if diff test.out test12.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test12.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test12.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test25.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 540 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Create a link from test25.dir to the current directory.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!rm -f test25.dir
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ln -s . test25.dir
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c" Create tags.text, with the current directory name inserted.
[?25l[?1cTest 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
[?25h[?0c[?25l[?1c
/[?25h[?0ctags line
[?25l[?1chis 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:
[?25h[?0c[?25l[?1c:[?25h[?0cr !pwd
[?25l[?1c[?25h[?0c[?25l[?1cSTARTTEST
: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:
/<<PKGBUILDDIR>>/src/vim-nox/testdir
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0ctest
[?25l[?1c
SECTION_OFF     /test25.dir/test25.in   /^#define  SECTION_OFF  3$/[?25h[?0c[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir/test25.dir/te@                                                                               
SECTION_OFF     /<<PKGBUILDDIR>>/src/vim-nox/testdir/test25.dir/test25.in /^#define  SECTION_OFF  3$/[?25h[?0c[?25l[?1c

:[?25h[?0c.w! tags.test
[?25l[?1c"tags.test" [New File] 1 line, 112 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Try jumping to a tag in the current file, but with a path that contains a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" symbolic link.  When wrong, this will give the ATTENTION message.  The next
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tags=tags.test
[?25l[?1c[?25h[?0c[?25l[?1c/*tx.c*/
#define  SECTION_OFF  3
#define  NUM_SECTIONS 3

SECTION_OFF[?25h[?0c#[?25l[?1cefine  SECTION_OFF  3[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 23 characters written[?25h[?0c[?25l[?1c:[?25h[?0c!rm -f test25.dir tags.test
[?25l[?1c[?25h[?0c
[No write since last change]


Press ENTER or type command to continue[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test25 = test61; then \
#	  if diff test.out test25.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test25.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test25.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test49.in
[?25h[?8c[?25h[?0c[?25l[?1c"test49.in" 32 lines, 705 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
:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cThis is a test of the script language.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 23 lines, 475 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:endfor
:for v in keys(g:)
:  silent! exe "unlet " . v
:endfor
:unlet v
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cse nocp nomore viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang mess C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso test49.vim
[?25l[?1cError detected while processing function F:

line    5:

E583: multiple :else:     else^I^I

Error detected while processing function G:

line    5:

E584: :elseif after :else:     elseif 1^I^I" aborts function

Error detected while processing function H:

line    7:

E583: multiple :else:     else^I^I

Error detected while processing function I:

line    7:

E584: :elseif after :else:     elseif 1^I^I" aborts function

*** Test  16: OK (8722)

Error detected while processing function F:

line   18:

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

line   34:

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

line   47:

E580: :endif without :if: ^Iendif^I

E580: :endif without :if: ^Iendif^I

E580: :endif without :if: ^Iendif^I

Error detected while processing /<<PKGBUILDDIR>>/src/vim-nox/test

dir/test49.vim:

line  784:

E171: Missing :endif: endwhile 

*** Test  17: OK (285127993)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"/tmp/vaVUDbd/0" [New] 53L, 1582C written14L, 358C appended26L, 824C appended34L, 986C appended

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/1[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/1" 16L, 304C appended17L, 326C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/2[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/2"' -c 'breakad

dfile 8 /tmp/vaVUDbd/1' -S /tmp/vaVUDbd/1[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/2" 3L, 6C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/3[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/3" 6L, 127C appended7L, 149C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/4[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/4"' -c 'breakad

dfile 4 /tmp/vaVUDbd/3' -S /tmp/vaVUDbd/3[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/4" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/5[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/5" 21L, 486C appended22L, 508C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/6[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/6"' -c 'breakad

dfunc 7 F' -S /tmp/vaVUDbd/5[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/6" 3L, 18C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/7[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/7" 13L, 364C appended14L, 386C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/8[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/8"' -c 'breakad

dfunc 3 G' -S /tmp/vaVUDbd/7[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/8" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  18: OK (67224583)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/9[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/9" 12L, 201C appended13L, 223C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/10[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/10"' -S /tmp/vaVUD

bd/9[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/10" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/11[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/11" 12L, 205C appended13L, 227C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/12[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/12"' -S /tmp/vaVUD

bd/11[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/12" 2L, 7C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/13[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/13" 6L, 122C appended7L, 144C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/14[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/14"' -S /tmp/vaVUD

bd/13[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/14" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/15[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/15" 8L, 176C appended9L, 198C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/16[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/16"' -S /tmp/vaVUD

bd/15[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/16" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/17[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/17" 10L, 215C appended11L, 237C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/18[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/18"' -S /tmp/vaVUD

bd/17[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/18" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/19[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/19" 7L, 149C appended8L, 171C8L, 170C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/20[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/20"' -S /tmp/vaVUD

bd/19[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/20" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  19: OK (69275973)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/21[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/21" 9L, 135C appended10L, 157C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/22[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/22"' -S /tmp/vaVUD

bd/21[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/22" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/23[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/23" 10L, 155C appended11L, 177C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/24[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/24"' -S /tmp/vaVUD

bd/23[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/24" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/25[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/25" 12L, 204C appended13L, 226C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/26[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/26"' -S /tmp/vaVUD

bd/25[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/26" 4L, 18C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/27[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/27" 12L, 214C appended13L, 236C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/28[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/28"' -S /tmp/vaVUD

bd/27[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/28" 4L, 22C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/29[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/29" 12L, 211C appended13L, 233C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/30[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/30"' -S /tmp/vaVUD

bd/29[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/30" 3L, 22C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/31[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/31" 14L, 263C appended15L, 285C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/32[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/32"' -S /tmp/vaVUD

bd/31[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/32" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/33[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/33" 14L, 277C appended15L, 299C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/34[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/34"' -S /tmp/vaVUD

bd/33[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/34" 4L, 40C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  20: OK (1874575085)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/35[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/35" 58L, 1022C appended59L, 1044C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/36[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/36"' -S /tmp/vaVUD

bd/35[?25h[?0c
[?25l[?1c"/tmp/vaVUDbd/36" 9L, 56C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  21: OK (147932225)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/37[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/37" 23L, 418C appended24L, 440C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/38[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/38"' -S /tmp/vaVUD

bd/37[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/38" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/39[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/39" 23L, 437C appended24L, 459C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/40[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/40"' -c 'breaka

dd func 2 Interrupt' -S /tmp/vaVUDbd/39[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/40" 1L, 3C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/41[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/41" 21L, 386C appended22L, 408C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/42[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/42"' -S /tmp/vaVUD

bd/41[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/42" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  22: OK (4161)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/43[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/43" 25L, 432C appended26L, 454C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/44[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/44"' -S /tmp/vaVUD

bd/43[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/44" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  23: OK (49)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/45[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/45" 16L, 392C appended17L, 414C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/46[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/46"' -S /tmp/vaVUD

bd/45[?25h[?0c
[?25l[?1c"/tmp/vaVUDbd/46" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  24: OK (41)

*** Test  25: OK (260177811)

*** Test  26: OK (1681500476)

*** Test  27: OK (1996459)

   function F()

1      try

2Xpath 1" X: 1

3try

4Xpath 2" X: 2

5return

6Xpath 4" X: 0

7finally

8Xpath 8" X: 8

9endtry

10Xpath 16" X: 0

11     finally

12Xpath 32" X: 32

13     endtry

14     Xpath 64" X: 0

   endfunction"/tmp/vaVUDbd/47"[noeol] 17L, 552C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vaVUDbd/47" 14L, 502C written
"test49.in" 32L, 705C
   function G()
1      try
2Xpath 128" X: 128
3return
4Xpath 256" X: 0
5      finally
6Xpath 512" X: 512
7call F()
8Xpath 1024" X: 1024
9      endtry
10     Xpath 2048" X: 0
   endfunction"/tmp/vaVUDbd/48"[noeol] 13L, 406C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vaVUDbd/48" 10L, 378C written
"test49.in" 32L, 705C
   function H()
1      try
2Xpath 4096" X: 4096
3call G()
4Xpath 8192" X: 8192
5      finally
6Xpath 16384" X: 16384
7return
8Xpath 32768" X: 0
9      endtry

10     Xpath 65536" X: 0

   endfunction"/tmp/vaVUDbd/49"[noeol] 13L, 409C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vaVUDbd/49" 10L, 381C written
"test49.in" 32L, 705C
*** Test  28: OK (1996459)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/50[?25h[?0c[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/50" 39L, 721C appended40L, 743C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/51[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/51"' -S /tmp/vaVUD

bd/50[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/51" 6L, 21C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/52[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/52" 23L, 509C appended24L, 531C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/53[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/53"' -S /tmp/vaVUD

bd/52[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/53" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  29: OK (170428555)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/54[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/54" 60L, 1101C appended61L, 1123C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/55[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nv

iminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/55"' -

c'breakadd func 3 F' -c 'breakadd file 19 /tmp/vaVUDbd/54' -c 'breakadd file 31

/tmp/vaVUDbd/54' -S /tmp/vaVUDbd/54[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/55" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  30: OK (190905173)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/56[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/56" 60L, 1122C appended61L, 1144C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/57[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/57"' -S /tmp/vaVUD

bd/56[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/57" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  31: OK (190905173)

*** Test  32: OK (354833067)

*** Test  33: OK (1216907538)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/58[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/58" 63L, 1288C appended64L, 1310C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/59[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUD

bd/59"' -c 'breakadd func 16 C' -S /tmp/vaVUDbd/58[?25h[?0c
[?25l[?1c"/tmp/vaVUDbd/59" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  34: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/60[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/60" 63L, 1285C appended64L, 1307C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/61[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUD

bd/61"' -c 'breakadd func 16 B' -S /tmp/vaVUDbd/60[?25h[?0c
[?25l[?1c"/tmp/vaVUDbd/61" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  35: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/62[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/62" 66L, 1430C appended67L, 1452C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/63[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vimin

fo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/

63"' -c 'breakadd func 16 R' -S /tmp/vaVUDbd/62[?25h[?0c
[?25l[?1c"/tmp/vaVUDbd/63" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  36: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/64[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/64" 73L, 1488C appended74L, 1510C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/65[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/65"' -c 'breakadd

func 16 F' -S /tmp/vaVUDbd/64[?25h[?0c
[?25l[?1c"/tmp/vaVUDbd/65" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  37: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/66[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/66" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/67[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUD

bd/67"' -c 'breakadd func 16 E' -S /tmp/vaVUDbd/66[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/67" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  38: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/68[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/68" 83L, 1538C appended84L, 1560C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/69[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -

c'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVi

mResult = "/tmp/vaVUDbd/69"' -c 'breakadd func 16 I' -c 'breakadd func 22 I' -S

/tmp/vaVUDbd/68[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/69" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  39: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/70[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/70" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/71[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUD

bd/71"' -c 'breakadd func 16 T' -S /tmp/vaVUDbd/70[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/71" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  40: OK (357908480)

*** Test  41: OK (3076095)

*** Test  42: OK (1505155949)

*** Test  43: OK (1157763329)

*** Test  44: OK (1031761407)

*** Test  45: OK (1157763329)

*** Test  46: OK (739407)

*** Test  47: OK (371213935)

*** Test  48: OK (756255461)

*** Test  49: OK (179000669)

   function C()

1      try

2Xpath 1" X: 1

3throw "arrgh"

4Xpath 2" X: 0

5      catch /arrgh/

6Xpath 4" X: 4

7      endtry

8      Xpath 8" X: 8

   endfunction"/tmp/vaVUDbd/72"[noeol] 11L, 334C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vaVUDbd/72" 8L, 295C written
"test49.in" 32L, 705C
   function T1()
1      XloopNEXT
2      try
3Xloop 1" X: 16 + 16*16
4throw "arrgh"
5Xloop 2" X: 0
6      finally

7Xloop 4" X: 64 + 64*16

8      endtry

9      Xloop 8" X: 0

   endfunction"/tmp/vaVUDbd/73"[noeol] 12L, 364C
9 substitutions on 9 lines
Pattern not found: ^\s*$
"/tmp/vaVUDbd/73" 9L, 323C written
"test49.in" 32L, 705C
   function T2()
1      try
2Xpath 4096" X: 4096
3call T1()
4Xpath 8192" X: 0
5      finally
6Xpath 16384" X: 16384
7      endtry

8      Xpath 32768" X: 0

   endfunction"/tmp/vaVUDbd/74"[noeol] 11L, 332C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vaVUDbd/74" 8L, 305C written
"test49.in" 32L, 705C
*** Test  50: OK (363550045)
*** Test  51: OK (40744667)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/76[?25h[?0c[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/76" 2L, 41C appended3L, 63C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/77[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/77"' -S /tmp/vaVUDbd/76[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/77" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/75" 8L, 182C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/78[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/78" 7L, 115C appended8L, 137C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/79[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/79"' -S /tmp/vaVUDbd/78[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/79" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/75" 8L, 181C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/80[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/80" 12L, 180C appended13L, 202C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/81[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/81"' -S /tmp/vaVUDbd/80[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/81" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/75" 10L, 209C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/82[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/82" 8L, 139C appended9L, 161C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/83[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/83"' -S /tmp/vaVUDbd/82[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/83" 2L, 11C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/75" 10L, 217C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/84[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/84" 5L, 87C appended6L, 109C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/85[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir!

>/tmp/vaVUDbd/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin =

1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/85"' -c 'breakadd file 4 /tmp/vaVUDbd

/84' -S /tmp/vaVUDbd/84[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/85" 1L, 7C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/75" [noeol] 9L, 202C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/86[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/86" 7L, 189C appended8L, 211C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/87[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/87"' -S /tmp/vaVUDbd/86[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/87" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/75" 9L, 252C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/88[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/88" 7L, 199C appended8L, 221C8L, 220C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/89[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/89"' -S /tmp/vaVUDbd/88[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/89" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/75" 9L, 214C
"test49.in" 32L, 705C

*** Test  52: OK (1247112011)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/91[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/91" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/92[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/92"' -S /tmp/vaVUDbd/91[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/92" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/93[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/93" 3L, 39C appended4L, 61C

3 substitutions on 3 lines
"/tmp/vaVUDbd/93" 4L, 58C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/94[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/94"' -S /tmp/vaVUDbd/93[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/94" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/95[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/95" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vaVUDbd/95" 5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/96[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/96"' -S /tmp/vaVUDbd/95[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/96" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/97[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/97" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vaVUDbd/97" 4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/98[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/98"' -S /tmp/vaVUDbd/97[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/98" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/99[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/99" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vaVUDbd/99" 6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/100[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/100"' -S /tmp/vaVUDbd/99[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/100" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/101[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/101" 1L, 9C appended2L, 31C2L, 30C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/102[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/102"' -S /tmp/vaVUDbd/101[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/102" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 153C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/103[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/103" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vaVUDbd/103"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/104[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/104"' -S /tmp/vaVUDbd/103[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/104" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/105[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/105" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vaVUDbd/105"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/106[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/106"' -S /tmp/vaVUDbd/105[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/106" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/107[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/107" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vaVUDbd/107"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/108[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/108"' -S /tmp/vaVUDbd/107[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/108" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/109[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/109" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vaVUDbd/109"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/110[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/110"' -S /tmp/vaVUDbd/109[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/110" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/111[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/111" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/112[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/112"' -S /tmp/vaVUDbd/111[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/112" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/113[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/113" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vaVUDbd/113"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/114[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/114"' -S /tmp/vaVUDbd/113[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/114" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/115[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/115" 4L, 46C appended5L, 68C

4 substitutions on 4 lines
"/tmp/vaVUDbd/115"5L, 64C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/116[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/116"' -S /tmp/vaVUDbd/115[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/116" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/117[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/117" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vaVUDbd/117"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/118[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/118"' -S /tmp/vaVUDbd/117[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/118" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/119[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/119" 5L, 66C appended6L, 88C

5 substitutions on 5 lines
"/tmp/vaVUDbd/119"6L, 83C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/120[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/120"' -S /tmp/vaVUDbd/119[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/120" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/121[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/121" 4L, 37C appended5L, 59C

4 substitutions on 4 lines
"/tmp/vaVUDbd/121"5L, 55C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/122[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/122"' -S /tmp/vaVUDbd/121[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/122" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 150C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/123[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/123" 4L, 41C appended5L, 63C

4 substitutions on 4 lines
"/tmp/vaVUDbd/123"5L, 59C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/124[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vaVUDbd/124"' -S /tmp/vaVUDbd/123[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/124" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/90" 6L, 159C
"test49.in" 32L, 705C

*** Test  53: OK (131071)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/126[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/126" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/127[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/127"' -S /tmp/vaVUDbd/126[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/127" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/125" 6L, 164C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/128[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/128" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vaVUDbd/128"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/129[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/129"' -S /tmp/vaVUDbd/128[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/129" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/130[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/130" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vaVUDbd/130"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/131[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/131"' -S /tmp/vaVUDbd/130[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/131" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/132[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/132" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vaVUDbd/132"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/133[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/133"' -S /tmp/vaVUDbd/132[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/133" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/134[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/134" 4L, 53C appended5L, 75C

4 substitutions on 4 lines
"/tmp/vaVUDbd/134"5L, 71C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/135[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/135"' -S /tmp/vaVUDbd/134[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/135" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/136[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/136" 5L, 62C appended6L, 84C

5 substitutions on 5 lines
"/tmp/vaVUDbd/136"6L, 79C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/137[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/137"' -S /tmp/vaVUDbd/136[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/137" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/138[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/138" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vaVUDbd/138"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/139[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/139"' -S /tmp/vaVUDbd/138[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/139" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/140[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/140" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vaVUDbd/140"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/141[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/141"' -S /tmp/vaVUDbd/140[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/141" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/142[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/142" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vaVUDbd/142"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/143[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/143"' -S /tmp/vaVUDbd/142[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/143" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/125" 6L, 167C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/144[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/144" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vaVUDbd/144"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/145[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/145"' -S /tmp/vaVUDbd/144[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/145" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/146[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/146" 7L, 95C appended8L, 117C

7 substitutions on 7 lines
"/tmp/vaVUDbd/146"8L, 110C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/147[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/147"' -S /tmp/vaVUDbd/146[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/147" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/125" 6L, 167C
"test49.in" 32L, 705C

*** Test  54: OK (2047)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/149[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/149" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/150[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/150"' -S /tmp/vaVUDbd/149[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/150" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/148" 6L, 172C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/151[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/151" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vaVUDbd/151"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/152[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/152"' -S /tmp/vaVUDbd/151[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/152" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/153[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/153" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vaVUDbd/153"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/154[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/154"' -S /tmp/vaVUDbd/153[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/154" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/155[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/155" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vaVUDbd/155"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/156[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/156"' -S /tmp/vaVUDbd/155[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/156" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/157[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/157" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vaVUDbd/157"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/158[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/158"' -S /tmp/vaVUDbd/157[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/158" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/159[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/159" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/160[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/160"' -S /tmp/vaVUDbd/159[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/160" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/148" 6L, 166C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/161[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/161" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vaVUDbd/161"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/162[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/162"' -S /tmp/vaVUDbd/161[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/162" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/163[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/163" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vaVUDbd/163"5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/164[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/164"' -S /tmp/vaVUDbd/163[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/164" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/165[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/165" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vaVUDbd/165"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/166[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/166"' -S /tmp/vaVUDbd/165[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/166" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/167[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/167" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vaVUDbd/167"6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/168[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/168"' -S /tmp/vaVUDbd/167[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/168" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/148" 6L, 170C
"test49.in" 32L, 705C

*** Test  55: OK (1023)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/170[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/170" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/171[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/171"' -S /tmp/vaVUDbd/170[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/171" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/169" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/172[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/172" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vaVUDbd/172"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/173[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/173"' -S /tmp/vaVUDbd/172[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/173" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/174[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/174" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vaVUDbd/174"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/175[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/175"' -S /tmp/vaVUDbd/174[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/175" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/176[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/176" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vaVUDbd/176"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/177[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/177"' -S /tmp/vaVUDbd/176[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/177" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/178[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/178" 3L, 35C appended4L, 57C

3 substitutions on 3 lines
"/tmp/vaVUDbd/178"4L, 54C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/179[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/179"' -S /tmp/vaVUDbd/178[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/179" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/180[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/180" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vaVUDbd/180"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/181[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/181"' -S /tmp/vaVUDbd/180[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/181" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/182[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/182" 4L, 47C appended5L, 69C

4 substitutions on 4 lines
"/tmp/vaVUDbd/182"5L, 65C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/183[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/183"' -S /tmp/vaVUDbd/182[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/183" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/184[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/184" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vaVUDbd/184"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/185[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/185"' -S /tmp/vaVUDbd/184[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/185" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/186[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/186" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vaVUDbd/186"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/187[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vaVUDbd/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vaVUDbd/187"' -S /tmp/vaVUDbd/186[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/187" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vaVUDbd/169" 6L, 155C
"test49.in" 32L, 705C

*** Test  56: OK (511)

   function FuncException()

1      let g:exception = v:exception

   endfunction"/tmp/vaVUDbd/188" [noeol] 4L, 80C
Pattern not found: ^\s*$
"/tmp/vaVUDbd/188"1L, 36C written
"test49.in" 32L, 705C
   function FuncThrowpoint()

1      let g:throwpoint = v:throwpoint

   endfunction"/tmp/vaVUDbd/189" [noeol] 4L, 83C
Pattern not found: ^\s*$
"/tmp/vaVUDbd/189"1L, 38C written
"test49.in" 32L, 705C
   function T(arg, line)

1      if a:line == 2

2throw a:arg" in line 2

3      elseif a:line == 4

4throw a:arg" in line 4

5      elseif a:line == 6

6throw a:arg" in line 6

7      elseif a:line == 8

8throw a:arg" in line 8

9      endif

   endfunction"/tmp/vaVUDbd/190"[noeol] 12L, 341C
9 substitutions on 9 lines
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vaVUDbd/190"9L, 292C written
"test49.in" 32L, 705C
   function G(arg, line)
1      call T(a:arg, a:line)
   endfunction"/tmp/vaVUDbd/191"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vaVUDbd/191"1L, 30C written
"test49.in" 32L, 705C
   function F(arg, line)
1      call G(a:arg, a:line)
   endfunction"/tmp/vaVUDbd/192"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vaVUDbd/192"1L, 30C written
"test49.in" 32L, 705C
*** Test  57: OK (2147450880)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/193[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/193" 87L, 1700C appended88L, 1722C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/194[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/194"' -c 'break

add func 4 T' -S /tmp/vaVUDbd/193[?25h[?0c
[?25l[?1c"/tmp/vaVUDbd/194" 8L, 36C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  58: OK (624945)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/195[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/195" 293L, 5789C appended294L, 5811C

3 substitutions on 3 lines
"/tmp/vaVUDbd/195"294L, 5808C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/196[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/196"' -c 'br

eakadd file 115 /tmp/vaVUDbd/195' -c 'breakadd file 225 /tmp/vaVUDbd/195' -S /tm

p/vaVUDbd/195[?25h[?0c
[?25l[?1c"/tmp/vaVUDbd/196" 28L, 162C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  59: OK (2038431743)
"/n/o/n/w/r/i/t/a/b/l/e/_/f/i/l/e"
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/197[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/197" 33L, 765C appended34L, 787C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/198[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/198"' -c 'break

add file 7 /tmp/vaVUDbd/197' -S /tmp/vaVUDbd/197[?25h[?0c
[?25l[?1c"/tmp/vaVUDbd/198" 3L, 27C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  60: OK (311511339)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/199[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/199" 115L, 2272C appended116L, 2294C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/200[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vimin

fo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/

200"' -c 'breakadd file 8 /tmp/vaVUDbd/199' -c 'breakadd file 36 /tmp/vaVUDbd/19

9' -c 'breakadd file 40 /tmp/vaVUDbd/199' -c 'breakadd file 69 /tmp/vaVUDbd/199'

-c 'breakadd file 95 /tmp/vaVUDbd/199' -c 'breakadd file 97 /tmp/vaVUDbd/199' -

S/tmp/vaVUDbd/199[?25h[?0c
[?25l[?1c"/tmp/vaVUDbd/200" 14L, 81C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  61: OK (374889517)

   function F()

1      while 1

2      " Missing :endwhile

   endfunction"/tmp/vaVUDbd/201"[noeol] 5L, 73C
Pattern not found: ^\s*$
"/tmp/vaVUDbd/201"2L, 40C written
"test49.in" 32L, 705C
*** Test  62: OK (286331153)
"/i/m/p/o/s/s/i/b/l/e" line 5500:

"/i/m/p/o/s/s/i/b/l/e" E212: Can't open file for writing

*** Test  63: OK (236978127)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/202[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/202" 149L, 2828C appended150L, 2850C

6 substitutions on 6 lines
"/tmp/vaVUDbd/202"150L, 2844C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/203[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/203"' -c 'break

add file 63 /tmp/vaVUDbd/202' -S /tmp/vaVUDbd/202[?25h[?0c
[?25l[?1c"/tmp/vaVUDbd/203" 16L, 97C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  64: OK (1499645335)

*** Test  65: OK (70187)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/204[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/204" 78L, 1520C appended79L, 1542C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/205[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/205"' -c 'break

add func 8 F' -S /tmp/vaVUDbd/204[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/205" 6L, 22C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  66: OK (5464)

*** Test  67: OK (212514423)

*** Test  68: OK (212514423)

*** Test  69: OK (8995471)

*** Test  70: OK (69544277)

*** Test  71: OK (34886997)

*** Test  72: OK (1789569365)

   function F0()

   endfunction

   function F1()

   endfunction

*** Test  73: OK (9032615)
"/tmp/vaVUDbd/206" [New File]
"test49.in" 32L, 705C
"/tmp/vaVUDbd/207" [New File]
"test49.in" 32L, 705C

*** Test  74: OK (224907669)

*** Test  75: OK (2000403408)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/208[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/208" 253L, 6369C appended254L, 6391C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/209[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|

set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp

/vaVUDbd/209"' -c 'breakadd func 2 INT' -S /tmp/vaVUDbd/208[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/209" 28L, 167C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  76: OK (1610087935)

Error detected while processing function ERR:

line    2:

E492: Not an editor command:     asdf

E492: Not an editor command:     asdf

E492: Not an editor command:     asdf

*** Test  77: OK (1388671)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/210[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/210" 161L, 4543C appended162L, 4565C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/211[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/211"' -S /tmp/vaVU

Dbd/210[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/211" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  78: OK (134217728)

Error detected while processing function NEXT:

line    1:

E121: Undefined variable: novar

E15: Invalid expression: novar | Xloop 1

E121: Undefined variable: novar

E488: Trailing characters

E108: No such variable: "novar"

E488: Trailing characters

E121: Undefined variable: novar

E15: Invalid expression: novar

E475: Invalid argument: {novar} | Xloop 1

E121: Undefined variable: novar

E15: Invalid expression:  novar

E475: Invalid argument: { novar} | Xloop 1

*** Test  79: OK (70288929)

Error detected while processing /<<PKGBUILDDIR>>/src/vim-nox/test

dir/test49.vim:

line 7985:

E584: :elseif after :else: elseif 1 ||| 2

line 7995:

E584: :elseif after :else: elseif 1 ||| 2

line 8003:

E582: :elseif without :if: elseif 1 ||| 2

line 8011:

E582: :elseif without :if:     elseif 1 ||| 2

*** Test  80: OK (17895765)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/212[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/212" 15L, 272C appended16L, 294C16L, 293C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/213[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/213"' -S /tmp/vaVU

Dbd/212[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/213" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/214[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/214" 12L, 227C appended13L, 249C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/215[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/215"' -c 'break

add file 8 /tmp/vaVUDbd/214' -S /tmp/vaVUDbd/214[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/215" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  81: OK (387)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/216[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/216" 20L, 417C appended21L, 439C21L, 438C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/217[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/217"' -S /tmp/vaVU

Dbd/216[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/217" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/218[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/218" 24L, 480C appended25L, 502C25L, 501C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/219[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/219"' -S /tmp/vaVU

Dbd/218[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/219" 1L, 4C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/220[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/220" 17L, 390C appended18L, 412C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/221[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/221"' -c 'break

add file 7 /tmp/vaVUDbd/220' -S /tmp/vaVUDbd/220[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/221" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/222[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/222" 21L, 444C appended22L, 466C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/223[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/223"' -c 'break

add func 6 I' -S /tmp/vaVUDbd/222[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/223" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  82: OK (8454401)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/224[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/224" 17L, 307C appended18L, 329C18L, 328C written
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/225[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/225"' -S /tmp/vaVU

Dbd/224[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/225" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/226[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/226" 14L, 266C appended15L, 288C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/227[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/227"' -c 'break

add file 8 /tmp/vaVUDbd/226' -S /tmp/vaVUDbd/226[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vaVUDbd/227" 3L, 13C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  83: OK (2835)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/228[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/228" 154L, 3580C appended155L, 3602C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/229[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/229"' -c 'br

eakadd func 1 INT' -S /tmp/vaVUDbd/228[?25h[?0c
[?25l[?1c"/tmp/vaVUDbd/229" 18L, 118C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  84: OK (934782101)

TMP
"/tmp/vaVUDbd/230" [noeol] 2L, 6C/  
"test49.in" 32L, 705C
"/n/o/n/e/x/i/s/t/e/n/t"

"/tmp/vaVUDbd/232" 1L, 1C
"test49.in" 32L, 705C

:!echo XYZ >/tmp/vaVUDbd/233[?25h[?0c
[?25l[?1c"/tmp/vaVUDbd/234" [New File]
"test49.in" 32L, 705C

*** Test  85: OK (198689)

line 8769:

E123: Undefined function: F

Make_all.mak
"Make_all.mak" line 1 of 207 --0%-- col 1

line 8772:

E926: Current location list was changed

line 8773:

E193: :endfunction not inside a function

Error detected while processing function ExecAsScript[2]..MakeScript:

line    3:

E123: Undefined function: F
"/tmp/vaVUDbd/235" [noeol] 4L, 109C

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/vaVUDbd/235"3L, 109C written
"Make_all.mak" 207L, 3846C

Error detected while processing /tmp/vaVUDbd/235:

line    1:

E492: Not an editor command: Error detected while processing function ExecAsScr

ipt[2]..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 /<<PKGBUILDDIR>>/src/vim-nox/test

dir/test49.vim:

line 8779:

E130: Unknown function: F

*** Test  86: OK (0)

5
*** Test  87: OK (0)
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vaVUDbd/0' >/tmp/vaVUDbd/236[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vaVUDbd/236" 151L, 3929C appended152L, 3951C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vaVUDbd/237[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nvimi

nfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vaVUDbd/237"' -c

'breakadd func 5 ThrowOnInterrupt' -S /tmp/vaVUDbd/236[?25h[?0c
[?25l[?1c"/tmp/vaVUDbd/237" 16L, 281C
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/test49.vim"
<-XZm5mB/vim-8.0.0197/src/vim-nox/testdir/test49.vim" [readonly] 9009L, 206880C
"Make_all.mak" 207L, 3846C

*** Test  88: OK (50443995)

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c" Go back to this file and append the results from register r.
[?25l[?1c#
# Common Makefile, defines the list of tests to run.
#

NO_PLUGIN = -U NONE --noplugin --not-a-term

# The first script creates small.vim.
SCRIPTS_FIRST = \test1.out

# Tests that run on all systems.
SCRIPTS_ALL = \test3.out \test4.out \test5.out \test7.out \test8.out \test9.out \test14.out \test15.out \test19.out \test20.out \test22.out \[?25h[?0c[?25l[?1c:[?25h[?0cbuf test49.in
[?25l[?1c"test49.in" 32L, 705C:so test49.vim
:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:":" make valgrind happy
:redir => funclis: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!ENDTESTResults of test49.vim:[?25h[?0c
[?25l[?1c
83 more lines
*** Test  16: OK (8722)83 more lines[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 84L, 2484C written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make valgrind happy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => funclist
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csilent func
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor line in split(funclist, "\n")
[?25l[?1c
:  [?25h[?0c:  let name = matchstr(line, 'function \zs[A-Z]\w*\ze(')

[?25l[?1c:  [?25h[?0c:  if name != ''

[?25l[?1c:    [?25h[?0c:    exe "delfunc " . name

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:"
:" make valgrind happy[?25h[?0c[?25l[?1c
:[?25h[?0cfor v in keys(g:)
[?25l[?1c
:  [?25h[?0c:  silent! exe "unlet " . v

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:" Go back to this file and append the results from register r.
:buf test49.in[?25h[?0c[?25l[?1c
:[?25h[?0cunlet v
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test49 = test61; then \
#	  if diff test.out test49.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test49.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test49.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test97.failed test.ok test.out X* viminfo
cp test97.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test97.in
[?25h[?8c[?25h[?0c[?25l[?1c"test97.in" 23 lines, 484 charactersTest whether glob()/globpath() return correct results with certain escaped
characters.

STARTTEST
:so small.vim
:" make sure glob() doesn't use the shell
:set shell=doesnotexist
:" consistent sorting of file names
:set nofileignorecase
:e! test.out
:$put =glob('Xxx\{')
:$put =glob('Xxx\$')
:w! Xxx{
:w! Xxx\$
:$put =glob('Xxx\{')
:$put =glob('Xxx\$')
:"
:$put =string(globpath('sautest/autoload', '*.vim'))
:$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest whether glob()/globpath() return correct results with certain escaped[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 377 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure glob() doesn't use the shell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset shell=doesnotexist
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" consistent sorting of file names
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nofileignorecase
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\{')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xxx{
[?25l[?1c
Cannot execute shell doesnotexist


E79: Cannot expand wildcards

"Xxx{" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! Xxx\$
[?25l[?1c"Xxx$" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\{')
[?25l[?1cXxx{
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\$')
[?25l[?1cXxx$[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(globpath('sautest/autoload', '*.vim'))
[?25l[?1c'sautest/autoload/Test104.vimsautest/autoload/footest.vim'[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
[?25l[?1c['sautest/autoload/Test104.vim', 'sautest/autoload/footest.vim'][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 8 lines, 138 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test97 = test61; then \
#	  if diff test.out test97.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test97.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test97.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listlbr_utf8.failed test.ok test.out X* viminfo
cp test_listlbr_utf8.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr_utf8.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listlbr_utf8.in" 134 lines, 4027 charactersTest for linebreak and list option in utf-8 mode

STARTTEST
:so small.vim
:if !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!
test.out | qa! | endif
:so mbyte.vim
:set encoding=utf8
:if &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
:10new|:vsp|:vert resize 20
:put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width, lines)
:let c=''
:for j in range(1,a:lines)
:for i in range(1,a:width)
:let c.=nr2char(screenchar(j, i))
:endfor
:let c.="\n"
:endfor
:return c
:endfu[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for linebreak and list option in utf-8 mode[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 129 lines, 3948 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set list nolinebreak cc=3
:sign define foo text=^Vuff0b
:sign place 1 name=foo line=50 buffer=2
:norm! 2kztj
:let line1=line('.')
0GGlGGlGGlGGl
:let line2=line('.')
:let attr2=attr
:let attr=[]
0GGlGGlGGlGGl
:redraw!
:let line=ScreenChar(winwidth(0),3)
:call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!

test.out | qa! | endif
[?25l[?1c:set list nolinebreak cc=3[?25h[?0c[?25l[?1c
:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf8
[?25l[?1c:set list nolinebreak cc=3
:sign define foo text=^Vuff0b
:sign place 1 name=foo line=50 buffer=2
:norm! 2kztj
:let line1=line('.')
0GGlGGlGGlGGl
:let line2=line('.')
:let attr2=attr
:let attr=[]
0GGlGGlGGlGGl
:redraw!
:let line=ScreenChar(winwidth(0),3)
:call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
[?25h[?0c[?25l[?1c
:[?25h[?0cif &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c10new|:vsp|:vert resize 20
[?25l[?1c                    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name]            ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name]                                                  call DoRecordScreen()" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")else   call append('$', "Screen attributes are the same!")
:endif%w! test.out
:qaENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0cput =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [+][?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25l[?1cabcdef          
+hijklmn            
+pqrstuvwxyz 1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [?25h[?0c[?25l[?1c:[?25h[?0cfu! ScreenChar(width, lines)
[?25l[?1c
:  [?25h[?0c:^Ilet c=''

[?25l[?1c:  [?25h[?0c:^Ifor j in range(1,a:lines)

[?25l[?1c:    [?25h[?0c:^I    for i in range(1,a:width)

[?25l[?1c:      [?25h[?0c:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l[?1c:      [?25h[?0c:^I    endfor

[?25l[?1c:    [?25h[?0c:           let c.="\n"

[?25l[?1c:    [?25h[?0c:^Iendfor

[?25l[?1c:  [?25h[?0c:^Ireturn c

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0cfu! DoRecordScreen()
[?25l[?1c
:  [?25h[?0c:^Iwincmd l

[?25l[?1c:  [?25h[?0c:^I$put =printf(\"\n%s\", g:test)

[?25l[?1c:  [?25h[?0c:^I$put =g:line

[?25l[?1c:  [?25h[?0c:^Iwincmd p

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 1: set linebreak + set list + fancy listchars"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eo

l:\ub6"
[?25l[?1c▕———abcdef|▕———␣ˑ¶[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c▕———abcdef|
+hijklmn▕———|
+pqrstuvwxyz␣1060ABC|
+DEFGHIJKLMNOPˑ¶|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines¶                   
Test 1: set         
+linebreak + set    
+list + fancy       
+listchars¶         
▕———abcdefˑˑˑˑˑˑˑˑˑˑ
@                   Test 1: set linebreak + set list + fancy listchars▕———abcdef          +hijklmn▕———        +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶    [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 2: set nolinebreak list"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list nolinebreak
[?25l[?1chijklmn▕—pqrstuvwxyz␣1060ABCDEFGHIJKLMNOPˑ¶    
¶               
Test 1: set linebrea
+k + set list + fancy listchars¶   
▕———abcdefˑˑˑˑˑˑˑˑˑˑ¶         
+hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c▕———abcdef hijklmn▕—|
+pqrstuvwxyz␣1060ABC|
+DEFGHIJKLMNOPˑ¶|
¶|
Test 1: set linebrea|
+k + set list + fanc|
+y listchars¶|
▕———abcdefˑˑˑˑˑˑˑˑˑˑ|
+¶|
+hijklmn▕———ˑˑˑˑˑˑˑˑ|
@                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOPTest 1: set linebreak + set list + fancy listchars▕———abcdef+hijklmn▕———+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶~                                                          ~                                                          [No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            +hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines▕———abcdef                                                 +hijklmn▕———                                               +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 3: set linebreak nolist"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\t*mask = nil;\"
[?25l[?1c▕———▕—¶                  
+pqrstuvwxyz␣1060ABC
+¶+DEFGHIJKLMNOPˑ¶ˑˑˑˑ¶                 
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ
+¶                  
▕———*mask = nil;¶~[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c▕———*mask = nil;¶   
~                   
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak
[?25l[?1c     
    [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c*mask = nil;    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ▕———abcdef+hijklmn▕———+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 3: set         
+linebreak nolist   
    *mask = nil;    
~                   
~                   
~                   +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ¶                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       *mask = nil;Test 3: set linebreak nolist*mask = nil;~~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 4: set linebreak list listchars and concealing"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet c_defines=['#define ABCDE^I^I1','#define ABCDEF^I^I1','#define ABCDEFG^I^I

1','#define ABCDEFGH^I1', '#define MSG_MODE_FILE^I^I^I1','#define MSG_MODE_CONSO

LE^I^I2','#define MSG_MODE_FILE_AND_CONSOLE^I3','#define MSG_MODE_FILE_THEN_CONS

OLE^I4']
[?25l[?1c*mask = nil;    ||
Test 3: set|+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', c_defines)
[?25l[?1c#define             
+ABCDE      1       [?25h[?0c[?25l[?1c:[?25h[?0cvert resize 40
[?25l[?1c                    |                    |linebreak nolist|
    *mask = nil;                        |
~                    |                    |                    |
#define ABCDE1 |ABCDEF      1 |
#define ABCDEFG     1 |                    +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶*mask = nil;Test 3: set linebreak nolist*mask = nil;~~~[No Name] [+][?25h[?0c[?25l[?1c:[?25h[?0c$-7
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c#define ABCDE       1                   
#define ABCDEF      1                   
#define ABCDEFG     1                   
                                        
                                        
                                        
                                        
                                        
                                        
                                        #define ABCDEFGH    1
#define MSG_MODE_FILE1
#define MSG_MODE_CONSOLE2
#define MSG_MODE_FILE_AND_CONSOLE   3
#define MSG_MODE_FILE_THEN_CONSOLE  4
~                                       
~                                       [?25h[?0c[?25l[?1c:[?25h[?0cset list linebreak listchars=tab:>- cole=1
[?25l[?1c>-->--->->--->>--->--->-->--->--->--->--->-->-[?25h[?0c[?25l[?1c:[?25h[?0csyn match Conceal conceal cchar=>'AB\|MSG_MODE'
[?25l[?1cAB>CDEF>->CDEFG>->CDEFGH>->_FILE>------->_CONSOLE>------->_FILE_AND_CONSOLE>------->_FILE_THEN_CONSOLE>-------AB[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c#define ABCDE>-->---1|
#define >CDEF>-->---1|
#define >CDEFG>->---1|
#define >CDEFGH>----1|
#define >_FILE>--------->--->---1|
#define >_CONSOLE>---------->---2|
#define >_FILE_AND_CONSOLE>---------3   |
#define >_FILE_THEN_CONSOLE>--------4   |||~                                       
~                                       
[No Name] [+]                            +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶*mask = nil;Test 3: set linebreak nolist*mask = nil;~~~[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),7)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c>CDE>-7 more lines                                        
Test 4: set linebreak list listchars    
@                                       #define >CDEFG>->---1+ #define >CDEFGH>----1+#define >_FILE>--------->--->---1+ #define >_CONSOLE>---------->---2+#define >_FILE_AND_CONSOLE>---------3+ABCDE>
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 5: set linebreak list listchars and concealing part2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet c_defines=['bbeeeeee^I^I;^Isome text']
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', c_defines)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c@                                       
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        Test 4: set linebreak list listchars    
+and concealing
#define >CDE>-->---1
#define >CDEF>-->---1
#define >CDEFG>->---1
#define >CDEFGH>----1
#define >_FILE>--------->--->---1
#define >_CONSOLE>---------->---2
#define >_FILE_AND_CONSOLE>---------3
bbeeeeee>--->---;>--some text[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1cbbeeeeee>--->---;>--some text           
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       [?25h[?0c[?25l[?1c:[?25h[?0cset nowrap ts=2 list linebreak listchars=tab:>- cole=2 concealcursor=n
[?25l[?1c>;>some text      [?25h[?0c[?25l[?1c:[?25h[?0csyn clear
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match meaning    /;\s*\zs.*/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match hasword    /^\x\{8}/    contains=word
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match word       /\<\x\{8}\>/ contains=beginword,endword contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match beginword  /\<\x\x/     contained conceal
[?25l[?1ceeeeee>--[?25h[?0c[?25l[?1c:[?25h[?0csyn match endword    /\x\{6}\>/   contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi meaning   guibg=blue
[?25l[?1csome text[?25h[?0c[?25l[?1c:[?25h[?0chi beginword guibg=green
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi endword   guibg=red
[?25l[?1ceeeeee[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1ceeeeee>--->-;>some text||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
[No Name] [+]                            #define >CDEFG>->---1+#define >CDEFGH>----1+#define >_FILE>--------->--->---1+#define >_CONSOLE>---------->---2+#define >_FILE_AND_CONSOLE>---------3+[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c                                        
Test 5: set linebreak list listchars and
eeeeee>--->-;>some text                 #define >_CONSOLE>---------->---2      +                                      #define >_FILE_AND_CONSOLE>---------3  +                                                                                                                                                                                                                                                                                bbeeeeee    ; some textTest 5: set linebreak list listchars an+d concealing part2eeeeee>--->-;>some text                + [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 6: Screenattributes for comment"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 6: Screenattributes for comment    [?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', ' /*^I^I and some more */')
[?25l[?1c /*>>- and some more */                 [?25h[?0c[?25l[?1c:[?25h[?0cexe "set ft=c ts=7 linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail

:\u02d1,eol:\ub6"
[?25l[?1ceeeeee▕———————▕——————;▕—————some text¶|
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ¶▕———▕—————— and some more */¶#define >_CONSOLE>---------->---2         ;      some text[?25h[?0c[?25l[?1c:[?25h[?0csyntax on
[?25l[?1cbbeeeeee▕some text5>some text6for
 /* and some more */#define >_CONSOLE>---------->---2       #define >_FILE_AND_CONSOLE>---------3   bbeeeeeesome text5>some text                 [?25h[?0c[?25l[?1c:[?25h[?0chi SpecialKey term=underline ctermfg=red guifg=red
[?25l[?1c▕—————▕——————▕—————ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ▕———▕——————[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnnoremap <expr> GG ":let attr += ['".screenattr(screenrow(),screencol())."']\n

"[?25l[?1cbbeeeeee▕—————▕——————;▕—————some text¶|#define >_CONSOLE>---------->---2      [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt0
[?25l[?1c /*▕———▕—————— and some more */¶        
~                                       
~                                       
~                                       
~                                       
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       [?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['99']
[?25h[?0c[?25l[?1c:let attr += ['99']
[?25h[?0c[?25l[?1c:let attr += ['82']
[?25h[?0c[?25l[?1c:let attr += ['82']
[?25h[?0c[?25l[?1c:let attr += ['99']
[?25h[?0c[?25l[?1c:let attr += ['99']
[?25h[?0c[?25l[?1c:let attr += ['99']
[?25h[?0c[?25l[?1c:let attr += ['99']
[?25h[?0c[?25l[?1c:let attr += ['99']
[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', ['ScreenAttributes for test6:'])
[?25l[?1cScreenAttributes for test6:¶            [?25h[?0c[?25l[?1c:[?25h[?0cif attr[0] != attr[1] && attr[1] != attr[3] && attr[3] != attr[5]
[?25l[?1c
:  [?25h[?0c:   call append('$', "Attribut 0 and 1 and 3 and 5 are different!")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:   call append('$', "Not all attributes are different")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c/*▕———▕—————— and some more */¶|
ScreenAttributes for test6:¶|
Attribut 0 and 1 and 3 and 5 are differe||
~                                       #define >_CONSOLE>---------->---2      + #define >_FILE_AND_CONSOLE>---------3  + [?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 8: set linebreak with visual block mode and v_b_A and select

ion=exclusive and multibyte char"
[?25l[?1c/*▕———▕—————— and some more */¶|#define >_CONSOLE>---------->---2      [?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 8: set linebreak with visual block [?25h[?0c[?25l[?1clong line:ˑ¶                            [?25h[?0c[?25l[?1c¶                               
¶                           
¶                                       
¶                                      
oobar foobar foobar foobar foobarˑ¶[?25h[?0c[?25l[?1c
foobar foobar TARGET¶              [?25h[?0c[?25l[?1cÃ' at end¶[?25h[?0c[?25l[?1c:[?25h[?0cexe "norm! $3B\<C-v>eAx\<Esc>"
[?25l[?1cx' at end¶[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 9: a multibyte sign and colorcolumn"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr2=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c /*▕———▕—————— and some more */¶ScreenAttributes for test6:¶Attribut 0 and 1 and 3 and 5 are differe
Test 8: set linebreak with visual block
long line: foobar foobar foobar foobar f
¶                                       [?25h[?0c[?25l[?1c:[?25h[?0c$put ='a b c'
[?25l[?1ca b c¶                                  [?25h[?0c[?25l[?1c:[?25h[?0c$put ='a b c'
[?25l[?1ca b c¶                                  [?25h[?0c[?25l[?1c:[?25h[?0cset list nolinebreak cc=3
[?25l[?1c*
Scr
Att
Tesn 
a b
a b[?25h[?0c[?25l[?1c:[?25h[?0csign define foo text=^+
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csign place 1 name=foo line=50 buffer=2
[?25l[?1c   /*▕—▕—— and some more */¶  ScreenAttributes for test6:¶  Attribut 0 and 1 and 3 and 5 are diff
  Test 8: set linebreak with visual bloc
  long line: foobar foobar foobar foobar
  ¶ 
+a b c¶  a b c¶  
  ~~  #define >_CONSOLE>-->---2  +     #define >_FILE_AND_CONSOLE>--3  +     bbeeeeee  ;      some text    Test 5: set linebreak list listchars   +and concealing part2  eeeeee>--->-;>some text  +[?25h[?0c[?25l[?1c:[?25h[?0cnorm! 2kztj
[?25l[?1c  ¶                                     
+a b c¶                                
  a b c¶                                
  ~                                     
  ~                                     
                                        
                                        
                                        
                                        
                                          
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     [?25h[?0c[?25l[?1c:[?25h[?0clet line1=line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['92']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:[?25h[?0clet line2=line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr2=attr
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['92']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c  ¶ |
+a b c¶|
  a b c¶||||||||  
  
  
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     
[No Name] [+]                              #define >_CONSOLE>---------->---2      +     #define >_FILE_AND_CONSOLE>---------3  +     bbeeeeee;      some text    Test 5: set linebreak list listchars  +and concealing part2  eeeeee>--->-;>some text  +[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),3)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c3 more lines¶                                     Test 9: a multibyte sign and colorcolu  ¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ+a b c¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ  a b c¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑa b cTest 9: a multibyte sign and colorcolumn  ¶                     ++a b c¶                                 a b c¶               [?25h[?0c[?25l[?1c:[?25h[?0c" expected: attr[2] is different because of colorcolumn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
[?25l[?1c
:  [?25h[?0c:   call append('$', "Screen attributes are different!")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:   call append('$', "Screen attributes are the same!")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c  ¶ |
+a b c¶|
  a b c¶|
  ¶ |Screen attributes are the same!¶        a b c    Test 9: a multibyte sign and colorcol  +umn[?25h[?0c[?25l[?1c:[?25h[?0c%w! test.out
[?25l[?1c"test.out" [New File] 57 lines, 1882 characters writtentest.out     test.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listlbr_utf8 = test61; then \
#	  if diff test.out test_listlbr_utf8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listlbr_utf8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr_utf8.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test54.failed test.ok test.out X* viminfo
cp test54.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test54.in
[?25h[?8c[?25h[?0c[?25l[?1c"test54.in" 22 lines, 658 charactersSome tests for buffer-local autocommands

STARTTEST
:so small.vim
:e xx
:if has("vms")
: !del test.out.*
: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out
:else
: !rm -f test.out
: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out
:endif
:e somefile" here, autocommand for xx shall write test.out
:" but autocommand shall not apply to buffer named <buffer>:bwipe xx" here, autocommand shall be auto-deleted
:e xx" nothing shall be written
:e somefile" nothing shall be written
:qa!
ENDTEST

start of test file xx
end of test file xx[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cSome tests for buffer-local autocommands[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 15 lines, 555 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce xx
[?25l[?1c"xx" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: !del test.out.*

[?25l[?1c:  [?25h[?0c: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > te

st.out

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: !rm -f test.out

[?25l[?1c:!rm -f test.out[?25h[?0c
[?25l[?1c:  [?25h[?0c: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce somefile           " here, autocommand for xx shall write test.out 
[?25l[?1c:!echo buffer-local autommand in xx>> test.out

[?25h[?0c[?25l[?1c"somefile" [New File]

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c                     " but autocommand shall not apply to buffer named <buffer

>[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe xx             " here, autocommand shall be auto-deleted
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce xx                 " nothing shall be written
[?25l[?1c"xx" [New File][?25h[?0c[?25l[?1c:[?25h[?0ce somefile           " nothing shall be written
[?25l[?1c"somefile" [New File][?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test54 = test61; then \
#	  if diff test.out test54.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test54.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test54.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test17.in
[?25h[?8c[?25h[?0c[?25l[?1c"test17.in" 135 lines, 2431 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
:"
:if has("unix")
:let $CDIR = "."
/CDIR
:else
:if has("amiga")
:let $TDIR = "/testdir"
:else
:let $TDIR = "."
:endif
/TDIR
:endif[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 564 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("ebcdic")
[?25l[?1c
:  [?25h[?0c: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:if has("unix")
:let $CDIR = "."
/CDIR[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:let $CDIR = "."

[?25l[?1c:  [?25h[?0c/CDIR

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:if has("amiga")

[?25l[?1c:    [?25h[?0c:let $TDIR = "/testdir"

[?25l[?1c:    [?25h[?0c:else

[?25l[?1c:    [?25h[?0c:let $TDIR = "."

[?25l[?1c:    [?25h[?0c:endif

[?25l[?1c:  [?25h[?0c/TDIR

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:if has("unix")
:let $CDIR = "."
/CDIR
:else
:if has("amiga")
:let $TDIR = "/testdir"
:else
:let $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.outw! test.outgf:set ff=unix
:w! test.out
:brewindENDTEST${CDIR}/test17a.in[?25h[?0c[?25l[?1c
:[?25h[?0c" Dummy writing for making that sure gf doesn't fail even if the current
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" file is modified. It can be occurred when executing the following command
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" directly on Windows without fixing the 'fileformat':
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  > nmake -f Make_dos.mak test17.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 135 lines, 2431 characters written[?25h[?0c[?25l[?1c
"/<<PKGBUILDDIR>>/src/vim-nox/testdir/./test17a.in" 3 lines, 88 c

haracters

Press ENTER or type command to continue[?25h[?0c[?25l[?1cThis file is just to test "gf" in test 17.
The contents is not important.
Just testing!
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" 3 lines, 88 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 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.outgf:set ff=unix:w! test.out:brewindENDTEST        ${CDIR}/test17a.in        $TDIR/test17a.inSTARTTEST:" check for 'include' without \zs or \ze:lang C:call delete("./Xbase.a"):call delete("Xdir1", "rf"):!mkdir Xdir1:!mkdir "Xdir1/dir2":e! Xdir1/dir2/foo.ai#include   "bar.a"^[:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 23 lines, 396 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:e Xdir1/dir2/baz.a
i#include"foo.a"^[:
:w
:e Xbase.a
:set path=Xdir1/dir2
i#include    <foo.a>^[:
:w
:redir! >>test.out
:checkpath!
:redir END
:brewind
ENDTEST

STARTTEST
:" check for 'include' with \zs and \ze
:call delete("./Xbase.b")
:call delete("Xdir1", "rf")
:!mkdir Xdir1
:!mkdir "Xdir1/dir2"
:let &include='^\s*%inc\s*/\zs[^/]\+\ze'
:function! DotsToSlashes()
:  return substitute(v:fname, '\.', '/', 'g') . '.b'
:endfunction[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' without \zs or \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.a")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.a
[?25l[?1c"Xdir1/dir2/foo.a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c#include   "bar.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.a" [New File] 1 line, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.a
[?25l[?1c"Xdir1/dir2/bar.a" [New File][?25h[?0c[?25l[?1c#include      "baz.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.a" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.a
[?25l[?1c"Xdir1/dir2/baz.a" [New File][?25h[?0c[?25l[?1c#include"foo.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.a" [New File] 1 line, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.a
[?25l[?1c"Xbase.a" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c#include    <foo.a>[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.a" [New File] 1 line, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c#include    <foo.a>
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 charactersi#include            "foo.a"^[:
:w:e Xbase.a:set path=Xdir1/dir2i#include    <foo.a>^[::w:redir! >>test.out:checkpath!:redir END:brewindENDTESTSTARTTEST:" check for 'include' with \zs and \ze:call delete("./Xbase.b"):call delete("Xdir1", "rf"):!mkdir Xdir1:!mkdir "Xdir1/dir2":let &include='^\s*%inc\s*/\zs[^/]\+\ze':function! DotsToSlashes():  return substitute(v:fname, '\.', '/', 'g') . '.b':endfunction:let &includeexpr='DotsToSlashes()'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 27 lines, 532 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 delete("Xdir1", "rf")
:!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][?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' with \zs and \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.b")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0clet &include='^\s*%inc\s*/\zs[^/]\+\ze'
[?25l[?1c: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 delete("Xdir1", "rf")
:!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][?25h[?0c[?25l[?1c:[?25h[?0cfunction! DotsToSlashes()
[?25l[?1c
:  [?25h[?0c:  return substitute(v:fname, '\.', '/', 'g') . '.b'

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:e Xdir1/dir2/baz.b
i%inc/foo/^[:[?25h[?0c[?25l[?1c:[?25h[?0clet &includeexpr='DotsToSlashes()'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.b
[?25l[?1c"Xdir1/dir2/foo.b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c%inc   /bar/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.b" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.b
[?25l[?1c"Xdir1/dir2/bar.b" [New File][?25h[?0c[?25l[?1c%inc      /baz/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.b" [New File] 1 line, 16 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.b
[?25l[?1c"Xdir1/dir2/baz.b" [New File][?25h[?0c[?25l[?1c%inc/foo/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.b" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.b
[?25l[?1c"Xbase.b" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c%inc    /foo/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.b" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c%inc    /foo/
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 charactersi%inc            /foo/^[:
:w:e Xbase.b:set path=Xdir1/dir2i%inc    /foo/^[::w:redir! >>test.out:checkpath!:redir END:brewindENDTESTSTARTTEST:" check for 'include' with \zs and no \ze:call delete("./Xbase.c"):call delete("Xdir1", "rf"):!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[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 39 lines, 745 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' with \zs and no \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.c")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0clet &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0cfunction! StripNewlineChar()
[?25l[?1c
:  [?25h[?0c:  if v:fname =~ '\n$'

[?25l[?1c:    [?25h[?0c:    return v:fname[:-2]

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  return v:fname

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:w
:e Xdir1/dir2/baz.c
i%incfoo.c^[:
:w
:e Xdir1/dir2/FALSE.c[?25h[?0c[?25l[?1c
:[?25h[?0clet &includeexpr='StripNewlineChar()'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.c
[?25l[?1c"Xdir1/dir2/foo.c" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c%inc   bar.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.c" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.c
[?25l[?1c"Xdir1/dir2/bar.c" [New File][?25h[?0c[?25l[?1c%inc      baz.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.c" [New File] 1 line, 16 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.c
[?25l[?1c"Xdir1/dir2/baz.c" [New File][?25h[?0c[?25l[?1c%incfoo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/FALSE.c
[?25l[?1c"Xdir1/dir2/FALSE.c" [New File][?25h[?0c[?25l[?1c%incfoo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/FALSE.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.c
[?25l[?1c"Xbase.c" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c%inc    FALSE.c foo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c%inc    FALSE.c foo.c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 characters:w:e Xdir1/dir2/baz.ci%inc            foo.c^[::w:e Xdir1/dir2/FALSE.ci%inc            foo.c^[::w:e Xbase.c:set path=Xdir1/dir2i%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:qENDTEST[?25h[?0c[?25l[?1c:[?25h[?0c" change "\" to "/" for Windows and fix 'fileformat'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce test.out
[?25l[?1c"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)[?25h[?0c[?25l[?1c:[?25h[?0c%s#\\#/#g
[?25l[?1cE486: Pattern not found: \\[?25h[?0c[?25l[?1c:[?25h[?0cset ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 33 lines, 655 characters written[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test17 = test61; then \
#	  if diff test.out test17.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test17.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test17.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test30.in
[?25h[?8c[?25h[?0c[?25l[?1c"test30.in" 237 lines, 3762 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=
:/^unix/;/eof/-1w! XXUnix
:/^dos/;/eof/-1w! XXDos
:set bin noeol
:$w! XXMac
Gonoeol^[
:$w! XXEol
:set nobin eol
:enew!
:bwipe XXUnix XXDos XXMac
:" create mixed format files
:if has("vms")
: !copy XXUnix,XXDos XXUxDs.
: !copy XXUnix,XXMac XXUxMac.
: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for a lot of variations of the 'fileformats' option[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 221 lines, 3592 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72
Go8^[:$r XXtt81
:$r XXtt82
Go9^[:$r XXtt91
:$r XXtt92
:$r XXtt93
Go10^[:$r XXUnix
:set nobinary ff&
:w
:qa!
ENDTEST

unix
unix
eof

dos^M
dos^M
eof

mac^Mmac^M[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" first write three test files, one in each format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^unix/;/eof/-1w! XXUnix
[?25l[?1c"XXUnix" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^dos/;/eof/-1w! XXDos
[?25l[?1c"XXDos" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset bin noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$w! XXMac
[?25l[?1c"XXMac" [New File][Incomplete last line] 1 line, 8 characters written[?25h[?0c[?25l[?1c
noeol[?25h[?0c[?25l[?1c
:[?25h[?0c$w! XXEol
[?25l[?1c"XXEol" [New File][Incomplete last line] 1 line, 5 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset nobin eol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cenew!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c3 buffers wiped out[?25h[?0c[?25l[?1c:[?25h[?0c" create mixed format files
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: !copy XXUnix,XXDos XXUxDs.

[?25l[?1c:  [?25h[?0c: !copy XXUnix,XXMac XXUxMac.

[?25l[?1c:  [?25h[?0c: !copy XXDos,XXMac  XXDosMac.

[?25l[?1c:  [?25h[?0c: !copy XXMac,XXEol  XXMacEol.

[?25l[?1c:  [?25h[?0c: !copy XXUnix,XXDos,XXMac XXUxDsMc.

[?25l[?1c:  [?25h[?0c:elseif has("win32")

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXDos XXUxDs

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXMac XXUxMac

[?25l[?1c:  [?25h[?0c: !copy /b XXDos+XXMac XXDosMac

[?25l[?1c:  [?25h[?0c: !copy /b XXMac+XXEol XXMacEol

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXDos+XXMac XXUxDsMc

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: !cat XXUnix XXDos >XXUxDs

[?25l[?1c:!cat XXUnix XXDos >XXUxDs[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXUnix XXMac >XXUxMac

[?25l[?1c:!cat XXUnix XXMac >XXUxMac[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXDos XXMac >XXDosMac

[?25l[?1c:!cat XXDos XXMac >XXDosMac[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXMac XXEol >XXMacEol

[?25l[?1c:!cat XXMac XXEol >XXMacEol[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXUnix XXDos XXMac >XXUxDsMc

[?25l[?1c:!cat XXUnix XXDos XXMac >XXUxDsMc[?25h[?0c
[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' empty
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" 2 lines, 10 charactersunix
unix[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" 2 lines, 10 charactersdos^M
dos^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt01
[?25l[?1c"XXtt01" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [Incomplete last line] 1 line, 8 charactersmacmac^M
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt02
[?25l[?1c"XXtt02" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=dos
[?25l[?1c:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72Go8^[:$r XXtt81:$r XXtt82Go9^[:$r XXtt91:$r XXtt92:$r XXtt93Go10^[:$r XXUnix:set nobinary ff&:w:qa!ENDTESTunixunixeofdos^Mdos^Meofmac^Mmac^M[?25h[?0c[?25l[?1c
:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" [CR missing][dos format] 2 lines, 10 charactersunixunix~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt11
[?25l[?1c"XXtt11" [New File][dos format] 2 lines, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" [dos format] 2 lines, 10 charactersdosdos[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt12
[?25l[?1c"XXtt12" [New File][dos format] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [Incomplete last line][dos format] 1 line, 8 charactersmac^Mmac^M
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt13
[?25l[?1c"XXtt13" [New File][dos format] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=mac
[?25l[?1c:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72Go8^[:$r XXtt81:$r XXtt82Go9^[:$r XXtt91:$r XXtt92:$r XXtt93Go10^[:$r XXUnix:set nobinary ff&:w:qa!ENDTESTunixunixeofdosdoseofmac^Jmac[?25h[?0c[?25l[?1c
:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" [Incomplete last line][mac format] 1 line, 10 charactersunix^Junix^J
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt21
[?25l[?1c"XXtt21" [New File][mac format] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" [Incomplete last line][mac format] 3 lines, 10 charactersdos^Jdos^J[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt22
[?25l[?1c"XXtt22" [New File][mac format] 3 lines, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [mac format] 2 lines, 8 charactersmac
mac~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt23
[?25l[?1c"XXtt23" [New File][mac format] 2 lines, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c^Jdos
^Jeof^J^Jmac
mac^J[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to one format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt31
[?25l[?1c"XXtt31" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt32
[?25l[?1c"XXtt32" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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] 237 lines, 3762 characters[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [mac format] 4 lines, 28 charactersunix^Junix^Jdos^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt33
[?25l[?1c"XXtt33" [New File][mac format] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters^Jdoseof^J^Jmac
mac^J[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to two formats
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt41
[?25l[?1c"XXtt41" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxMac
[?25l[?1c"XXUxMac" [Incomplete last line] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt42
[?25l[?1c"XXtt42" [New File] 3 lines, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDosMac
[?25l[?1c"XXDosMac" [Incomplete last line][dos format] 3 lines, 18 charactersdodos
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt43
[?25l[?1c"XXtt43" [New File][dos format] 3 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXDosMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDs
[?25l[?1c"XXUxDs" 4 lines, 20 charactersunixunix
dos^Mdos^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt51
[?25l[?1c"XXtt51" [New File] 4 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDs
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt52
[?25l[?1c"XXtt52" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDosMac
[?25l[?1c"XXDosMac" [mac format] 4 lines, 18 charactersdo^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt53
[?25l[?1c"XXtt53" [New File][mac format] 4 lines, 18 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXDosMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cunix,mac:unix[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt54
[?25l[?1c"XXtt54" [New File] 2 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDs
[?25l[?1c"XXUxDs" [CR missing][dos format] 4 lines, 20 charactersunixunix
dosdos
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt61
[?25l[?1c"XXtt61" [New File][dos format] 4 lines, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDs
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxMac
[?25l[?1c"XXUxMac" [Incomplete last line][CR missing][dos format] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cdos,mac:dos[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt62
[?25l[?1c"XXtt62" [New File][dos format] 4 lines, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxMac
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt63
[?25l[?1c"XXtt63" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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] 237 lines, 3762 characters[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMacEol
[?25l[?1c"XXMacEol" [Incomplete last line][mac format] 3 lines, 13 charactersmacmac
noeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cdos,mac:mac[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt64
[?25l[?1c"XXtt64" [New File][mac format] 4 lines, 26 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXMacEol
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to three formats
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt71
[?25l[?1c"XXtt71" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cunix,dos,mac:unix[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt72
[?25l[?1c"XXtt72" [New File] 2 lines, 24 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac,dos,unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt81
[?25l[?1c"XXtt81" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line][mac format] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cmac,dos,unix:mac[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt82
[?25l[?1c"XXtt82" [New File][mac format] 2 lines, 23 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0c" try with 'binary' set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac,unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset binary
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt91
[?25l[?1c"XXtt91" [New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt92
[?25l[?1c"XXtt92" [New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt93
[?25l[?1c"XXtt93" [New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Append "END" to each file so that we can see what the last written char was.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix nobin
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cEND[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt01
[?25l[?1c"XXtt01" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt02
[?25l[?1c"XXtt02" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt11
[?25l[?1c"XXtt11" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt12
[?25l[?1c"XXtt12" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt13
[?25l[?1c"XXtt13" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt21
[?25l[?1c"XXtt21" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt22
[?25l[?1c"XXtt22" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt23
[?25l[?1c"XXtt23" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt31
[?25l[?1c"XXtt31" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt32
[?25l[?1c"XXtt32" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt33
[?25l[?1c"XXtt33" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt41
[?25l[?1c"XXtt41" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt42
[?25l[?1c"XXtt42" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt43
[?25l[?1c"XXtt43" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt51
[?25l[?1c"XXtt51" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt52
[?25l[?1c"XXtt52" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt53
[?25l[?1c"XXtt53" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt54
[?25l[?1c"XXtt54" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt61
[?25l[?1c"XXtt61" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt62
[?25l[?1c"XXtt62" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt63
[?25l[?1c"XXtt63" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt64
[?25l[?1c"XXtt64" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt71
[?25l[?1c"XXtt71" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt72
[?25l[?1c"XXtt72" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt81
[?25l[?1c"XXtt81" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt82
[?25l[?1c"XXtt82" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt91
[?25l[?1c"XXtt91" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt92
[?25l[?1c"XXtt92" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt93
[?25l[?1c"XXtt93" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Concatenate the results.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Make fileformat of test.out the native fileformat.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Add a newline at the end.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset binary
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 2 lines, 10 charactersunix
unix[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt01
[?25l[?1c"XXtt01" 3 lines, 14 charactersdos^Mdos^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt02
[?25l[?1c"XXtt02" 2 lines, 13 charactersmac^Mmac^MEND[?25h[?0c
[?25l[?1c
1[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt11
[?25l[?1c"XXtt11" 3 lines, 16 charactersunix^Munix^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt12
[?25l[?1c"XXtt12" 3 lines, 14 charactersdos^Mdos^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt13
[?25l[?1c"XXtt13" 2 lines, 14 charactersmac^Mmac^M^MEND[?25h[?0c
[?25l[?1c
2[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt21
[?25l[?1c"XXtt21" 3 lines, 15 charactersunixunix^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt22
[?25l[?1c"XXtt22" 3 lines, 15 charactersdos^Mdos^M^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt23
[?25l[?1c"XXtt23" 1 line, 12 characters
mac^Mmac^MEND[?25h[?0c[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt31
[?25l[?1c"XXtt31" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt32
[?25l[?1c"XXtt32" 6 lines, 36 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt33
[?25l[?1c"XXtt33" 5 lines, 32 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
unix[?25h[?0c[?25l[?1cunix
dos^M
dos^M
mac^Mmac^MEND
[?25h[?0c[?25l[?1c
4[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt41
[?25l[?1c"XXtt41" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt42
[?25l[?1c"XXtt42" 4 lines, 23 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt43
[?25l[?1c"XXtt43" 4 lines, 24 charactersunix
mac^Mmac^M
END
dos^M[?25h[?0c[?25l[?1cdos^M
mac^Mmac^M^M
END
[?25h[?0c[?25l[?1c
5[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt51
[?25l[?1c"XXtt51" 5 lines, 24 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt52
[?25l[?1c"XXtt52" 6 lines, 33 charactersunix
dos^M
dos^M
END
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt53
[?25l[?1c"XXtt53" 3 lines, 22 charactersunix
dos^M
dos^M
mac^Mmac^M
END
dos^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt54
[?25l[?1c"XXtt54" 3 lines, 24 charactersdos^M
mac^Mmac^MEND
unix,mac:unix[?25h[?0c[?25l[?1cnoeol
END
[?25h[?0c[?25l[?1c
6[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt61
[?25l[?1c"XXtt61" 5 lines, 26 characters
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt62
[?25l[?1c"XXtt62" 5 lines, 39 charactersunix^M
dos^M
dos^M
END
dos,mac:dos^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt63
[?25l[?1c"XXtt63" 6 lines, 36 charactersunix^M
unix^M
mac^Mmac^M^M
END
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt64
[?25l[?1c"XXtt64" 1 line, 30 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
dos,mac:mac^Mmac^Mmac^Mnoeol^MEND[?25h[?0c[?25l[?1c
7[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt71
[?25l[?1c"XXtt71" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt72
[?25l[?1c"XXtt72" 3 lines, 28 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix,dos,mac:unix[?25h[?0c[?25l[?1cnoeol
END
[?25h[?0c[?25l[?1c
8[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt81
[?25l[?1c"XXtt81" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt82
[?25l[?1c"XXtt82" 1 line, 27 charactersunix
dos^M
dos^M
mac^Mmac^M
END
mac,dos,unix:mac^Mnoeol^MEND[?25h[?0c[?25l[?1c
9[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt91
[?25l[?1c"XXtt91" 5 lines, 32 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt92
[?25l[?1c"XXtt92" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt93
[?25l[?1c"XXtt93" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?25h[?0c[?25l[?1cunix
dos^M
dos^M
mac^Mmac^MEND
[?25h[?0c[?25l[?1c
10[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXUnix
[?25l[?1c"XXUnix" 2 lines, 10 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0cset nobinary ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 130 lines, 786 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test30 = test61; then \
#	  if diff test.out test30.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test30.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test30.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test32.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for insert expansion[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c[?25l[?1c
:so small.vim[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 533 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cse nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
[?25l[?1c"Xtestfile" [New] 3L, 57C written[?25h[?0c[?25l[?1c:[?25h[?0cse cot=
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       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
ENDTESTstart of testfile
run1run2test32.in                                                                       [?25h[?0c[?25l[?1c-- 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[+][?25h[?0c[?25l[?1c-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?25h[?0c[?25l[?1c3[?25h[?0c
[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?25h[?0c
[?25l[?1c:[?25h[?0cse cpt=.,w,i
[?25l[?1c[?25h[?0c[?25l[?1c-- 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 matchMakefileto      run3
Makefileto      run3
Makefileto      run3[?25h[?0c[?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=kXtestfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw Xtest11.one
[?25l[?1c"Xtest11.one" [New] 9L, 104C writtenXtest11.one  [?25h[?0c[?25l[?1c:[?25h[?0cw Xtest11.two
[?25l[?1c"Xtest11.two" [New] 9L, 104C written[?25h[?0c[?25l[?1c-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning dictionary: Xtestfilematch in file Xtestfile-- Keyword completion (^N^P) match 1 of 9test11[+]I[?25h[?0c [?25l[?1c-- Keyword completion (^N^P) match 1 of 9-- INSERT --[?25h[?0c[?25l[?1c-- INSERT --Xtest11
[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0c" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" CTRL-X CTRL-F again to verify this doesn't cause trouble.
[?25l[?1c[?25h[?0c[?25l[?1c-- 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 442
Make_all.mak
run1 run2d[?25h[?0c [?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c
run1 run2~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0cse cpt=w
[?25l[?1c[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=u nohid
[?25l[?1c[?25h[?0c[?25l[?1c

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
[?25l[?1c[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c
ru[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New] 15L, 175C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test32 = test61; then \
#	  if diff test.out test32.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test32.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test32.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test58.in
[?25h[?8c[?25h[?0c[?25l[?1c"test58.in" 656 lines, 11024 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for spell checking.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2591 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" NOSLITSUGS
:call TestOne('8', '8')
:" Numbers
:call TestOne('9', '9')
:"
:" clean up for valgrind
:delfunc TestOne
:set spl= enc=latin1
:"
gg:/^test output:/,$wq! test.out
ENDTEST

1affstart
SET ISO8859-1


[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Don't want to depend on the locale from the environment
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c:"
:" NOSLITSUGS
:call TestOne('8', '8')
:" Numbers
:call TestOne('9', '9')
:"
:" clean up for valgrind
:delfunc TestOne
:set spl= enc=latin1
:"
gg:/^test output:/,$wq! test.out
ENDTEST

1affstart
SET ISO8859-1


:"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check using z= in new buffer (crash fixed by patch 7.4a.028).
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset maxmem=512 spell
[?25l[?1cvim

STARTTESTlatin1maxmem
iasdaff/.dic
:func TestOne(aff, dicspellfilea:affa:dicspldic and .aff
  exea:aff . 'affstarta:aff . 'affend/-1w! Xtest.aff
  exea:dic . 'dicstarta:dic . 'dicend/-1w! Xtest.dic
  mkspell! Xtest Xtest[?25h[?0c[?25l[?1casdTests for spell checking.     vim: set ft=vim :[?25h[?0c[?25l[?1cChange "asdTests" to:

 1 "Acid tests"

 2 "Attests"

 3 "Ass Tests"

 4 "As Tests"

 5 "Sad Tests"

 6 "Ads Tests"

 7 "As tests"

 8 "As detests"

 9 "Add Tests"

10 "Aid Tests"

11 "Ash Tests"

12 "Ad Tests"

13 "And Tests"

14 "Ask Tests"

15 "Asp Tests"

16 "USD Tests"

17 "Astutest"

18 "Autotests"

19 "Sadists"

20 "Asst Tests"

21 "Assad Tests"

22 "SSD Tests"

Type number and <Enter> or click with mouse (empty cancels): [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Function to test .aff/.dic with list of good and bad words.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc TestOne(aff, dic)
[?25l[?1c
:  [?25h[?0c  set spellfile=

[?25l[?1c:  [?25h[?0c  $put =''

[?25l[?1c:  [?25h[?0c  $put ='test '. a:aff . '-' . a:dic

[?25l[?1c:  [?25h[?0c  " Generate a .spl file from a .dic and .aff file.

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l[?1c:  [?25h[?0c  mkspell! Xtest Xtest

[?25l[?1c:  [?25h[?0c  " use that spell file

[?25l[?1c:  [?25h[?0c  set spl=Xtest.latin1.spl spell

[?25l[?1c:  [?25h[?0c  " list all valid words

[?25l[?1c:  [?25h[?0c  spelldump

[?25l[?1c:  [?25h[?0c  %yank

[?25l[?1c:  [?25h[?0c  quit

[?25l[?1c:  [?25h[?0c  $put

[?25l[?1c:  [?25h[?0c  $put ='-------'

[?25l[?1c:  [?25h[?0c  " find all bad words and suggestions for them

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'good:'

[?25l[?1c:  [?25h[?0c  normal 0f:]s

[?25l[?1c:  [?25h[?0c  let prevbad = ''

[?25l[?1c:  [?25h[?0c  while 1

[?25l[?1c:    [?25h[?0c    let [bad, a] = spellbadword()

[?25l[?1c:    [?25h[?0c    if bad == '' || bad == prevbad || bad == 'badend'

[?25l[?1c:      [?25h[?0c      break

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let prevbad = bad

[?25l[?1c:    [?25h[?0c    let lst = spellsuggest(bad, 3)

[?25l[?1c:    [?25h[?0c    normal mm

[?25l[?1c:    [?25h[?0c    $put =bad

[?25l[?1c:    [?25h[?0c    $put =string(lst)

[?25l[?1c:    [?25h[?0c    normal `m]s

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('1', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1cthe 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']
end
['put', 'uk', 'test']th['put', 'uk', 'test']gebletegek[?25h[?0c[?25l[?1c
kepereneven[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
everles gesvets etele[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l[?1c"Xtest.aff" 151 lines, 3412 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest Xtest
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1c-------
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']
end['put', 'uk', 'test']
the['put', 'uk', 'test']gebletegekkepereneveneverles gesvet etelekbltykk[?25h[?0c[?25l[?1c
kprnfn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
*fls kswts tl[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" also use an addition file
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^addstart/+1,/^addend/-1w! Xtest.latin1.add
[?25l[?1c"Xtest.latin1.add" [New File] 3 lines, 38 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest.latin1.add.spl Xtest.latin1.add
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0cset spellfile=Xtest.latin1.add
[?25l[?1casdTests for spell checking.     vim: set ft=vim :

STARTTEST
:so small.vim
:"
:" Don't want to depend on the locale from the environment[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cinputs
['input', 'puts', 'outputs']
comment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_us.latin1.spl
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['input', 'puts', 'outputs']
comment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ccomment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_gb.latin1.spl
[?25l[?1celequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
elekwent
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_nz.latin1.spl
[?25l[?1celequint
elekwint
elekwint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
elekwent
elequint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cOk
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_ca.latin1.spl
[?25l[?1celequint
elekwint
elekwint

elequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ctest
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet str a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Postponed prefixes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('2', '1')
[?25l[?1c"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

2affend

2good: puts
badendaddstar
/regions=usgbnz
elequ/2/3
addendtest2:test elekwint test elekwent asdf[?25h[?0c[?25l[?1c:[?25h[?0c" Compound words
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('3', '3')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('4', '4')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('5', '5')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('6', '6')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('7', '7')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c1234
mee/391,111,9999
bar/17,61003,123
lead/2
tail/123
middle/77,1
7dicend

bad: mee meea2 prabar probarmaat middle leadmiddle middletail tailleadleadprobar
badend

Test NOSLITSUGS

8affstart
SET ISO8859-1

NOSPLITSUGS
8affend

8dicstart[?25h[?0c[?25l[?1c:[?25h[?0c" NOSLITSUGS
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('8', '8')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c" Numbers
[?25l[?1cNOSPLITSUGS
8affend

8dicstart
1234
foo
bar
faabar
8dicend

8good: foo bar faabar
bad: foobar barfooTest Numbers9affstart9affend9dicstart
1234
foo[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('9', '9')
[?25l[?1cError detected while processing function TestOne:

line    5:

E493: Backwards range given: 1;/^9affstart/+1,/^9affend/-1w! Xtest.aff

"Xtest.dic" 3 lines, 13 characters written

Reading affix file Xtest.aff ...

Reading dictionary file Xtest.dic ...

line      2, word      0 - foo
Compressing word tree...
Compressed 2 of 15 nodes; 13 (86%) remaining

Writing spell file Xtest.latin1.spl ...

Done!

Estimated runtime memory use: 65 bytes

3 lines yanked

3 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1cTest Numbers

9affstart
9affend

9dicstart
1234
foo
bar
9dicend

9good: 0b1011 0777 1234 0x01ff
badend


test output:

test 1-1# ile: Xtest.latin1.spl
Comment
input[?25h[?0c[?25l[?1c:[?25h[?0c" clean up for valgrind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestOne
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset spl= enc=latin1
[?25l[?1cTest Numbers

9affstart
9affend

9dicstart
1234
foo
bar
9dicend

9good: 0b1011 0777 1234 0x01ff
badend


test output:

test 1-1
# file: Xtest.latin1.spl
Comment
deol
input[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^test output:/,$wq! test.out
[?25l[?1c"test.out" [New File] 289 lines, 3844 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test58 = test61; then \
#	  if diff test.out test58.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test58.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test58.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test59.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 106 lines, 2520 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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


[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Don't want to depend on the locale from the environment.  The .aff and .dic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" text is in latin1, the test text is utf-8.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c: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


:" 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[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf-8
[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Function to test .aff/.dic with list of good and bad words.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc TestOne(aff, dic)
[?25l[?1c
:  [?25h[?0c  set spellfile=

[?25l[?1c:  [?25h[?0c  $put =''

[?25l[?1c:  [?25h[?0c  $put ='test '. a:aff . '-' . a:dic

[?25l[?1c:  [?25h[?0c  " Generate a .spl file from a .dic and .aff file.

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l[?1c:  [?25h[?0c  mkspell! Xtest Xtest

[?25l[?1c:  [?25h[?0c  " use that spell file

[?25l[?1c:  [?25h[?0c  set spl=Xtest.utf-8.spl spell

[?25l[?1c:  [?25h[?0c  " list all valid words

[?25l[?1c:  [?25h[?0c  spelldump

[?25l[?1c:  [?25h[?0c  %yank

[?25l[?1c:  [?25h[?0c  quit

[?25l[?1c:  [?25h[?0c  $put

[?25l[?1c:  [?25h[?0c  $put ='-------'

[?25l[?1c:  [?25h[?0c  " find all bad words and suggestions for them

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'good:'

[?25l[?1c:  [?25h[?0c  normal 0f:]s

[?25l[?1c:  [?25h[?0c  let prevbad = ''

[?25l[?1c:  [?25h[?0c  while 1

[?25l[?1c:    [?25h[?0c    let [bad, a] = spellbadword()

[?25l[?1c:    [?25h[?0c    if bad == '' || bad == prevbad || bad == 'badend'

[?25l[?1c:      [?25h[?0c      break

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let prevbad = bad

[?25l[?1c:    [?25h[?0c    let lst = spellsuggest(bad, 3)

[?25l[?1c:    [?25h[?0c    normal mm

[?25l[?1c:    [?25h[?0c    $put =bad

[?25l[?1c:    [?25h[?0c    $put =string(lst)

[?25l[?1c:    [?25h[?0c    normal `m]s

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('1', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1cthe 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[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('kóopërÿnôven')
[?25l[?1c
kepereneven[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
everles gesvets etele[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l[?1c"Xtest.aff" 153 lines, 3426 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest Xtest
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1c-------
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[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('kóopërÿnôven')
[?25l[?1c
kprnfn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
*fls kswts tl[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" also use an addition file
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^addstart/+1,/^addend/-1w! Xtest.utf-8.add
[?25l[?1c"Xtest.utf-8.add" [New File] 3 lines, 38 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest.utf-8.add.spl Xtest.utf-8.add
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0cset spellfile=Xtest.utf-8.add
[?25l[?1cTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1ctomato 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 !![?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cinputs
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_us.utf-8.spl
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ccomment
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_gb.utf-8.spl
[?25l[?1celequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cok
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_nz.utf-8.spl
[?25l[?1celequint
elekwint
elekwint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cOk
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_ca.utf-8.spl
[?25l[?1celequint
elekwint
elekwint

elequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ctest
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet str a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Postponed prefixes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('2', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1caddstart
/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[?25h[?0c[?25l[?1c:[?25h[?0c" Compound words
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('3', '3')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('4', '4')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('5', '5')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('6', '6')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('7', '7')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c1234
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[?25h[?0c[?25l[?1c:[?25h[?0c" clean up for valgrind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestOne
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset spl= enc=latin1
[?25l[?1c1234
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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^test output:/,$wq! test.out
[?25l[?1c"test.out" [New File] 270 lines, 3685 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test59 = test61; then \
#	  if diff test.out test59.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test59.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test59.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test72.in
[?25h[?8c[?25h[?0c[?25l[?1c"test72.in" 146 lines, 2110 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/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for undo file.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 135 lines, 1913 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:bwipe!
:e Xtestfile
foo2bar
:set key=
/bar
:.w >>test.out
u:.w >>test.out
u:.w >>test.out
u:.w >>test.out
:"
:" Rename the undo file so that it gets cleaned up.
:if has("vms")
: call rename("_un_Xtestfile", "Xtestundo")
:else
: call rename(".Xtestfile.un~", "Xtestundo")
:endif
:qa!
ENDTEST

1111 -----
2222 -----

123456789[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile': first a simple one-line change.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100 undofile nomore
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-- INSERT --this is one line[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cs/one/ONE/
[?25l[?1cONE
[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" [New] 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!:e Xtestfilefoo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 1L, 17Cthis is ONE line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1 change; before #2  0 seconds agoone
[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New] 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile', change in original file fails check
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noundofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 1L, 17CONE
[?25h[?0c[?25l[?1c:[?25h[?0cs/line/Line/
[?25l[?1cL
[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cset undofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!:e Xtestfilefoo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 1L, 17Cthis is ONE Line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" TODO: this beeps
[?25l[?1c[?25h[?0c[?5h[?5l[?25l[?1cAlready at oldest change[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 17C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile', add 10 lines, delete 6 lines, undo 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset undofile
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --one
twothreefourfivesixseveneightnineten[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" 4L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2bar
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Conetwonineten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1 more line; before #7  0 seconds agoeight[?25h[?0c[?25l[?1c1 more line; before #6  0 seconds agoseven[?25h[?0c[?25l[?1c1 more line; before #5  0 seconds agosix[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 7L, 33C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test that reading the undofiles when setting undofile works
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noundofile ul=0
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --six
u[?25h[?0cs[?25l[?1c[?25h[?0c[?25l[?1c1 line less; before #8  0 seconds ago
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Cnine
ten~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset undofile ul=100
[?25l[?1c[?25h[?0c[?25l[?1c1 more line; before #7  0 seconds agoeight[?25h[?0c[?25l[?1c1 more line; before #6  0 seconds agoseven[?25h[?0c[?25l[?1c1 more line; before #5  0 seconds agosix[?25h[?0c[?25l[?1c1 more line; before #4  0 seconds agofive[?25h[?0c[?25l[?1c1 more line; before #3  0 seconds agofour[?25h[?0c[?25l[?1c1 more line; before #2  0 seconds agothree[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 10L, 49C appended[?25h[?0c[?25l[?1c:[?25h[?0c" And now with encryption, cryptmethod=zip
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Cninten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=zip
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --monday
tuesdaywednesdaythursdayfriday[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1cEnter same key again: [?25h[?0c******

[?25l[?1cmonday
friday
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile" [crypted] 2L, 14C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1c"Xtestfile" [crypted] 2L, 14Cmonday
friday
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [crypted] 2L, 14C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
[?25l[?1c[?25h[?0c[?25l[?1c1 more line; before #11  0 seconds agothursday[?25h[?0c[?25l[?1c1 more line; before #10  0 seconds agowednesday[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 4L, 33C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" With encryption, cryptmethod=blowfish
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c*******

~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][crypted] 1L, 14C[?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=blowfish ff&
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --jan
febmaraprjun[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c-- INSERT --foo mar[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --bar apr[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1cEnter same key again: [?25h[?0c******

[?25l[?1cjan
feb
bar apr[?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile" [blowfish] 4L, 20C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2ba
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1c"Xtestfile" [blowfish] 4L, 20Cjan
feb
bar apr
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish] 4L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #15  1 seconds agoap[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c1 more line; before #14  2 seconds agofoo mar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #13  2 seconds agomar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" With encryption, cryptmethod=blowfish2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c*******

~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][blowfish] 1L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=blowfish2 ff&
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --jan
febmaraprjun[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c-- INSERT --foo mar[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --bar apr[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cEnter encryption key: [?25h[?0c*******

[?25l[?1cEnter same key again: [?25h[?0c*******

[?25l[?1cjan
feb[?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile" [blowfish2] 4L, 20C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2ba
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Enter encryption key: [?25h[?0c*******

[?25l[?1c"Xtestfile" [blowfish2] 4L, 20Cjan
feb
bar ap
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish2] 4L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #19  1 seconds agoap[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c1 more line; before #18  2 seconds agofoo mar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #17  2 seconds agomar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Rename the undo file so that it gets cleaned up.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: call rename("_un_Xtestfile", "Xtestundo")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: call rename(".Xtestfile.un~", "Xtestundo")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cjan
feb
mar
apr[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test72 = test61; then \
#	  if diff test.out test72.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test72.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test72.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test78.failed test.ok test.out X* viminfo
cp test78.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test78.in
[?25h[?8c[?25h[?0c[?25l[?1c"test78.in" 46 lines, 1464 charactersInserts 10000 lines with text to fill the swap file with two levels of pointer
blocks.  Then recovers from the swap file and checks all text is restored.

We need about 10000 lines of 100 characters to get two levels of pointer
blocks.

STARTTEST
:so small.vim
:set nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
:e! Xtest
ggdG
:let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
:let i = 1
:let linecount = 10000
:while i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
:preserve
:" get the name of the swap file
:redir => swapname
:swapname
:redir END
:let swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][:cntrl:]]*$', '\1', '')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cInserts 10000 lines with text to fill the swap file with two levels of pointer[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1208 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set nobin
:new
:only!
:bwipe! Xtest
:call rename('Xswap', swapname)
:recover Xtest
:call delete(swapname)
:new
:call append(0, 'recovery start')
:wincmd w
:let linedollar = line('$')
:if linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected ". linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let linecount = linedollar | endif
:let i = 1
:while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call append(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
:q!
:call append(line('$'), 'recovery end')
:w! test.out
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest
[?25l[?1c"Xtest" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01

23456789abcdefghijklmnoparstuvwxyz0123456789"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet linecount = 10000
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
[?25l[?1c9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899991    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899992    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899993    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899994    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899995    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899996    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899997    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899998    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678910000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[?25h[?0c[?25l[?1c:[?25h[?0cpreserve
[?25l[?1cFile preserved[?25h[?0c[?25l[?1c:[?25h[?0c" get the name of the swap file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => swapname
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cswapname
[?25l[?1c.Xtest.swp[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][

:cntrl:]]*$', '\1', '')
[?25l[?1c9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[?25h[?0c[?25l[?1c

10000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789

~                                                                               Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe! Xtest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall rename('Xswap', swapname)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0crecover Xtest
[?25l[?1cUsing swap file ".Xtest.swp"

Original file "/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtest"

"/<<PKGBUILDDIR>>/src/vim-nox/testdir/Xtest" [New File]Recovery completed. You should check if everything is OK.

(You might want to write out this file under another name

and run diff with the original file to check for changes)

You may want to delete the .swp file now.



Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ccall delete(swapname)
[?25l[?1c1abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
2abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
3abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
4abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
5       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567896       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567897       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567898       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678910      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678911      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678912      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1

2

3

4 

5 

Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, 'recovery start')
[?25l[?1crecovery start[+][?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name] [+]                                                                   Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet linedollar = line('$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected 

" . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let li

necount = linedollar | endif
[?25l[?1crecovery start[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appen

d(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
[?25l[?1crecovery start[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), 'recovery end')
[?25l[?1crecovery end[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New] 3L, 29C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test78 = test61; then \
#	  if diff test.out test78.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test78.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test78.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test83.failed test.ok test.out X* viminfo
cp test83.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test83.in
[?25h[?8c[?25h[?0c[?25l[?1c"test83.in" 76 lines, 1273 charactersTests for tag search with !_TAG_FILE_ENCODING.

STARTTEST
:so mbyte.vim
:set enc=utf8
:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
: e! test.ok
: w! test.out
: qa!
:endif
:
:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
:
ggdG:
:
:call setline('.', 'Results of test83')
:
:" case1:
:new
:set tags=Xtags1[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for tag search with !_TAG_FILE_ENCODING.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 58 lines, 1021 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'
:else
: close
: put ='case3: ok'
:endif
:close
:
:wq! test.out
ENDTEST

text for tags1
abcdefghijklmnopqrs

text for tags2
ABC

text for tags3
ABC

tags1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf8
[?25l[?1c:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'
:else
: close
: put ='case3: ok'
:endif
:close
:
:wq! test.out
ENDTEST

text for tags1
abcdefghijklmnopqrs

text for tags2
ABC

text for tags3
ABC

tags1[?25h[?0c[?25l[?1c:[?25h[?0cif !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
[?25l[?1c"Xtags1.txt" [New File] 2 lines, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
[?25l[?1c"Xtags2.txt" [New File] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
[?25l[?1c"Xtags3.txt" [New File] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^tags1$/+1,/^tags1-end$/-1w! Xtags1
[?25l[?1c"Xtags1" [New File] 2 lines, 81 characters written[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTests for tag search with !_TAG_FILE_ENCODING.

STARTTEST
:so mbyte.vim
:set enc=utf8
:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
: e! test.ok
: w! test.out
: qa!
:endif
:
:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
:
ggdG:
:
:call setline('.', 'Results of test83')
:
:" case1:
:new
:set tags=Xtags1[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setline('.', 'Results of test83')
[?25l[?1cResults of test83
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case1:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c[No Name]                                                                       Results of test83test83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=Xtags1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag abcdefghijklmnopqrs
[?25l[?1c"Xtags1.txt" 2 lines, 35 characterstext for tags1
abcdefghijklmnopqrsXtags1.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case1: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case1: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case2:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               [No Name]                                                                       Results of test83case1: oktest83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=test83-tags2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag /.BC
[?25l[?1c"Xtags2.txt" 2 lines, 25 characterstext for tags2
ABCXtags2.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case2: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case2: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
case2: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case3:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       case1: okcase2: oktest83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=test83-tags3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag abc50
[?25l[?1c"Xtags3.txt" 2 lines, 25 characterstext for tags3
ABCXtags3.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case3: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case3: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
case2: ok
case3: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 4 lines, 48 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test83 = test61; then \
#	  if diff test.out test83.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test83.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test83.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test89.failed test.ok test.out X* viminfo
cp test89.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test89.in
[?25h[?8c[?25h[?0c[?25l[?1c"test89.in" 71 lines, 1514 characters- Some tests for setting 'number' and 'relativenumber'
  This is not all that useful now that the options are no longer reset when
  setting the other.
- Some tests for findfile() function

STARTTEST
:so small.vim
:set hidden nocp nu rnu viminfo+=nviminfo
:redir @a | set nu? rnu? | redir END
:e! xx
:redir @b | set nu? rnu? | redir END
:e! #
:$put ='results:'
:$put a
:$put b
:"
:set nonu nornu
:setglobal nu
:setlocal rnu
:redir @c | setglobal nu? | redir END
:set nonu nornu
:setglobal rnu
:setlocal nu[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c- Some tests for setting 'number' and 'relativenumber'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 63 lines, 1305 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =':set MUST reset the other global value'
:$put g
:$put h
:"
:let cwd=getcwd()
:cd ..
:" Tests may be run from a shadow directory, so an extra cd needs to be done to
:" get above src/
:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
:$put =''
:$put ='Testing findfile'
:$put =''
:set ssl
:$put =findfile('test19.in','src/test*')
:exe "cd" cwd
:cd ..
:$put =findfile('test19.in','test*')
:$put =findfile('test19.in','testdir')
:exe "cd" cwd
:/^results/,$w! test.out
:q!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden nocp nu rnu viminfo+=nviminfo
[?25l[?1c 21 :$put g 20 :$put h
 19 :" 18 :let cwd=getcwd()
 17 :cd .. 16 :" Tests may be run from a shadow directory, so an extra cd needs to be done     to 15 :" get above src/
 14 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 13 :$put =''
 12 :$put ='Testing findfile'
 11 :$put =''
 10 :set ssl
  9 :$put =findfile('test19.in','src/test*')
  8 :exe "cd" cwd
  7 :cd ..
  6 :$put =findfile('test19.in','test*')
  5 :$put =findfile('test19.in','testdir')
  4 :exe "cd" cwd
  3 :/^results/,$w! test.out
  2 :q!
  1 ENDTEST
71  [?25h[?0c[?25l[?1c:[?25h[?0credir @a | set nu? rnu? | redir END
[?25l[?1c  number

  relativenumber

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! xx
[?25l[?1c"xx" [New File]1   
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0credir @b | set nu? rnu? | redir END
[?25l[?1c  number

  relativenumber

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! #
[?25l[?1c"test89.in" line 71 of 71 --100%-- col 1 21 :$put g
 20 :$put h
 19 :" 18 :let cwd=getcwd() 17 :cd .. 16 :" Tests may be run from a shadow directory, so an extra cd needs to be done     to 15 :" get above src/ 14 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif 13 :$put ='' 12 :$put ='Testing findfile' 11 :$put ='' 10 :set ssl  9 :$put =findfile('test19.in','src/test*')  8 :exe "cd" cwd  7 :cd ..  6 :$put =findfile('test19.in','test*')  5 :$put =findfile('test19.in','testdir')  4 :exe "cd" cwd  3 :/^results/,$w! test.out  2 :q!  1 ENDTEST71  "test89.in" line 71 of 71 --100%-- col 1[?25h[?0c[?25l[?1c:[?25h[?0c$put ='results:'
[?25l[?1c
1
 20
 19
 18
 17

 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
72  results:[?25h[?0c[?25l[?1c
:[?25h[?0c$put a
[?25l[?1c3 more lines21
 20

 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
75    relativenumber3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put b
[?25l[?1c3 more lines22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
78    relativenumber3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:" get above src/:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif:$put ='':$put ='Testing findfile':$put ='':set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal rnu
[?25l[?1c 22 :" get above src/
 21 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 20 :$put =''
 19 :$put ='Testing findfile'
 18 :$put =''
 17 :set ssl
 16 :$put =findfile('test19.in','src/test*')
 15 :exe "cd" cwd
 14 :cd ..
 13 :$put =findfile('test19.in','test*')
 12 :$put =findfile('test19.in','testdir')
 11 :exe "cd" cwd
 10 :/^results/,$w! test.out
  9 :q!
  8 ENDTEST
  7 
  6 results:
  5 
  4   number
  3   relativenumber
  2 
  1   number
  0   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0credir @c | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:" get above src/:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif:$put ='':$put ='Testing findfile':$put ='':set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal nu
[?25l[?1c 56 :" get above src/
 57 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 58 :$put =''
 59 :$put ='Testing findfile'
 60 :$put =''
 61 :set ssl
 62 :$put =findfile('test19.in','src/test*')
 63 :exe "cd" cwd
 64 :cd ..
 65 :$put =findfile('test19.in','test*')
 66 :$put =findfile('test19.in','testdir')
 67 :exe "cd" cwd
 68 :/^results/,$w! test.out
 69 :q!
 70 ENDTEST
 71 
 72 results:
 73 
 74   number
 75   relativenumber
 76 
 77   number
 78   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0credir @d | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':setlocal must NOT reset the other global value'
[?25l[?1c
 79 :setlocal must NOT reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put c
[?25l[?1c 80 
 81   number[?25h[?0c[?25l[?1c
:[?25h[?0c$put d
[?25l[?1c 82 
 83   relativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber:setlocal must NOT reset the other global value  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir @e | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir @f | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':setglobal MUST reset the other global value'
[?25l[?1c
:setglobal MUST reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put e
[?25l[?1cnumber[?25h[?0c[?25l[?1c
:[?25h[?0c$put f
[?25l[?1crelativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c 66 :$put =findfile('test19.in','testdir')
 67 :exe "cd" cwd
 68 :/^results/,$w! test.out
 69 :q!
 70 ENDTEST
 71 
 72 results:
 73 
 74   number
 75   relativenumber
 76 
 77   number
 78   relativenumber
 79 :setlocal must NOT reset the other global value
 80 
 81   number
 82 
 83   relativenumber
 84 :setglobal MUST reset the other global value
 85 
 86   number
 87 
 88   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset rnu
[?25l[?1c22
 21
 20
 1
 18
 17
 16
 15
 1
 13
 12
 11
 10
  
  8
  7
  6
  5
  
  3
  2
  1
88    [?25h[?0c[?25l[?1c:[?25h[?0credir @g | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber:setlocal must NOT reset the other global value  number  relativenumber:setglobal MUST reset the other global value  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset rnu
[?25l[?1c 22 :$put =findfile('test19.in','testdir')
 21 :exe "cd" cwd
 20 :/^results/,$w! test.out
 19 :q!
 18 ENDTEST
 17 
 16 results:
 15 
 14   number
 13   relativenumber
 12 
 11   number
 10   relativenumber
  9 :setlocal must NOT reset the other global value
  8 
  7   number
  6 
  5   relativenumber
  4 :setglobal MUST reset the other global value
  3 
  2   number
  1 
  0   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c88    [?25h[?0c[?25l[?1c:[?25h[?0credir @h | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':set MUST reset the other global value'
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
89  :set MUST reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put g
[?25l[?1c2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
91    number[?25h[?0c[?25l[?1c
:[?25h[?0c$put h
[?25l[?1c2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
93    relativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox[?25h[?0c[?25l[?1c:[?25h[?0c" Tests may be run from a shadow directory, so an extra cd needs to be done to
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" get above src/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[?25l[?1c/<<PKGBUILDDIR>>[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
94  [?25h[?0c[?25l[?1c
:[?25h[?0c$put ='Testing findfile'
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
95  Testing findfile[?25h[?0c[?25l[?1c
:[?25h[?0c$put =''
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
96  [?25h[?0c[?25l[?1c
:[?25h[?0cset ssl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =findfile('test19.in','src/test*')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
97  src/testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0cexe "cd" cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox[?25h[?0c[?25l[?1c:[?25h[?0c$put =findfile('test19.in','test*')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
98  testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0c$put =findfile('test19.in','testdir')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
99  testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0cexe "cd" cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-nox/testdir[?25h[?0c[?25l[?1c:[?25h[?0c/^results/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 28L, 356C written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test89 = test61; then \
#	  if diff test.out test89.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test89.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test89.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_arglist.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_arglist.vim" 318 lines, 6653 characters

Executing Test_argadd()
"a" [New File]bababababd

Executing Test_argc()
"a" [New File]
Executing Test_argdelete()
"a" [New File]a" [New File]
"bb

Executing Test_argedit()
"a" [New File]ba

"c" [New File]
"x

"y" [New File]

Executing Test_argidx()
"a" [New File]cabc

Executing Test_arglist_autocmd()
"Xxx1" 1L, 15C
"Xxx21L, 15C1L, 15C
"Xxx1" line 1 of 1 --100%-- col 1 ((3) of 2)
"Xxx21 of 2)
3 buffers wiped out

Executing Test_arglistid()
"a" [New File]
Executing Test_argpos()
"a" [New File]d

"c" [New File]
"ba

"d" [New File]
"a

Executing Test_argument()
"d" [New File]cbafile] --No lines in buffer-- (1 of 4)
"c3

a b [c] d
"c" [New File]

"x" [New File]
"z

Executing Test_argv()
"a" [New file] --No lines in buffer--

Executing Test_zero_argadd()
"b" [New file] --No lines in buffer-- (2 of 4)
"aFbedited" [New File]
"a" [New File]test_arglist.res" [New File][New] 0L, 0C written

Executed 11 tests
"messages" [New File][New] 15L, 326C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_assert.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_assert.vim" 127 lines, 2933 characters

Executing Test_assert_equal()

Executing Test_assert_exception()

Executing Test_assert_fail_fails()

Executing Test_assert_false()

Executing Test_assert_inrange()

Executing Test_assert_notequal()

Executing Test_assert_true()

Executing Test_compare_fail()

Executing Test_match()

Executing Test_notmatch()

Executing Test_user_is_happy()


oooo$$$$$$$$$$$$oooo

oo$$$$$$$$$$$$$$$$$$$$$$$$o

oo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$oo$   $$ o$

     o $ ooo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o$$ $$ $$o$

  oo $ $ "$      o$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$o$$$o$$o$

  "$$$$$$o$     o$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$o    $$$$$$$$

    $$$$$$$    $$$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$

    $$$$$$$$$$$$$$$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$$$$$$  """$$$

     "$$$""""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$

      $$$   o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$o

     o$$"   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o

     $$$    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" "$$$$$$ooooo$$$$o

    o$$$oooo$$$$$  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$   o$$$$$$$$$$$$$$$$$

    $$$$$$$$"$$$$   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     $$$$""""""""

   """"$$$$    "$$$$$$$$$$$$$$$$$$$$$$$$$$$$"      o$$$

"$$$o     """$$$$$$$$$$$$$$$$$$"$$"$$$

$$$o"$$""$$$$$$""""o$$$

$$$$oo$$$"

"$$$$o      o$$$$$$o"$$$$oo$$$$

"$$$$$oo     ""$$$$o$$$$$o   o$$$$""

""$$$$$oooo  "$$$o$$$$$$$$$"""

""$$$$$$$oo $$$$$$$$$$

""""$$$$$$$$$$$

$$$$$$$$$$$$

$$$$$$$$$$"

"$$$""""

[?25h[?0c[?25l[?1cExecuting Test_wrong_error_type()
"test_assert.res" [New File][New] 0L, 0C written

Executed 12 tests
"messages" 15L, 326C30L, 734C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_autochdir.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_autochdir.vim" 17 lines, 332 characters

Executing Test_set_filename()
"samples/Xtest" [New] 0L, 0C written
"test_autochdir.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"30L, 734C34L, 806C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_backspace_opt.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_backspace_opt.vim" 59 lines, 1673 characters

Executing Test_backspace_option()
"test_backspace_opt.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"34L, 806C38L, 886C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_breakindent.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_breakindent.vim" 241 lines, 7365 characters

Executing Test_breakindent01()|
    abcdefghijklmnop|
    qrstuvwxyzABCDEF|
    GHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent02()|
    abcdefghijklmnop|
    >>qrstuvwxyzABCD|
    >>EFGHIJKLMNOP  |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent03()|
    abcdefghijklmnop|
++  qrstuvwxyzABCDEF|
++  GHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent04()|
    abcdefghijklmnop|
  qrstuvwxyzABCDEFGH|
  IJKLMNOP|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent05()|
    abcdefghijklmnop|qrstuvwxyzABCD|EFGHIJKLMNOP  |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent06()|
    abcdefghijklmnop|
   qrstuvwxyzABCDEFG|
   HIJKLMNOP|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent07()  1 |
  2     abcdefghijkl|
?mnopqrstuvw|
?xyzABCDEFGH|
?IJKLMNOP   ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent07a()  1 |
  2     abcdefghijkl|
    ?    mnopqrstuvw|
    ?    xyzABCDEFGH|
    ?    IJKLMNOP   ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent08()  1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent08a()  1 $|
  2 ^Iabcdefghijklmn|
    #  opqrstuvwxyzA|
    #  BCDEFGHIJKLMN|
    #  OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent09()  1 $|
  2 ^Iabcdefghijklmn|
       #opqrstuvwxyz|
       #ABCDEFGHIJKL|
       #MNOP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent10()  1 |
  2 abcdefgh|
~ijklmnop|
~qrstuvwx|
~yzABCDEF|
~GHIJKLMN|
~OP      ||||~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 |
  2     abcdefghijkl|
~mnopqrstuvwx|
~yzABCDEFGHIJ|
~KLMNOP      ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 |
  2     abcdefghijkl|
~mnopqrstuvwx|
~yzABCDEFGHIJ|
~KLMNOP      ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent11()

Executing Test_breakindent12() 1 |
 2 >--->--->--->--->|
   ---{      ||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        {~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent13()

Executing Test_breakindent14()|
e|||||||||~                             
~                             
~                             
~                             
~                             
~                             
~                             
~                             
[No Name] [+]                  e~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                [No Name] [+]                                    " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent15()|1234567890|||||||||~                             
~                             
~                             
~                             
~                             
~                             
~                             
~                             
[No Name] [+]                  1234567890~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                [No Name] [+]                                    " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent16()1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            "test_breakindent.res" [New File][New] 0L, 0C written

Executed 18 tests
"messages" 38L, 886C59L, 1492C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_bufwintabinfo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_bufwintabinfo.vim" 116 lines, 3459 characters

Executing Test_get_buf_options()

Executing Test_get_win_options()

Executing Test_getbufwintabinfo()
"Xtestfile1" [New File]212

Already only one window
"test_bufwintabinfo.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"59L, 1492C65L, 1639C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cdo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cdo.vim" 205 lines, 5116 characters

Executing Test_cdo()
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile1" 3L, 18C33L, 18C

(1 of 1): Line3
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2

(5 of 8): Line2

(1 of 1): Line2

Executing Test_ldo()
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile1" 3L, 18C33L, 18C

(1 of 1): Line3
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2

(5 of 8): Line2

(1 of 1): Line2
"test_cdo.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"65L, 1639C70L, 1718C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_channel.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_channel.vim" 1641 lines, 47075 characters
"test_channel.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"70L, 1718C73L, 1758C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_charsearch.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_charsearch.vim" 62 lines, 1475 characters

Executing Test_charsearch()

Executing Test_search_cmds()
"test_charsearch.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"73L, 1758C78L, 1859C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cmdline.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cmdline.vim" 243 lines, 7346 characters

Executing Test_complete_list():e test

test1.intest85.ok

test1.oktest85.out

test1.outtest86.in

test103.intest86.ok

test103.oktest86.out

test103.outtest87.in

test104.intest87.ok

test104.oktest87.out

test104.outtest88.in

test107.intest88.ok

test107.oktest88.out

test107.outtest89.in

test108.intest89.ok

test108.oktest89.out

test108.outtest9.in

test11.intest9.ok

test11.oktest9.out

test11.outtest90.in

test12.intest90.ok

test12.oktest90.out

test12.outtest91.in

test14.intest91.ok

test14.oktest91.out

test14.outtest94.in

test15.intest94.ok

test15.oktest94.out

test15.outtest95.in

test17.intest95.ok

test17.oktest95.out

test17.outtest97.in

test17a.intest97.ok

test19.intest97.out

test19.oktest98.in

test19.outtest98.ok

test20.intest98.out

test20.oktest99.in

test20.outtest99.ok

test22.intest99.out

test22.oktest_alot.vim

test22.outtest_alot_latin.vim

test23.intest_alot_utf8.vim

test23.oktest_arglist.res

test23.outtest_arglist.vim

test24.intest_assert.res

test24.oktest_assert.vim

test24.outtest_assign.vim

test25.intest_autochdir.res

test25.oktest_autochdir.vim

test25.outtest_autocmd.vim

test26.intest_autocmd_option.in

test26.oktest_autocmd_option.ok

test26.outtest_autocmd_option.out

test28.intest_autoformat_join.in

test28.oktest_autoformat_join.ok

test28.outtest_autoformat_join.out

test29.intest_backspace_opt.res

test29.oktest_backspace_opt.vim

test29.outtest_breakindent.res

test3.intest_breakindent.vim

test3.oktest_bufwintabinfo.res

test3.outtest_bufwintabinfo.vim

test30.intest_cdo.res

test30.oktest_cdo.vim

test30.outtest_changelist.in

test31.intest_changelist.ok

test31.oktest_changelist.out

test31.outtest_channel.py

test32.intest_channel.res

test32.oktest_channel.vim

test32.outtest_channel_pipe.py

test33.intest_charsearch.res

test33.oktest_charsearch.vim

test33.outtest_close_count.in

test34.intest_close_count.ok

test34.oktest_close_count.out

test34.outtest_cmdline.vim

test36.intest_command_count.vim

test36.oktest_comparators.in

test36.outtest_comparators.ok

test37.intest_comparators.out

test37.oktest_crypt.vim

test37.outtest_cscope.vim

test38.intest_cursor_func.vim

test38.oktest_delete.vim

test38.outtest_diffmode.vim

test39.intest_digraph.vim

test39.oktest_display.vim

test39.outtest_erasebackword.in

test4.intest_erasebackword.ok

test4.oktest_erasebackword.out

test4.outtest_eval.in

test40.intest_eval.ok

test40.oktest_eval.out

test40.outtest_eval_func.vim

test41.intest_ex_undo.vim

test41.oktest_execute_func.vim

test41.outtest_expand.vim

test42.intest_expand_dllpath.vim

test42.oktest_expr.vim

test42.outtest_expr_utf8.vim

test43.intest_farsi.vim

test43.oktest_feedkeys.vim

test43.outtest_file_perm.vim

test44.intest_fileformat.vim

test44.oktest_filter_cmd.vim

test44.outtest_filter_map.vim

test45.intest_fixeol.in

test45.oktest_fixeol.ok

test45.outtest_fixeol.out

test48.intest_float_func.vim

test48.oktest_fnameescape.vim

test48.outtest_fnamemodify.vim

test49.intest_fold.vim

test49.oktest_functions.vim

test49.outtest_getcwd.in

test49.vimtest_getcwd.ok

test5.intest_getcwd.out

test5.oktest_gf.vim

test5.outtest_glob2regpat.vim

test50.intest_gn.vim

test50.oktest_goto.vim

test51.intest_gui.vim

test51.oktest_hardcopy.vim

test51.outtest_help_tagjump.vim

test52.intest_hide.vim

test52.oktest_history.vim

test52.outtest_hlsearch.vim

test53.intest_increment.vim

test53.oktest_increment_dbcs.vim

test53.outtest_insertcount.in

test54.intest_insertcount.ok

test54.oktest_insertcount.out

test54.outtest_job_fails.vim

test55.intest_join.vim

test55.oktest_json.vim

test55.outtest_jumps.vim

test56.intest_lambda.vim

test56.oktest_langmap.vim

test56.outtest_largefile.vim

test57.intest_lispwords.vim

test57.oktest_listchars.in

test57.outtest_listchars.ok

test58.intest_listchars.out

test58.oktest_listlbr.in

test58.outtest_listlbr.ok

test59.intest_listlbr.out

test59.oktest_listlbr_utf8.in

test59.outtest_listlbr_utf8.ok

test60.intest_listlbr_utf8.out

test60.oktest_man.vim

test60.outtest_mapping.vim

test60.vimtest_marks.vim

test64.intest_match.vim

test64.oktest_matchadd_conceal.vim

test64.outtest_matchadd_conceal_utf8.vim

test65.intest_menu.vim

test65.oktest_messages.vim

test65.outtest_mksession.vim

test66.intest_mksession_utf8.vim

test66.oktest_nested_function.vim

test66.outtest_netbeans.py

test67.intest_netbeans.vim

test67.oktest_normal.vim

test67.outtest_options.vim

test68.intest_packadd.vim

test68.oktest_partial.vim

test68.outtest_perl.vim

test69.intest_popup.vim

test69.oktest_profile.vim

test69.outtest_quickfix.vim

test7.intest_regexp_latin.vim

test7.oktest_regexp_utf8.vim

test7.outtest_reltime.vim

test70.intest_ruby.vim

test70.oktest_search.vim

test70.outtest_search_mbyte.in

test72.intest_search_mbyte.ok

test72.oktest_search_mbyte.out

test72.outtest_searchpos.vim

test73.intest_set.vim

test73.oktest_signs.vim

test73.outtest_smartindent.vim

test75.intest_sort.vim

test75.oktest_source_utf8.vim

test75.outtest_startup.vim

test77.intest_startup_utf8.vim

test77.oktest_stat.vim

test77.outtest_statusline.vim

test77a.intest_substitute.vim

test77a.oktest_syn_attr.vim

test78.intest_syntax.vim

test78.oktest_system.vim

test78.outtest_tabline.vim

test79.intest_tabpage.vim

test79.oktest_tagcase.vim

test79.outtest_tagjump.vim

test8.intest_textobjects.vim

test8.oktest_timers.vim

test8.outtest_true_false.vim

test80.intest_undo.vim

test80.oktest_unlet.vim

test80.outtest_usercommands.vim

test82.intest_utf8.in

test82.oktest_utf8.ok

test82.outtest_utf8.out

test83-tags2test_viminfo.vim

test83-tags3test_viml.vim

test83.intest_visual.vim

test83.oktest_window_cmd.vim

test83.outtest_window_id.vim

test84.intest_wordcount.in

test84.oktest_wordcount.ok

test84.outtest_wordcount.out

test85.intest_writefile.vim

:e test
"test" [New File]

Executing Test_complete_tab():e Xtest...file
"Xtestfile" 1L, 9C

Executing Test_complete_wildmenu():e Xtest...file1...

Xtestfile1  Xtestfile2  
Xtestfile1                                                        :e Xtest...Xtestfile1
Xtestfile1file1...Xtestfile1Xtestfile22:e Xtestfile2"Xtestfile2" 1L, 10C
Executing Test_expand_star_star():find **/fileXname...a/b/fileXname
"a/b/fileXname" 1L, 9C
"Xtestfile2" [New File]

Executing Test_getcompletion():cscope find 

a  c  d  e  f  g  i  s  t

:cscope find :sign list 

Testing

:sign list Executing Test_illegal_address()

Executing Test_paste_in_cmdline():abc "def ghi
:"abc def ghi
:"
:aaa "asdf bbb
:"aaa asdf bbb
:"
:aaa "/tmp/some bbb
:"aaa /tmp/some bbb
:"
:aaa veryl"ongword bbb
:"aaa verylongword bbb
:"
:aaa "a;b-c*d bbb
:"aaa a;b-c*d bbb
:"
:=toupper(getline(1))
:ASDF.X /TMP/SOME VERYLONGWORD A;B-C*D 
:"ASDF.X /TMP/SOME VERYLONGWORD A;B-C*D
:"

Executing Test_remove_char_in_cmdline():abc defef
:"abc ef
:"
:abc defdef
:"abcdef
:"
:abc def ghighi
:"abc ghi
:"
:abc def
:def"def
"test_cmdline.res" [New File][New] 0L, 0C written

Executed 8 tests
"messages"78L, 1859C89L, 2168C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_command_count.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_command_count.vim" 191 lines, 4742 characters

Executing Test_command_count_0()
"DoesNotExistEver" [New File]
Executing Test_command_count_1()

"a" [New File]

loading buffers

"b" [New File]

loading buffers

"c" [New File]

loading buffers

"d" [New File]

loading buffers

"e" [New File]

loading buffers
"c" [New File]beb

Executing Test_command_count_2()

"d" [New File]
"a

Already only one window
"x" [New File]
Already only one window

Executing Test_command_count_3()
"aaa" [New File]bbb
"ccc
"test_command_count.vim" 191L, 4742C

2 buffers deleted

Executing Test_command_count_4()
"cc" [New File]
"dd" [New File]

"ee" [New File]
"aa

"bb" [New File]

"cc" [New File]

"dd" [New File]

"ee" [New File]
"cc

"ee" [New File]

"ff" [New File]
"test_command_count.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"89L, 2168C97L, 2380C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_crypt.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_crypt.vim" 83 lines, 2590 characters

Executing Test_crypt_blowfish()
"Xtest.txt" [New File]:X

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

Enter same key again: ******

"Xtest.txt" [New][blowfish] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [blowfish] 3L, 98C

Executing Test_crypt_blowfish2()
"Xtest.txt" [New File]:X
Enter encryption key: ******
Enter same key again: ******

"Xtest.txt" [New][blowfish2] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: ******

"Xtest.txt" [blowfish2] 3L, 98C

Executing Test_crypt_zip()
"Xtest.txt" [New File]:X

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

Enter same key again: ******

"Xtest.txt" [New][crypted] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [crypted] 3L, 98C

Executing Test_head_only_2()
"Xtest.txt" [New File][New] 1L, 16C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [readonly] 1L, 16C

Executing Test_head_only_3()
"Xtest.txt" [New File][New] 1L, 16C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: ******

"Xtest.txt" [readonly] 1L, 16C

Executing Test_uncrypt_blowfish()
"Xtest.txt" [New File][converted][New][noeol] 1L, 80C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [blowfish] 2L, 27C

Executing Test_uncrypt_blowfish2()
"Xtest.txt" [New File][converted][New][noeol] 1L, 103C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: *******

"Xtest.txt" [blowfish2] 2L, 44C

Executing Test_uncrypt_zip()
"Xtest.txt" [New File][converted][New][noeol] 1L, 45C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [converted][crypted] 2L, 26C"test_crypt.res" [New File][converted][New] 0L, 0C written
Executed 8 tests
"messages"97L, 2380C108L, 2667C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cscope.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cscope.vim" 279 lines, 10568 characters
"test_cscope.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"108L, 2667C111L, 2706C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_diffmode.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_diffmode.vim" 237 lines, 4954 characters

Executing Test_diff_fold_sync()

Executing Test_diffget_diffput()

Executing Test_diffoff()  -------------------------------------|
  -------------------------------------|
  Two|
  Three|||||||||||||||||||  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    
[No Name] [+]                             One                                                                             Two  Three                                    ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     [No Name] [+]                           Two                                    
Three                                  
~                                      
~                                      
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  OneTwoThree~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  

Executing Test_filler_lines()

7 more lines

10 more lines

Executing Test_setting_cursor()
"Xtest1" [New File]
90 more lines
"Xtest1" [New] 91L, 262C written2" [New File]
100 more lines
"Xtest2"[New] 101L, 293C written101L, 293C191L, 262C

Executing Test_vert_split()
"Xtest" [New] 5L, 25C written"Xtest2" [New] 6L, 29C written

"Nop" [Modified][Not edited] line 4 of 6 --66%-- col 3"Xtest" 5L, 25C2" 6L, 29C
"test_diffmode.vim" 237L, 4954Cres" [New File][New] 0L, 0C written

Executed 6 tests
"messages"111L, 2706C120L, 2928C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_digraph.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_digraph.vim" 461 lines, 14928 characters

Executing Test_digraph_cmndline()
Executing T

Executing Test_digraphs()
Executing Test_digraphs_option()
Executing Test_digraphs_output()

Executing Test_loadkeymap()"test_digraph.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"120L, 2928C128L, 3123C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_display.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_display.vim" 39 lines, 849 characters[?25h[?0cExecuting Test_display_foldcolumn()e more noise blah blah<82|
> more stuff here||||||||||~                        
~                        
~                        
~                        
~                        
~                        
~                        
~                        
~                        
[No Name] [+]             ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     [No Name]                                             " Test for displaying stuff
if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum, nr) abort
  let line = []
  for j in range(a:nr)
    for c in range(1, winwidth(0))call add(line, nr2char(screenchar(a:lnum+j, c)))
test_display.vim                                                                  e more noise blah blah<|
  82> more stuff here    ||||||||||  
  
  
  
  
  
  
  
  ~                      ~                      ~                      ~                      ~                      ~                      ~                      ~                      ~                      
[No Name] [+]             ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     [No Name]                                             " Test for displaying stuff
if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum, nr) abort
  let line = []
  for j in range(a:nr)
    for c in range(1, winwidth(0))call add(line, nr2char(screenchar(a:lnum+j, c)))
test_display.vim                                                                "test_display.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"128L, 3123C132L, 3199C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_farsi.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_farsi.vim" 84 lines, 2881 characters

Executed 2 tests
"messages"[converted] 132L, 3199C[converted] 137L, 3295C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fnameescape.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_fnameescape.vim" 21 lines, 467 characters

Executing Test_fnameescape()
"Xspa ce"[New] 21L, 467C written
"Xemark![New] 21L, 467C written
"test_fnameescape.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"137L, 3295C141L, 3368C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fold.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_fold.vim" 97 lines, 3328 characters

Executing Test_address_fold()

7 lines yanked

7 lines yanked

7 lines yanked

7 lines yanked

7 lines yanked

8 lines yanked

10 lines yanked

4 lines yanked

Executing Test_indent_fold()

Executing Test_indent_fold2()
"test_fold.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"141L, 3368C147L, 3495C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gf.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gf.vim" 33 lines, 1138 characters

Executing Test_gf_url()
"test_gf.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"147L, 3495C151L, 3554C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gn.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gn.vim" 93 lines, 2821 characters

Executing Test_gn_command()/[u]niquepattern/s
/a:0\@!\zs\d\+
"test_gn.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"151L, 3554C155L, 3617C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gui.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gui.vim" 36 lines, 838 characters
"test_gui.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"155L, 3617C158L, 3653C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hardcopy.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hardcopy.vim" 62 lines, 2001 characters

Executing Test_printheader_parsing()

Executing Test_printmbfont_parsing()

Executing Test_printoptions_parsing()

Executing Test_with_syntax()Printing page 1 (0%)Printed: test_hardcopy.vim
"test_hardcopy.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"158L, 3653C165L, 3836C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hide.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hide.vim" 97 lines, 2443 characters

Executing Test_hide()
"Xf1" [New File]
"Xf1" [New File]
"Xf212121

one|two
"Xf1" [New File]
"Xf212
"test_hide.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"165L, 3836C169L, 3895C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_history.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_history.vim" 106 lines, 3567 characters

Executing Test_History()

Executing Test_Search_history_window()/a
/b
/a
b
a
b
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Tests for the history functions

test_history.vim                                                                /a
/b
/
/
/
/
/~                                                                              ~                                                                              ~                                                                              ~                                                                              [Command Line]                                                                  [?25h[?0c[?25l[?1c/a
"test_history.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"169L, 3895C174L, 4000C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hlsearch.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hlsearch.vim" 34 lines, 1013 characters

Executing Test_hlsearch()/aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
~                                                                               [No Name] [+]                                                                   " Test for v:hlsearch

function! Test_hlsearch()
  new
  call setline(1, repeat(['aaa'], 10))
  set hlsearch nolazyredraw
  let r=[]
  " redraw is needed to make hlsearch highlight the matches
  exe "normal! /aaa\<CR>" | redraw
  let r1 = screenattr(1, 1)
test_hlsearch.vim                                                               aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa


/aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa//aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa//aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa


"test_hlsearch.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"174L, 4000C178L, 4067C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_increment.vim" 760 lines, 19011 characters

Executing Test_normal_increment_01()
"dummy" [New File]
Executing Test_normal_increment_02()
"dummy" [New File]
Executing Test_normal_increment_03()
"dummy" [New File]
Executing Test_visual_increment_01()
"dummy" [New File]
Executing Test_visual_increment_02()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_03()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_04()
"dummy" [New File]
Executing Test_visual_increment_05()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_06()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_07()
"dummy" [New File]5 lines changed
Executing Test_visual_increment_08()
"dummy" [New File]
Executing Test_visual_increment_09()
"dummy" [New File]
Executing Test_visual_increment_10()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_11()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_12()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_13()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_14()
"dummy" [New File]
Executing Test_visual_increment_15()
"dummy" [New File]
Executing Test_visual_increment_16()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_17()
"dummy" [New File]
Executing Test_visual_increment_18()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_19()
"dummy" [New File]
Executing Test_visual_increment_20()
"dummy" [New File]
Executing Test_visual_increment_21()
"dummy" [New File]
Executing Test_visual_increment_22()
"dummy" [New File]
Executing Test_visual_increment_23()
"dummy" [New File]
Executing Test_visual_increment_24()
"dummy" [New File]
Executing Test_visual_increment_25()
"dummy" [New File]
Executing Test_visual_increment_26()
"dummy" [New File]
Executing Test_visual_increment_27()
"dummy" [New File]
Executing Test_visual_increment_28()
"dummy" [New File]
Executing Test_visual_increment_29()
"dummy" [New File]
Executing Test_visual_increment_30()
"dummy" [New File]
Executing Test_visual_increment_31()
"dummy" [New File]
Executing Test_visual_increment_32()
"dummy" [New File]_31" [New File]

Executing Test_visual_increment_33()
"dummy" [New File]
Executing Test_visual_increment_34()
"dummy" [New File]
Executing Test_visual_increment_35()
"dummy" [New File]
Executing Test_visual_increment_36()
"dummy" [New File]
Executing Test_visual_increment_37()
"dummy" [New File]
Executing Test_visual_increment_38()
"dummy" [New File]"test_increment.res" [New File][New] 0L, 0C written

Executed 41 tests
"messages" 178L, 4067C222L, 5628C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment_dbcs.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_increment_dbcs.vim" 30 lines, 604 characters

Executing Test_increment_dbcs_1()
"test_increment_dbcs.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"[converted] 222L, 5628C[converted] 226L, 5709C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_job_fails.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_job_fails.vim" 19 lines, 598 characters

Executing Test_job_start_fails()[?25h[?0c[?25l[?1c
"test_job_fails.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"226L, 5709C230L, 5784C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_json.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_json.vim" 287 lines, 10700 characters

Executing Test_js_decode()

Executing Test_js_encode()

Executing Test_json_decode()

Executing Test_json_encode()

"test_json.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"230L, 5784C237L, 5934C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_langmap.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_langmap.vim" 28 lines, 628 characters

Executing Test_langmap()
"test_langmap.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"237L, 5934C241L, 5999C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_man.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_man.vim" 60 lines, 1358 characters

Executing Test_g_ft_man_open_mode()


Cannot find a 'vim'.

Executing Test_nomodifiable()


Cannot find a 'vim'.
"test_man.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"241L, 5999C246L, 6102C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_marks.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_marks.vim" 26 lines, 775 characters

Executing Test_Incr_Marks()

Executing Test_Restore_DelMark()1 more line; before #2  0 seconds ago
1 line less; after #2  0 seconds agomore line; before #2  0 seconds ago
"test_marks.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"246L, 6102C251L, 6202C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_matchadd_conceal.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_matchadd_conceal.vim" 289 lines, 9276 characters[?25h[?0cExecuting Test_clearmatches()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #ZThisZisZaZTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_default_conceal_char()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #+This+is+a+Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_and_conceallevel_3()#ThisisaTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #Thisisa Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_and_syn_conceal()Inductive - : Type := | true : - | false : -.

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Inductive - : Type := | true : - | false : -.

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_repeat_conceal_with_syntax_off()TARGET_TARGETTARGET
t_ttsimple_matchadd()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_simple_matchadd_and_conceal()#XThisXisXaXTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_syn_and_match_conceal()#ZThisZisZaZTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #*This*is*a*Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_using_matchaddpos()#Pis a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       "test_matchadd_conceal.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"251L, 6202C263L, 6616C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_mksession.vim" 104 lines, 2315 characters

Executing Test_mksession()
"/tmp/vtRAJrd/0" [New] 9L, 203C written

search hit BOTTOM, continuing at TOP
"test_mksession.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"[converted] 263L, 6616C[converted] 267L, 6685C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_mksession_utf8.vim" 104 lines, 2328 characters

Executing Test_mksession_utf8()
"/tmp/v4VbXmz/0" [New] 9L, 215C written

search hit BOTTOM, continuing at TOP
"test_mksession_utf8.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"267L, 6685C271L, 6764C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_nested_function.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_nested_function.vim" 67 lines, 1305 characters

Executing Test_max_nesting()

Executing Test_nested_argument()

[]

Executing Test_nested_functions()
"test_nested_function.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"271L, 6764C277L, 6909C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_netbeans.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_netbeans.vim" 80 lines, 2145 characters
"test_netbeans.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"277L, 6909C280L, 6950C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_normal.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_normal.vim" 2280 lines, 58740 characters

Executing Test_normal00_optrans()
Executing Test_normal01_keymodel()
4 lines yankedExecuting Test_normal02_selectmode()10 fewer lines
Executing Test_normal02_selectmode2():set im
[?25h[?0c[?25l[?1c:set noim

Executing Test_normal03_join()

Executing Test_normal04_filter():.!sed -e 's/^/|    /'
[?25h[?0cone
[?25l[?1c:.!sed -e 's/^/|    /'
[?25h[?0c[?25l[?1c:.!
:!echo one
[?25h[?0c
[No write since last change]

one
[?25l[?1c:.!!
[?25h[?0c
[?25l[?1cExecuting Test_normal05_formatexpr()

Executing Test_normal05_formatexpr_newbuf()
"another" [New File]
Executing Test_normal05_formatexpr_setopt()

Executing Test_normal06_formatprg():.,$!./Xsed_format.sh
[?25h[?0c[?25l[?1c7 lines filtered:.,$!./Xsed_format.sh
[?25h[?0c[?25l[?1c7 lines filtered
Executing Test_normal07_internalfmt()
7 fewer lin
Executing Test_normal08_fold()

Executing Test_normal09_operatorfunc()

11 substitutions on 11 lines

Executing Test_normal09a_operatorfunc()

11 substitutions on 11 lines

Executing Test_normal10_expand()

Executing Test_normal11_showcmd()
Executing Test_normal12_nv_error()

Executing Test_normal13_help()
"help.txt" [readonly] 225L, 8437C

Executing Test_normal14_page()

Executing Test_normal14_page_eol()
Executing Test_normal15_z_scroll_vert()

Executing Test_normal16_z_scroll_hor()

Executing Test_normal17_z_scroll_hor2()

Executing Test_normal18_z_fold()

Executing Test_normal19_z_spell()
Word 'goood' added to ./Xspellfile.add
search hit BOTTOM, continuing at TOPWord 'goood' added to ./Xspellfile.add2 goood' added to ./Xspellfile.add/tmp/vAuNdaV/11removed from /tmp/vAuNdaV/11goood' added to /tmp/vAuNdaV/11removed from /tmp/vAuNdaV/11added to ./Xspellfile.addremoved from ./Xspellfile.add2 goood' added to ./Xspellfile.addremoved from ./Xspellfile.addgoood' added to ./Xspellfile2.add
Executing Test_normal20_exmode()

Executing Test_normal21_nv_hat()
"Xfoobar" [New File]ile2" [New File]
Executing Test_normal22_zet()

Executing Test_normal23_K()
"version8.txt" [readonly] 14932L, 562906Cline 1 of 14932 --0%-- col 1
"man" [New File]aa%bb" [New File]
"cc|dd
:! man --pager=cat 'man'[?25h[?0c
[No write since last change]

stdin not open for reading!

shell returned 2


[?25l[?1cExecuting Test_normal24_rot13()

Executing Test_normal25_tag()
"help.txt" [readonly] 225L, 8437C
"change.txt" [readonly] 1830L, 74768C
"help.txt" [readonly] 225L, 8437C
"change.txt" [readonly] 1830L, 74768C
"help.txt" [readonly] 225L, 8437C
"insert.txt" [readonly] 2003L, 82815Cline 49 of 2003 --2%-- col 7-49

Executing Test_normal26_put()

Executing Test_normal27_bracket()

21 substitutions on 21 lines

Executing Test_normal28_parenthesis()

Executing Test_normal29_brace()
17 fewer lines4 fewer lines3
Executing Test_normal30_changecase()

Executing Test_normal31_r_cmd()
Executing Test_normal32_g_cmd1()
/x_foo?abc
Executing Test_normal33_g_cmd2()/[1-8]
search hit BOTTOM, continuing at TOP
9 substitutions on 9 linesblock of 3 lines yanked5
Executing Test_normal34_g_cmd3()

Executing Test_normal35_g_cmd4()

Executing Test_normal36_g_cmd5()

Executing Test_normal37_g_cmd6()
"1.txt" [New File]23

Executing Test_normal38_nvhome()

Executing Test_normal39_cw()
Executing Test_normal40_ctrl_bsl()
Executing Test_normal41_insert_reg()=a
=a
=a

Executing Test_normal42_halfpage()

Executing Test_normal43_textobject1()

Executing Test_normal44_textobjects2()

Executing Test_normal45_drop()

Executing Test_normal46_ignore()

Executing Test_normal47_autocmd()

Executing Test_normal47_visual_buf_wipe()

Executing Test_normal48_wincmd()

Executing Test_normal49_counts()

Executing Test_normal50_commandline()q:  :xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :set im
:set noim
:.!sed -e 's/^/|    /'
:.!
:!echo one
:.!!
:
[Command Line]                                                                  [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:^M   

Executing Test_normal51_FileChangedRO()
"Xreadonly.log" 1L, 4C
Error detected while processing ...13]..Test_normal51_FileChangedRO:
line    8:W10: Warning: Changing a readonly file
Executing Test_normal52_rl()3_digraph()

Executing Test_normal54_Ctrl_bsl()
"test_normal.res" [New File][New] 0L, 0C written

Executed 61 tests
"messages" 280L, 6950C348L, 9314C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_packadd.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_packadd.vim" 238 lines, 8288 characters

Executing Test_colorscheme()

Executing Test_colorscheme_completion():colorscheme ...one')
:ccolorscheme one')
:cacolorscheme one')
:calcolorscheme one')
:callcolorscheme one')
:call colorscheme one')acolorscheme one')dcolorscheme one')dcolorscheme one')(colorscheme one')lcolorscheme one')icolorscheme one'),colorscheme one') colorscheme one')'colorscheme one')
:colorscheme ...one...three')
:ccolorscheme three')
:cacolorscheme three')
:calcolorscheme three')
:callcolorscheme three')
:call colorscheme three')acolorscheme three')dcolorscheme three')dcolorscheme three')(colorscheme three')lcolorscheme three')icolorscheme three'),colorscheme three') colorscheme three')'colorscheme three')
:colorscheme ...one...three...wo')
:ccolorscheme two')
:cacolorscheme two')
:calcolorscheme two')
:callcolorscheme two')
:call colorscheme two')acolorscheme two')dcolorscheme two')dcolorscheme two')(colorscheme two')lcolorscheme two')icolorscheme two'),colorscheme two') colorscheme two')'colorscheme two')
:colorscheme ...one...three...wo...')
:ccolorscheme ')
:cacolorscheme ')
:calcolorscheme ')
:callcolorscheme ')
:call colorscheme ')acolorscheme ')dcolorscheme ')dcolorscheme ')(colorscheme ')lcolorscheme ')icolorscheme '),colorscheme ') colorscheme ')'colorscheme ')

Executing Test_helptags()

Executing Test_packadd()
"./Xdir/pack/mine/opt/mytest/plugin/test.vim" [New File][New] 1L, 24C writtenalso/loaded.vim" [New File][New] 1L, 29C writtenftdetect/test.vim" [New File[New] 1L, 26C written

Executing Test_packadd_completion():packadd ...pluginA')
:cpackadd pluginA')
:capackadd pluginA')
:calpackadd pluginA')
:callpackadd pluginA')
:call packadd pluginA')apackadd pluginA')dpackadd pluginA')dpackadd pluginA')(packadd pluginA')lpackadd pluginA')ipackadd pluginA'),packadd pluginA') packadd pluginA')'packadd pluginA')
:packadd ...pluginA...B')
:cpackadd pluginB')
:capackadd pluginB')
:calpackadd pluginB')
:callpackadd pluginB')
:call packadd pluginB')apackadd pluginB')dpackadd pluginB')dpackadd pluginB')(packadd pluginB')lpackadd pluginB')ipackadd pluginB'),packadd pluginB') packadd pluginB')'packadd pluginB')
:packadd ...pluginA...B...C')
:cpackadd pluginC')
:capackadd pluginC')
:calpackadd pluginC')
:callpackadd pluginC')
:call packadd pluginC')apackadd pluginC')dpackadd pluginC')dpackadd pluginC')(packadd pluginC')lpackadd pluginC')ipackadd pluginC'),packadd pluginC') packadd pluginC')'packadd pluginC')
:packadd ...pluginA...B...C...')
:cpackadd ')
:capackadd ')
:calpackadd ')
:callpackadd ')
:call packadd ')apackadd ')dpackadd ')dpackadd ')(packadd ')lpackadd ')ipackadd '),packadd ') packadd ')'packadd ')

Executing Test_packadd_noload()
"./Xdir/pack/mine/opt/mytest/plugin/test.vim" [New File][New] 1L, 24C written

Executing Test_packloadall()

Executing Test_runtime()
"test_packadd.res" [New File][New] 0L, 0C written

Executed 8 tests
"messages"348L, 9314C359L, 9597C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_perl.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_perl.vim" 123 lines, 3037 characters

Executing Test_SvREFCNT()
"t" [New File]
Executing Test_VIM_package()

Executing Test_change_buffer()/^1

Executing Test_evaluate_list()/^2
search hit BOTTOM, continuing at TOP

Executing Test_perldo()
"__TEST__" [New File]test_perl.vim"123L, 3037C

Executing Test_perleval()

Executing Test_stdio()

&VIM::Msg

STDOUT

STDERR
"test_perl.res" [New File][New] 0L, 0C written

Executed 7 tests
"messages"359L, 9597C369L, 9825C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_profile.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_profile.vim" 146 lines, 6247 characters

Executing Test_profile_completion():profile ...continue file func pause start
:"profile continue file func pause start
:"
:profile start test_prof...ile.vim
:"profile start test_profile.vim
:"

Executing Test_profile_errors()

Executing Test_profile_file()

Executing Test_profile_func()
"test_profile.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"369L, 9825C376L, 9994C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_quickfix.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_quickfix.vim" 1693 lines, 46351 characters

Executing Test_Autocmd()
"F1" [New File]
(1 of 1): Line 10
"F2" [New File]
(1 of 2): Line 10

Executing Test_Autocmd_Exception()

Executing Test_adjust_lnum()

Already only one window
"Xqftestfilec" 20L, 131C

9 fewer lines

Already only one window
"Xqftestfilel" 20L, 131C

9 fewer lines

Executing Test_browse()
"Xqftestfile1" 20L, 131C

(1 of 4): Line5

"Xqftestfile2" 20L, 131C

(3 of 4): Line10
"Xqftestfile1" 20L, 131C

(2 of 4): Line6
"Xqftestfile2" 20L, 131C

(4 of 4): Line11

"Xqftestfile1" 20L, 131C

(1 of 4): Line5

(1 of 4): Line5

"Xqftestfile2" 20L, 131C

(3 of 4): Line10
"Xqftestfile1" 20L, 131C

(2 of 4): Line6
"Xqftestfile2" 20L, 131C

(4 of 4): Line11

"Xqftestfile1" 20L, 131C

(1 of 4): Line5

Executing Test_caddbuffer_to_empty()
"autocmd.txt" [readonly] 1486L, 61530C

(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run

(2 of 1486):

Executing Test_caddbuffer_wrong()
"Xqftestfile2" [New File]
Executing Test_caddexpr_wrong()

(1 of 1):

(1 of 1):

Executing Test_cage()

error list 9 of 10; 1 errors      :cgetexpr ['Xtestfile2:2:2:Line2']

error list 10 of 10; 1 errors     :cgetexpr ['Xtestfile3:3:1:Line3']

error list 8 of 10; 1 errors      :cgetexpr ['Xtestfile1:1:3:Line1']

error list 10 of 10; 1 errors     :cgetexpr ['Xtestfile3:3:1:Line3']

error list 9 of 10; 1 errors      :lgetexpr ['Xtestfile2:2:2:Line2']

error list 10 of 10; 1 errors     :lgetexpr ['Xtestfile3:3:1:Line3']

error list 8 of 10; 1 errors      :lgetexpr ['Xtestfile1:1:3:Line1']

error list 10 of 10; 1 errors     :lgetexpr ['Xtestfile3:3:1:Line3']

Executing Test_cbottom()

Executing Test_cbuffer()
"Xtestfile7" [New File]
(1 of 2): Line 700
"Xtestfile7" [New File]

(1 of 2): Line 700

Executing Test_cexpr()

Executing Test_cfile()
"Xtestfile1" [New File]

(1 of 2): Line 700

"Xtestfile1" [New File]

(1 of 2): Line 700

Executing Test_cgetexpr_works()

Executing Test_clist()

 2 Xtestfile1:1 col 3: Line1

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 1: non-error 1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 5: non-error 3

 6 Xtestfile3:3 col 1: Line3

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 1: non-error 1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 5: non-error 3

 6 Xtestfile3:3 col 1: Line3

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

Executing Test_cwindow()~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       Xtestfile1|1 col 3| Line1                                                       Xtestfile2|2 col 2| Line2
Xtestfile3|3 col 1| Line3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [Quickfix List]                                                                 ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       Xtestfile1|1 col 3| Line1                                                       Xtestfile2|2 col 2| Line2
Xtestfile3|3 col 1| Line3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [Location List]                                                                 Executing Test_dirstack_cleanup()

(1 of 1): 0

Executing Test_duplicate_buf()
"DoesNotExist" [New File]2" [New File]

Xgrepthis
"Xgrepthis" line 1 of 2 --50%-- col 1

(1 of 2): this one

Xgrepthis
(1 of 2): this one

Executing Test_efm()

Executing Test_efm1()
"Xtestfile" 21L, 903C

(1 of 20): 1506-045 (S) Undeclared identifier fd_set.

(20 of 20): What is the title of the quickfix window?

Executing Test_efm2()
"Xtestfile" [New File]

Executing Test_efm_dirstack()

Executing Test_efm_ignore_continuations()

Executing Test_errortitle()

Executing Test_grep()

Already only one window[?25h[?0ctest_quickfix.vim:1418:  " Grep_Test_Text: Match 1
test_quickfix.vim:1419:  " Grep_Test_Text: Match 2
test_quickfix.vim:1424:  silent Xgrep Grep_Test_Text: test_quickfix.vim
test_quickfix.vim:1420:  " GrepAdd_Test_Text: Match 1
test_quickfix.vim:1421:  " GrepAdd_Test_Text: Match 2
test_quickfix.vim:1431:  silent Xgrepadd GrepAdd_Test_Text: test_quickfix.vim
[?25l[?1cAlready only one window[?25h[?0ctest_quickfix.vim:1418:  " Grep_Test_Text: Match 1
test_quickfix.vim:1419:  " Grep_Test_Text: Match 2
test_quickfix.vim:1424:  silent Xgrep Grep_Test_Text: test_quickfix.vim
test_quickfix.vim:1420:  " GrepAdd_Test_Text: Match 1
test_quickfix.vim:1421:  " GrepAdd_Test_Text: Match 2
test_quickfix.vim:1431:  silent Xgrepadd GrepAdd_Test_Text: test_quickfix.vim
[?25l[?1cExecuting Test_helpgrep()
"autocmd.txt" [readonly] 1486L, 61530C

(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run
"autocmd.txt" [readonly] line 1 of 1486 --0%-- col 1
(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run

Executing Test_history()

error list 1 of 10; 1 errors      :  cexpr 'Xtestfile:Line search text'

error list 1 of 2; 1 errors:  cexpr 'Xtestfile:Line search text'

error list 1 of 3; 13 errors      :lexpr ""

error list 1 of 2; 13 errors      :lexpr ""

Executing Test_invalid_efm()

Executing Test_locationlist()

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

W19: Deleting augroup that is still in use
Executing Test_locationlist_cross_tab_jump()
"loclistfoo" 1L, 11Cbar1L, 11C[?25h[?0cloclistfoo:1:loclistfoo

[?25l[?1cAlready only one window

Executing Test_locationlist_curwin_was_closed()

W19: Deleting augroup that is still in use
Executing Test_long_lines()"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Executing Test_nomem()
"/<<PKGBUILDDIR>>/src/vim-nox/alloc.h" 21L, 485C

Error detected while processing function RunTheTest[13]..Test_nomem:

line    2:

E342: Out of memory!  (allocating 4096 bytes)
"/<<PKGBUILDDIR>>/src/vim-nox/alloc.h" 21L, 485C

line    5:

E342: Out of memory!  (allocating 4096 bytes)
"/<<PKGBUILDDIR>>/src/vim-nox/alloc.h" 21L, 485C

line    8:

E342: Out of memory!  (allocating 1025 bytes)
"/<<PKGBUILDDIR>>/src/vim-nox/alloc.h" 21L, 485C

line   11:

E342: Out of memory!  (allocating 1025 bytes)
"/<<PKGBUILDDIR>>/src/vim-nox/alloc.h" 21L, 485C

line   14:

E342: Out of memory!  (allocating 1025 bytes)

Executing Test_qf_property()

Executing Test_qf_title()

Executing Test_quickfix_set_list_with_act()

Executing Test_quickfix_was_changed_by_autocmd()

error list 9 of 10; 1 errors      :setqflist()

W19: Deleting augroup that is still in use
error list 9 of 10; 1 errors      :setloclist()

error list 9 of 10; 1 errors      :setloclist()

W19: Deleting augroup that is still in use
Executing Test_setqflist()"Xtestfile" [New File]
(2 of 2):

(3 of 3):

(2 of 2):

(3 of 3):

Executing Test_setqflist_empty_middle()

test_quickfix.vim
"test_quickfix.vim" 1693L, 46351C

(1 of 49): func Test_clist()

test_quickfix.vim
(1 of 13): " With an empty list, command should return error

test_quickfix.vim
(1 of 2): " number of matches is unknown

error list 9 of 10; 13 errors     :vimgrep empty test_quickfix.vim

error list 8 of 10; 49 errors     :vimgrep Test_ test_quickfix.vim

error list 9 of 10; 0 errors      :setqflist()

error list 10 of 10; 2 errors     :vimgrep matches test_quickfix.vim

test_quickfix.vim
(1 of 49): func Test_clist()

test_quickfix.vim
(1 of 13): " With an empty list, command should return error

test_quickfix.vim
(1 of 2): " number of matches is unknown

error list 9 of 10; 13 errors     :lvimgrep empty test_quickfix.vim

error list 8 of 10; 49 errors     :lvimgrep Test_ test_quickfix.vim

error list 9 of 10; 0 errors      :setloclist()

error list 10 of 10; 2 errors     :lvimgrep matches test_quickfix.vim

Executing Test_setqflist_empty_older()

test_quickfix.vim
(1 of 24): \ 'Does anyone know what is the problem and how to correction it?',

test_quickfix.vim
(1 of 21): " Go back two lists

test_quickfix.vim
(1 of 7): " Add three quickfix/location lists

error list 8 of 10; 24 errors     :vimgrep one test_quickfix.vim

error list 9 of 10; 21 errors     :vimgrep two test_quickfix.vim

error list 10 of 10; 7 errors     :vimgrep three test_quickfix.vim

test_quickfix.vim
(1 of 24): \ 'Does anyone know what is the problem and how to correction it?',

test_quickfix.vim
(1 of 21): " Go back two lists

test_quickfix.vim
(1 of 7): " Add three quickfix/location lists

error list 8 of 10; 24 errors     :lvimgrep one test_quickfix.vim

error list 9 of 10; 21 errors     :lvimgrep two test_quickfix.vim

error list 10 of 10; 7 errors     :lvimgrep three test_quickfix.vim

Executing Test_switchbuf()
"Xqftestfile1" 20L, 131C220L, 131C1" line 1 of 20 --5%-- col 1

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" line 1 of 20 --5%-- col 1

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16

(1 of 6): Line5

(2 of 6): Line6

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C220L, 131C

(1 of 6): Line5

(2 of 6): Line6

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" 20L, 131C

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" 20L, 131C

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16

Already only one window
"Xqftestfile1" 20L, 131C220L, 131C320L, 131C

Executing Test_two_windows()
"one" [New File]two

Executing Test_vimgreptitle()

file
"file" [New File]

Cannot open file "file"
"test_quickfix.res" [New File][New] 0L, 0C written

Executed 42 tests
"messages" 376L, 9994C421L, 11297C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_ruby.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_ruby.vim" 34 lines, 820 characters

Executing Test_ruby_change_buffer()/^1

Executing Test_ruby_evaluate_dict()

{"a"=>"foo", "b"=>123}

Executing Test_ruby_evaluate_list()/^2
search hit BOTTOM, continuing at TOP
"test_ruby.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"421L, 11297C427L, 11443C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_search.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_search.vim" 296 lines, 8731 characters

Executing Test_search_cmdline()/foobar
/the
search hit BOTTOM, continuing at TOP/thes
/foobar
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
?the
?the
?the
?the
?the
?the
?the
?the
?the
?the
search hit TOP, continuing at BOTTOM/thes
/thes
/thes
/thes
/thei
/theis
/theiss
/themthe\>
Executing Test_search_cmdline2()/the
/the
/the
/the
/the
/the
/the
/foo
6 their
  7 the
  8 them
  9 these
 10 foobar
[No Name] [+]                                                                   " Test for the search command

func Test_search_cmdline()
  if !exists('+incsearch')
    return
  endif
  " need to disable char_avail,
  " so that expansion of commandline works
  call test_disable_char_avail(1)
  new
  call setline(1, ['  1', '  2 these', '  3 the', '  4 their', '  5 there', '  6their', '  7 the', '  8 them', '  9 these', ' 10 foobar'])
  " Test 1
  " CTRL-N / CTRL-P skips through the previous search history
  set noincsearch
  :1
test_search.vim                                                                 Executing Test_searchpair()

Executing Test_use_sub_pat()
"test_search.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"427L, 11443C434L, 11605C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_signs.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_signs.vim" 199 lines, 6383 characters

Executing Test_sign()
"foo" [New File]a  b  c xd                                                                                 ~
[No Name] [+]                                                                   " Test for signs

if !has('signs')
  finish
endif
test_signs.vim                                                                  ~                                                                               ~                                                                               ~                                                                               ~                                                                               foo                                                                               a
  b
x c
  d
[No Name] [+]                                                                     a  bx c  d  ~   "foo" [New file] --No lines in buffer--
"barF
Executing Test_sign_completion():sign ...define jump list place undefine unplace
:"sign define jump list place undefine unplace
:"
:sign define Sign ...icon= linehl= text= texthl=
:"sign define Sign icon= linehl= text= texthl=
:"
:sign define Sign linehl=Spell...Bad SpellCap SpellLocal SpellRare
:"sign define Sign linehl=SpellBad SpellCap SpellLocal SpellRare
:"
:sign define Sign icon=Xsig...nOne XsignTwo
:"sign define Sign icon=XsignOne XsignTwo
:"
:sign undefine ...Sign1 Sign2
:"sign undefine Sign1 Sign2
:"
:sign place 1 ...buffer= file= line= name=
:"sign place 1 buffer= file= line= name=
:"
:sign place 1 name=...Sign1 Sign2
:"sign place 1 name=Sign1 Sign2
:"
:sign unplace 1 ...buffer= file=
:"sign unplace 1 buffer= file=
:"
:sign list ...Sign1 Sign2
:"sign list Sign1 Sign2
:"
:sign jump 1 ...buffer= file=
:"sign jump 1 buffer= file=
:"

Executing Test_sign_delete_buffer()

Executing Test_sign_invalid_commands()

Executing Test_sign_undefine_still_placed()
"foobar" [New File]test_signs.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"434L, 11605C442L, 11818C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_smartindent.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_smartindent.vim" 14 lines, 376 characters

Executing Test_nosmartindent()/some
search hit BOTTOM, continuing at TOP"test_smartindent.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"442L, 11818C446L, 11893C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_startup.vim" 185 lines, 4581 characters

Executing Test_after_comes_later()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c1: /<<PKGBUILDDIR>>/src/vim-nox/testdir/Xbefore.vim

  2: /<<PKGBUILDDIR>>/src/vim-nox/testdir/Xhere/plugin/here.vim

  3: /<<PKGBUILDDIR>>/src/vim-nox/testdir/Xhere/pack/foo/start/fo

obar/plugin/foo.vim

  4: /<<PKGBUILDDIR>>/src/vim-nox/testdir/Xafter/plugin/later.vim

  5: /<<PKGBUILDDIR>>/src/vim-nox/testdir/Xafter.vim
[?25h[?0c

[?25l[?1cExecuting Test_compatible_args()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1cError detected while processing /<<PKGBUILDDIR>>/src/vim-nox/test

dir/Xafter.vim:

line    2:

E528: Must specify a ' value: viminfo+=nviminfo
[?25h[?0c
[?25h[?8c[?25h[?0c
[?25l[?1cExecuting Test_file_args()[?25h[?0c[?25h[?8c[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
3 files to edit
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
2 files to edit
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
4 files to edit

[?25l[?1cExecuting Test_help_arg()[?25h[?0c
[?25l[?1cExecuting Test_read_stdin()[?25h[?0c[?25l[?1c"-stdin-" 1 line, 10 characters[?25h[?8c[?25h[?0c"Xtestout" [New File] 1 line, 10 characters written
[?25h[?0c
Vim: Reading from stdin...

[?25l[?1cExecuting Test_startup_script()

Executing Test_startuptime()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
[?25l[?1c"test_startup.res" [New File][New] 0L, 0C written

Executed 7 tests
"messages"446L, 11893C456L, 12144C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_startup_utf8.vim" 64 lines, 1366 characters

Executing Test_read_fifo_utf8()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"/dev/fd/63" [readonly] 2 lines, 24 characters

"Xtestout" [New File] 2 lines, 24 characters written
[?25h[?0c

[?25l[?1cExecuting Test_read_stdin_utf8()[?25h[?0c[?25l[?1c"-stdin-" 2 lines, 24 characters[?25h[?8c[?25h[?0c"Xtestout" [New File] 2 lines, 24 characters written
[?25h[?0c
Vim: Reading from stdin...
[?25l[?1c"test_startup_utf8.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"456L, 12144C461L, 12255C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_stat.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_stat.vim" 64 lines, 1598 characters

Executing Test_checktime()
"Xtest.tmp" 1L, 13C[?25h[?0c[?25l[?1c1L, 25C

Executing Test_existent_directory()

Executing Test_existent_file()[?25h[?0c

[?25l[?1cExecuting Test_nonexistent_file()

Executing Test_win32_symlink_dir()
"test_stat.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"461L, 12255C469L, 12456C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_substitute.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_substitute.vim" 41 lines, 1151 characters

Executing Test_multiline_subst()

search hit BOTTOM, continuing at TOP
3 substitutions on 3 lines
3 substitutions on 2 lines
"test_substitute.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"469L, 12456C473L, 12532C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_syntax.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_syntax.vim" 164 lines, 4101 characters

Executing Test_syn_iskeyword()CREATE TABLE FOOBAR(
    DLTD_BY VARCHAR2(100)
);

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for syntax and syntax iskeyword option

if !has("syntax")
  finish
endif

func GetSyntaxItem(pat)
  let c = ''
  let a = ['a', getreg('a'), getregtype('a')]
  0
test_syntax.vim                                                                 
syntax iskeyword not set

syntax iskeyword @,48-57,_,192-255CREATE TABLE FOOBAR(
    DLTD_BY VARCHAR2(100)
);

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for syntax and syntax iskeyword option

if !has("syntax")
  finish
endif

func GetSyntaxItem(pat)
  let c = ''
  let a = ['a', getreg('a'), getregtype('a')]
  0
test_syntax.vim                                                                 
syntax iskeyword not set

Executing Test_syntax_after_reload()
"Xsomefile" [New File][New] 2L, 12C written
"other" [New File]Xsomefile" 2L, 12C

Executing Test_syntax_completion():syn ...case clear cluster conceal enable include iskeyword keyword list manual ma

tch off on region reset spell sync"syn case clear cluster conceal enable include iskeyword keyword list manual match off on region reset spell sync
:syn case ...ignore match
:"syn case ignore match
:"
:syn spell ...default notoplevel toplevel
:"syn spell default notoplevel toplevel
:"
:syn sync ...ccomment clear fromstart linebreaks= linecont lines= match maxlines=

minlines= region"syn sync ccomment clear fromstart linebreaks= linecont lines= match maxlines= minlines= region
:syn list ...Boolean Character ColorColumn Comment Conceal Conditional Constant Cu

rsorColumn CursorLine CursorLineNr Debug Define Delimiter DiffAdd DiffChange Dif

fDelete DiffText Directory EndOfBuffer Error ErrorMsg Exception Float FoldColumn

Folded Function Identifier Ignore IncSearch Include Keyword Label LineNr Macro

MatchParen ModeMsg MoreMsg NONE NonText Normal Number Operator Pmenu PmenuSbar P

menuSel PmenuThumb PreCondit PreProc Question Quote Repeat SYN Search SignColumn

Special SpecialChar SpecialComment SpecialKey SpellBad SpellCap SpellLocal Spel

lRare Statement StatusLine StatusLineNC StorageClass String Structure TabLine Ta

bLineFill TabLineSel Tag Title Todo Type Typedef Underlined VertSplit Visual Vis

ualNOS WarningMsg WildMenu luaBlock luaBraceError luaComment luaCond luaConstant

luaElse luaElseifThen luaError luaFor luaFunc luaFunction luaFunctionBlock luaI

fThen luaIn luaInnerComment luaLabel luaLoopBlock luaNumber luaOperator luaParen

luaParenError luaRepeat luaSpecial luaStatement luaString luaString2 luaTable l

uaTableBlock luaThenEnd luaTodo perlAnglesDQ perlAnglesSQ perlArrow perlAutoload

perlBraces perlBracesDQ perlBracesSQ perlBracketsDQ perlBracketsSQ perlCharacte

rperlComment perlConditional perlControl perlDATA perlElseIfError perlFakeGroup"syn list Boolean Character ColorColumn Comment Conceal Conditional Constant CursorColumn CursorLine CursorLineNr Debug Define Delimiter DiffAdd DiffChange Di
fDelete DiffText Directory EndOfBuffer Error ErrorMsg Exception Float FoldColumn Folded Function Identifier Ignore IncSearch Include Keyword Label LineNr Macro MatchParen ModeMsg MoreMsg NONE NonText Normal Number Operator Pmenu PmenuSbar PmenuSel PmenuThumb PreCondit PreProc Question Quote Repeat SYN Search SignColumn Special SpecialChar SpecialComment SpecialKey SpellBad SpellCap SpellLocal Spe
lRare Statement StatusLine StatusLineNC StorageClass String Structure TabLine TabLineFill TabLineSel Tag Title Todo Type Typedef Underlined VertSplit Visual VisualNOS WarningMsg WildMenu luaBlock luaBraceError luaComment luaCond luaConstant luaElse luaElseifThen luaError luaFor luaFunc luaFunction luaFunctionBlock luaIfThen luaIn luaInnerComment luaLabel luaLoopBlock luaNumber luaOperator luaParen luaParenError luaRepeat luaSpecial luaStatement luaString luaString2 luaTable luaTableBlock luaThenEnd luaTodo perlAnglesDQ perlAnglesSQ perlArrow perlAutoload perlBraces perlBracesDQ perlBracesSQ perlBracketsDQ perlBracketsSQ perlCharacter perlComment perlConditional perlControl perlDATA perlElseIfError perlFakeGrou
:syn match ...Boolean Character ColorColumn Comment Conceal Conditional Constant C
:"syn match Boolean Character ColorColumn Comment Conceal Conditional Constant 
:"

Executing Test_syntax_list()
"../memfile_test.c" [readonly] 143L, 3142C

--- Syntax items ---


--- Syntax items ---

"Xsomefile" [New File]

Executing Test_syntime()
"../memfile_test.c" [readonly] 143L, 3142C/* vi:set ts=8 sts=4 sw=4 noet:
 *
 * VIM - Vi IMproved    by Bram Moolenaar
 *
 * Do ":help uganda"  in Vim to read copying and usage conditions.
 * Do ":help credits" in Vim to see a list of people who contributed.
 * See README.txt for an overview of the Vim source code.
 */

/*
 * memfile_test.c: Unittests for memfile.c
 * Mostly by Ivan Krasilnikov.
 */

#undef NDEBUG
#include <assert.h>

/* Must include main.c because it contains much more than just main() */
#define NO_VIM_MAIN
#include "main.c"

/* This file has to be included because the tested functions are static */
#include "memfile.c"
"Xsomefile" [New File]
"test_syntax.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"473L, 12532C481L, 12729C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_system.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_system.vim" 92 lines, 2910 characters

Executing Test_System()
"Xdummy" [New File]
Executing Test_system_exmode()
"test_system.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"481L, 12729C486L, 12824C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_textobjects.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_textobjects.vim" 43 lines, 946 characters

Executing Test_inner_block_with_cpo_M_left_backslash()

Executing Test_inner_block_with_cpo_M_right_backslash()

Executing Test_inner_block_without_cpo_M()
"test_textobjects.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"486L, 12824C492L, 13023C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_undo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_undo.vim" 265 lines, 6936 characters

Executing Test_U_command()Executing Test_global_local_undolevels()
"one" [New File]
6 fewer lines; before #8  0 seconds ago
"two" [New File]
3 fewer lines; before #11  0 seconds ago
"three" [New File]
Executing Test_insert_expr()=setline('.','1234')
1 line less; before #4  0 seconds ago3=setline('.','1234')
1 line less; before #7  0 seconds ago=string(123)
1 line less; before #9  0 seconds ago

Executing Test_undo_del_chars()
1 change; before #3  0 seconds ago21

1 change; before #6  1 seconds ago5
4s; after #3
1; before #21

3 changes; after #6  1 seconds ago3 changes; before #7  0 seconds ago

3 changes; before #1  3 seconds ago

3 changes; after #6  3 seconds ago

3 changes; after #9  0 seconds ago

Executing Test_undo_write()
"Xtest" [New File]"Xtest" [New] 1L, 12C written"Xtest" 3L, 20C written1 line less; before #4  0 seconds ago

2 fewer lines; before #2  0 seconds ago

1 line less; before #1  0 seconds ago

1 more line; after #1  0 seconds ago

2 more lines; after #3  0 seconds ago

1 more line; after #4  0 seconds ago

Executing Test_undofile_earlier()
"Xfile" [New File]"Xfile" [New] 3L, 14C written3L, 14C

Finished reading undo file Xundofile

3 fewer lines; before #1  2017/03/08 18:54:47

Executing Test_undojoin()1 line less; before #2  0 seconds ago2 fewer lines; before #3  0 seconds ago

Executing Test_undolist()1 change; before #2  0 seconds agoExecuting Test_undotree()
1 change; before #2  0 seconds ago
"Xtest" [New] 1L, 4C written
"test_undo.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"492L, 13023C504L, 13330C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_usercommands.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_usercommands.vim" 104 lines, 2527 characters

Executing Test_Ambiguous()

Executing Test_CmdUndefined()

Executing Test_cmdmods()
"test_usercommands.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"504L, 13330C510L, 13458C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viminfo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_viminfo.vim" 515 lines, 13496 characters

Executing Test_cmdline_history()

Executing Test_cmdline_history_order()

Executing Test_global_vars()

Executing Test_viminfo_bad_syntax()

Executing Test_viminfo_encoding()
"Xviminfo" [converted] 73L, 3414C

Executing Test_viminfo_file_mark_tabclose()
"Xtestfileintab" [New File]viminfo" 83L, 3589C

Executing Test_viminfo_file_mark_zero_time()

Executing Test_viminfo_file_marks()
"ten" [New File]again" [New File]
"thirty" [New File]
"twen
"again" [New File]fourty" [New File]
"Xviminfo" 90L, 3387C

Executing Test_viminfo_jumplist()
"testbuf" [New File]/20
/30
/last pos
/15
/last pos
?30
/15
/last pos
?30
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here

Executing Test_viminfo_marks()
"bufa" [New File]b

Executing Test_viminfo_oldfiles()

Executing Test_viminfo_read_and_write()

Executing Test_viminfo_registers()
"test_viminfo.res" [New File][New] 0L, 0C written

Executed 13 tests
"messages" 510L, 13458C526L, 13970C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viml.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_viml.vim" 1316 lines, 31904 characters

Error detected while processing /<<PKGBUILDDIR>>/src/vim-nox/test

dir/test_viml.vim:

line  432:

E492: Not an editor command: ^Iasdf

line  444:

E492: Not an editor command: ^Iasdf

line  452:

E492: Not an editor command: asdf

line  455:

E492: Not an editor command: asdf | Xpath 'p'

Error detected while processing function T8_F:

line    5:

E492: Not an editor command: ^I    asdf

line    7:

E492: Not an editor command: ^I    asdf | Xpath 'd'

line   19:

E492: Not an editor command: ^I    asdf

line   21:

E492: Not an editor command: ^I    asdf | Xpath 'l'

line   29:

E121: Undefined variable: novar

E15: Invalid expression: novar^I^I" returns (default return value 0)

Error detected while processing function T8_G:

line    5:

E492: Not an editor command: ^I    asdf^I^I" returns -1

Error detected while processing function T8_H:

line    5:

E492: Not an editor command: ^I    asdf^I^I" returns -1

Error detected while processing function F[2]..G[2]..H[2]..I:

line    2:

E492: Not an editor command:     asdf^I^I" error

Error detected while processing /<<PKGBUILDDIR>>/src/vim-nox/test

dir/test_viml.vim:

line  663:

E15: Invalid expression: | strlen("\"") | Xpath 'j'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'j'

line  673:

E15: Invalid expression: | strlen("\"") | Xpath 'n'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'n'

line  682:

E15: Invalid expression: | strlen("\"") | Xpath 'r'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'r'

line  717:

E492: Not an editor command:     asdf^I^I" error

1
line  787:

E492: Not an editor command:     asdf^I^I" error

line  794:

E492: Not an editor command:     asdf^I^I" error

line  817:

E121: Undefined variable: asdf

E15: Invalid expression: asdf

line  828:

E121: Undefined variable: asdf

E15: Invalid expression: asdf | Xpath 'f' | endwhile | Xpath 'g'

Error detected while processing function F:

line    8:

E121: Undefined variable: g:boolvar

E15: Invalid expression: g:boolvar^I" possibly undefined

E121: Undefined variable: g:boolvar

E15: Invalid expression: g:boolvar | Xpath 'd' | else | Xpath 'e' | endif

Executing Test_arg_abort()

Executing Test_braces_skipped()

Executing Test_curlies()

Executing Test_defining_functions()

Executing Test_echo_and_string()

foo bar

'foo bar'

-1.2

-1.2

string

function('string')

{'a': {...}}

{'a': {...}}

[[...]]

[[...]]

[{}, {}, {}]

[{}, {}, {}]

{'a': {}, 'b': {}}

{'a': {}, 'b': {}}

[[], [], []]

[[], [], []]

{'a': [], 'b': []}

{'a': [], 'b': []}

[{'one': 'yes', 'two': 'yes', 'three': 'yes'}, {...}, {...}]

[{'one': 'yes', 'two': 'yes', 'three': 'yes'}, {'one': 'yes', 'two': 'yes', 'th

ree': 'yes'}, {'one': 'yes', 'two': 'yes', 'three': 'yes'}]

{'a': {'one': 'yes', 'two': 'yes', 'three': 'yes'}, 'b': {...}}

{'a': {'one': 'yes', 'two': 'yes', 'three': 'yes'}, 'b': {'one': 'yes', 'two':

'yes', 'three': 'yes'}}

[[1, 2, 3], [...], [...]]

[[1, 2, 3], [1, 2, 3], [1, 2, 3]]

{'a': [1, 2, 3], 'b': [...]}

{'a': [1, 2, 3], 'b': [1, 2, 3]}

Executing Test_endwhile_function()

Executing Test_endwhile_script()

   function T1_F()

1      Xpath 'a'

2      let first = 1

3      while 1

4Xpath 'b'

5if first

6Xpath 'c'

7let first = 0

8break

9else

10Xpath 'd'

11return

12endif

13     endwhile

   endfunction"/tmp/vmHlWdd/0" [noeol] 16L, 299C
13 substitutions on 13 lines
Pattern not found: ^\s*$
"/tmp/vmHlWdd/0" 13L, 248C written
"test_viml.vim" 1316L, 31904C
   function T1_G()
1      Xpath 'h'
2      let first = 1
3      while 1
4Xpath 'i'
5if first
6Xpath 'j'
7let first = 0
8break
9else
10Xpath 'k'
11return

12endif

13if 1    " unmatched :if

14     endwhile

   endfunction"/tmp/vmHlWdd/1" [noeol] 17L, 334C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vmHlWdd/1" 14L, 281C written
"test_viml.vim" 1316L, 31904C
Executing Test_error_in_function()
Executing Test_error_in_script()
Executing Test_expr_parsing()
Executing Test_finish()
   function T4_F()
1      if 1
2Xpath 'a'
3let loops = 3
4while loops > 0"    3:  2:     1:
5Xpath 'b' . loops
6if (loops == 2)
7Xpath 'c' . loops
8return

9Xpath 'd' . loops

10endif

11Xpath 'e' . loops

12let loops = loops - 1

13endwhile

14Xpath 'f'

15     else

16Xpath 'g'

17     endif

   endfunction"/tmp/vmHlWdd/2" [noeol] 20L, 504C
17 substitutions on 17 lines
Pattern not found: ^\s*$
"/tmp/vmHlWdd/2" 17L, 445C written
"test_viml.vim" 1316L, 31904C
Executing Test_func_abort()
Executing Test_if_bar_fail()
Executing Test_if_fail()
Executing Test_if_while()
Executing Test_num64()
Executing Test_return()
Executing Test_script_lines()
Executing Test_skip()
Executing Test_type()
Executing Test_while_fail()
"test_viml.res" [New File][New] 0L, 0C written
Executed 21 tests
"messages" 526L, 13970C550L, 14609C written[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_visual.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_visual.vim" 25 lines, 506 characters

Executing Test_block_shift_multibyte()

Executing Test_dotregister_paste()"test_visual.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"550L, 14609C555L, 14723C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_window_id.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_window_id.vim" 103 lines, 2714 characters

Executing Test_win_getid()
"one" [New File]twohree" [New File]
"four" [New File]ive

Executing Test_win_getid_curtab()
"X" [New File]test_window_id.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"555L, 14723C560L, 14827C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_writefile.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_writefile.vim" 16 lines, 490 characters

Executing Test_WriteFile()
"test_writefile.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"560L, 14827C564L, 14896C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_latin.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot_latin.vim" 7 lines, 280 characters

Executing Test_eow_with_optional()

Executing Test_equivalence_re1()

Executing Test_equivalence_re2()

Executing Test_nested_backrefs()

Executing Test_recursive_substitute()
"test_alot_latin.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"[converted] 564L, 14896C[converted] 572L, 15112C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot_utf8.vim" 11 lines, 440 characters[?25h[?0cExecuting Test_classes_re1()

Executing Test_classes_re2()

Executing Test_equivalence_re1()

Executing Test_equivalence_re2()

Executing Test_match_using_multibyte_conceal_char()#ˑThisˑisˑaˑTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " A series of tests that can run in one Vim invocation.
" This makes testing go faster, since Vim doesn't need to restart.

" These tests use utf8 'encoding'.  Setting 'encoding' is already done in
" runtest.vim.  Checking for the multi_byte feature is in the individual
" files, so that they can be run by themselves.

source test_expr_utf8.vim
source test_matchadd_conceal_utf8.vim
source test_regexp_utf8.vim
test_alot_utf8.vim                                                              Executing Test_source_latin()
"Xscript"[New] 2L, 44C written
Executing Test_source_utf8()"Xscript"[New] 2L, 42C written:%s/àx/--à1234--/g
:%s/Àx/--À1234--/g

Executing Test_strcharpart()

Executing Test_strgetchar()
"test_alot_utf8.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"572L, 15112C584L, 15447C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot.vim" 48 lines, 1233 characters

Executing Test_BufEnter()
"NewFile" [New File]Xdir" is a directory

Executing Test_abbreviation()Executing Test_abs()

Executing Test_acos()

Executing Test_asin()

Executing Test_atan()

Executing Test_atan2()

Executing Test_augroup_deleted()

W19: Deleting augroup that is still in use
Executing Test_augroup_warning()
W19: Deleting augroup that is still in useentering

Executing Test_auto_partial_rebind()

Executing Test_autocmd_bufunload_avoiding_SEGV_01()
"aa.txt" [New File]
"bb.txt" [New File]

Executing Test_autocmd_bufunload_avoiding_SEGV_02()
"a.txt" [New File]
"test_alot.vim" 48L, 1233C

Executing Test_autocmd_bufunload_with_tabnext()

Executing Test_autocmd_bufwinleave_with_tabfirst()
"a.txt" [New File]
Executing Test_bind_in_python()

Executing Test_break_undo()Executing Test_bufunload()

Executing Test_cancel_ptjump()

Already only one window:ptjump word
  # pri kind tagfile

  1 Fwordfile2

cmd2

  2 Fwordfile1

cmd1

Type number and <Enter> (empty cancels): 
"help.txt" [readonly] 225L, 8437C

Executing Test_caught_error_in_statusline()source test_messages.vim
source test_partial.vim
source test_popup.vim
source test_reltime.vim
source test_searchpos.vim
source test_set.vim
source test_sort.vim
source test_statusline.vim
source test_syn_attr.vim
source test_tabline.vim
source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis here
new line here

                                                                                Executing Test_caught_error_in_tabline()                                                                                source test_partial.vim
source test_popup.vim
source test_reltime.vim
source test_searchpos.vim
source test_set.vim
source test_sort.vim
source test_statusline.vim
source test_syn_attr.vim
source test_tabline.vim
source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis here
new line here

test_alot.vim                                                                   Executing Test_ceil()

Executing Test_closure_counter()

Executing Test_closure_refcount()

Executing Test_closure_unlet()

Executing Test_color_names()

Executing Test_compare_null_dict()

Executing Test_compare_partials()

Executing Test_compl_vim_cmds_after_register_expr()=s:test_func()
 AAAAA_Group             BufAdd                  BufCreate               BufDelete               BufEnter                BufFilePost             BufFilePre              BufHidden               BufLeave                BufNew                  BufNewFile              BufRead                 BufReadCmd              BufReadPost             BufReadPre              BufUnload               BufWinEnter             BufWinLeave             BufWipeout              BufWrite                BufWriteCmd             BufWritePost           Executing Test_complete_no_undo()=UndoComplete()
xxx
aaa
yyy
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   test_tabpage.vimtest_tagcase.vimtest_tagjump.vimtest_timers.vimtest_true_false.vimtest_unlet.vimsource test_window_cmd.vimsource test_options.vime hereTest3: text with a (parenthesis here
test_alot.vim                                                                   January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       1 change; before #2  0 seconds ago=UndoComplete()

bbb
yyy~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
source test_tab
source test_tagJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        1 change; before #4  0 seconds ago=UndoComplete()

yyy~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
source test_tab
source test_tagJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December           
January

~              
~              
~              
~              
~              
~              
~              
~              February       
March          
April          
May            
June           
July           
August         
September      -- INSERT --January        1 change; before #5  0 seconds ago

Executing Test_completefunc_opens_new_window_one()

search hit BOTTOM, continuing at TOPExecuting Test_completefunc_opens_new_window_two()

search hit BOTTOM, continuing at TOPExecuting Test_completefunc_with_scratch_buffer()January        
February
March    
April  
May     January        
February       info2-1
2-2
2-3

February
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis hereJanuary        
February       
March          
April          
May            

[Scratch]                                                                       test_alot.vim                                                                   [Scratch] [Preview]                                                             [Scratch]                                                                       
March~              
~              
~              
~              
~              January        
February       
March          
April          
May            3
3
3[Scratch]                                                                       [Scratch]                                                                       February       
March          
April
~              
~              
~              
~              
~              January        
February       
March          
April          
May            4
4
4[Scratch]                                                                       [Scratch]                                                                       March          
April          Executing Test_completefunc_works()

search hit BOTTOM, continuing at TOPthreedef       
threeDEF       threedef       
threeDEF       
threeDEF
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~              
~              
~              
~              
~              threedef       
threeDEF       Executing Test_completion_ctrl_e_without_autowrap()Executing Test_cos()

Executing Test_cosh()

Executing Test_cursorhold_insert()[?25h[?0c[?25l[?1cExecuting Test_cursorhold_insert_ctrl_x()[?25h[?0c[?25l[?1cExecuting Test_cursorline_keep_col()

Executing Test_curswant_with_autocommand()
Executing Test_cycle_partial_job()

Executing Test_cyclic_dict_arg()

Executing Test_cyclic_list_arg()

Executing Test_delete_myself()[?25h[?0c

[?25l[?1cExecuting Test_dict()

Executing Test_dictionary()

Executing Test_dir_delete()

Executing Test_early_bar()

Executing Test_empty_buffer()

Executing Test_equal()

Executing Test_ex_undo()
"ex-undo" [New File]
1 line less; before #3  0 seconds ago

1 line less; after #1  0 seconds ago

2 fewer lines; before #1  0 seconds ago

Executing Test_execute_list()

Executing Test_execute_string()

this

theend

something

Executing Test_existing()

Executing Test_exp()

Executing Test_expand()

Executing Test_feedkeys_x_with_empty_string()Executing Test_file_delete()
"Xfile" [New File][New] 2L, 4C written

Executing Test_file_perm()

Executing Test_fileformat_after_bw()
"a.txt" [New File]ex-undo" [New File]

Executing Test_filetype_valid()

Executing Test_filter()
"Xdoesnotmatch" [New File]
"Xwillmatch" [New File]ex-undo" [New File]
Executing Test_filter_cmd_completion():filter ^I"=execute('let cmdline = getcmdline()')
:filter ^I:filter pat^I"=execute('let cmdline = getcmdline()')
:filter pat^I:filter /pat^I"=execute('let cmdline = getcmdline()')
:filter /pat^I:filter /pat/^I"=execute('let cmdline = getcmdline()')
:filter /pat/^I:filter pat pri...nt"=execute('let cmdline = getcmdline()')
:filter pat print:filter /pat/ pri...nt"=execute('let cmdline = getcmdline()')
:filter /pat/ print:filter #pat# pri...nt"=execute('let cmdline = getcmdline()')
:filter #pat# printExecuting Test_filter_fails()

Executing Test_filter_map_dict_expr_funcref()

Executing Test_filter_map_dict_expr_string()

Executing Test_filter_map_list_expr_funcref()

Executing Test_filter_map_list_expr_string()

Executing Test_floor()

Executing Test_fmod()

Executing Test_fnamemodify()
"test_alot.vim" 48L, 1233C

Executing Test_func_unref()

Executing Test_funcref()

0
Executing Test_function_in_dict()

Executing Test_function_with_funcref()

Executing Test_gD()

Executing Test_gD_char()

Executing Test_gD_comment()

Executing Test_gD_inline_comment()

Executing Test_gD_string()

Executing Test_gD_string_same_line()

Executing Test_gD_too()

Executing Test_gd()

Executing Test_gd_comment()

Executing Test_gd_comment_in_string()

Executing Test_gd_inline_comment()

Executing Test_gd_inline_comment_body()

Executing Test_gd_inline_comment_only()

Executing Test_gd_kr_style()

Executing Test_gd_missing_braces()

Executing Test_gd_not_local()

Executing Test_gd_string()

Executing Test_gd_string_in_comment()

Executing Test_gd_string_only()

Executing Test_gd_trailing_comment()

Executing Test_gd_trailing_multiline_comment()

Executing Test_get_partial_items()

Executing Test_getreg_empty_list()

Executing Test_global_local_lispwords()

Executing Test_help_complete()

Executing Test_help_respect_current_file_lang()
"testdoc.abx" [readonly] 2L, 25Cja[readonly] 2L, 25Cline 1 of 2 --50%-- col 2-9txt[readonly] 2L, 25C
Executing Test_help_tagjump()"help.txt" [readonly] 225L, 8437C
"options.txt" [readonly] 8739L, 370255Cline 7652 of 8739 --87%-- col 7-49
"eval.txt" [readonly][converted] 10613L, 408230C line 2406 of 10613 --22%-- col 1
"options.txt" [readonly] line 1320 of 8739 --15%-- col 4-25
"cmdline[readonly] 1147L, 46822C

Executing Test_if()

Executing Test_info()

Executing Test_invalid()

Executing Test_invalid_submatch()

Executing Test_isnan()

Executing Test_join_with_count()

Executing Test_keymap_valid()

Executing Test_keyword_jump()
"Xtestfile" 9L, 141C

Executing Test_lambda_call_lambda_from_lambda()

Executing Test_lambda_capture_by_reference()

Executing Test_lambda_circular_reference()

Executing Test_lambda_closure_counter()

Executing Test_lambda_combination()

Executing Test_lambda_delfunc()

Executing Test_lambda_do_not_share_local_variable()

Executing Test_lambda_fails()

Executing Test_lambda_feature()

Executing Test_lambda_refer_local_variable_from_other_scope()

Executing Test_lambda_scope()

Executing Test_lambda_share_scope()

Executing Test_lambda_side_effect()

Executing Test_lambda_with_a_var()

Executing Test_lambda_with_filter()

Executing Test_lambda_with_map()

Executing Test_lambda_with_partial()

Executing Test_lambda_with_sort()

Executing Test_lambda_with_timer()[?25h[?0c

[?25l[?1c1[?25h[?0c
[?25l[?1c2[?25h[?0c
[?25l[?1c3[?25h[?0c
[?25l[?1c4[?25h[?0c
[?25l[?1c5[?25h[?0c
[?25l[?1c6[?25h[?0c
[?25l[?1c7[?25h[?0c
[?25l[?1c8[?25h[?0c
[?25l[?1cExecuting Test_load_menu()

Executing Test_log()

Executing Test_log10()

Executing Test_loop_over_null_list()

Executing Test_map_ctrl_c_insert()Executing Test_map_ctrl_c_visual():'<,'>$put ='vmap works'

Executing Test_map_cursor()1 line less; before #8  0 seconds ago

Executing Test_map_feedkeys():call feedkeys(".", "in")
:call feedkeys(".", "in")
Executing Test_map_langmap():call append(line('$'), '+')

Executing Test_map_meta_quotes()Executing Test_match()

abcdefghijklmnopq
TEST2: CTRL-C |<ctrl-c>A|
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   abcdΣabcdef
TEST2: CTRL-C |<ctrl-c>A|
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchaddpos()12345
NP
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   12345 
NP 
vmap works 
 
Test1: text with a (here some more text) 
Test1: text with a (here some more text) 
 
 
Test2: text wit a (here some more text [und undo]) 
fooc d 
fooc d 
+ 
+ 
bbbb 
bbbb 
cccc 
bbbb 
+ 
-foo- 
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   012345 
NP 
vmap works 
 
Test1: text with a (here some more text) 
Test1: text with a (here some more text) 
 
 
Test2: text wit a (here some more text [und undo]) 
fooc d 
fooc d 
+ 
+ 
bbbb 
bbbb 
cccc 
bbbb 
+ 
-foo- 
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   1234567890
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   1234567890
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchaddpos_using_negative_priority()x
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   x
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchstrpos()

Executing Test_max_min_errors()

Executing Test_messages()

hello0x
-1 match priority
vmap works   hello1234567898

hello9xhello9
Executing Test_missing_attr()

Executing Test_move_cursor()

Executing Test_named_function_closure()

Executing Test_no_type_checking()

Executing Test_noinsert_complete()=s:complTest1()
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       x
-1 match priority
vmap worksTest1: text with a (here some more text)
Test1: text with a (here some more text)Test2: text wit a (here some more text [und undo])fooc d[No Name]                                                                       source         
soundfold      ndfold=s:complTest2()

~              
~              source         
soundfold      Executing Test_non_zero_arg()

Executing Test_not_existing()

Executing Test_not_lamda()

Executing Test_omnifunc_with_check()

search hit BOTTOM, continuing at TOPfour1
~                                                                               ~                                                                               ~                                                                               [+]four1          
four2          2
~              
~              four1          
four2          four1          
four2          
~              
~              four1          
four2          
four3          
four4          
four5          
four6          search hit BOTTOM, continuing at TOP1
~              
~              
~              
~              
~              
~              four1          
four2          2
~              
~              four1          
four2          four1          
four2          3
~              
~              four1          
four2          
four3          
four4          
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          search hit BOTTOM, continuing at TOP1
~              
~              
~              
~              
~              
~              four1          
four2          2
~              
~              four1          
four2          four1          
four2          3
~              
~              four1          
four2          
four3          
four4          four3          
four4          
four5          
four6          4
~              
~              
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          5
~              
~              
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          four4          
four5          Executing Test_oneshot()[?25h[?0c

[?25l[?1cExecuting Test_option_value()

Executing Test_options()
"option-window" [New File]

Executing Test_partial_args()

Executing Test_partial_dict()

Executing Test_partial_exists()

Executing Test_partial_implicit()

Executing Test_partial_string()

Executing Test_path_keep_commas()

Executing Test_paused()[?25h[?0c

[?25l[?1cExecuting Test_popup_complete()=ListMonths()

June
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               June           
July           -- INSERT --June           
July           =ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       

February       
March          


March          
April          April          
May            May            
June           June           
July           July           
August         =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
June           
July           =ListMonths()

~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

June~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJune           
July           ~              
~              June           
July           -- INSERT --June           
July=ListMonths()
ne
~              
~              June           
July           ~              
~              June           
July           -- INSERT --June           
Julyly
~              
~              July           
July           =ListMonths()
ne
~              
June           
July           ~              
~              June           
July           -- INSERT --June           
July=ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December        
February
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
February       =ListMonths()

January~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
June           
July           
June~              
~              
~              January        
June           
July           -- INSERT --January        
June           ly
~              
~              
~              January        
June           
July           June           
July           
J~              
~              
~              January        
June           
July           
July           =ListMonths()

January
~              
~              
~              January        
June           
July           
June~              
~              
~              January        
June           
July           -- INSERT --January        
June           ly
~              
~              
~              January        
June           
July           June           
July           
J~              
~              
~              January        
June           
July           
July                 
January
~              
~              
~              January        
June           
July           January        =ListMonths()

~              
~              
~              January        
June           
July           =ListMonths()

June~              
~              
~              June           
July           =ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       

February       December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       December       October        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
December
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       
Nov
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
October~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
October        
November         
September
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        September      
October        =ListMonths()

January~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       November       
December       October        
November       September      
October        =ListMonths()
=ListMonths()
December2015
December~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xDecember       =ListMonths()

March~                                                                               ~              March          
May            y~              
~              March          
May            -- INSERT --March          
May              rch
~              
~              March          
May            March          
May            =ListMonths()
March~              
March          
May            y~              
~              March          
May            -- INSERT --March          
May              rch
~              
~              March          
May            March          
May            =ListMonths()

March
~                                                                               ~              
~              March          
May            =ListMonths()
M~              
March          
May            =ListMonths()
M~              
March          
May            Executing Test_popup_complete2()=ListMonths()
Executing Test_popup_completion_insertmode()=ListMonths()
~                                                                               ~                                                                               ~              
~                 January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
February
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
February       
March~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        February       
March          
April
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        March          
April          
May~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        April          
May             
June
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        May            
June           ly
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        June           
July             
August
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        July           
August            
September
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        August         
September      
October~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        September      
October         
November
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
October        
November       
Dec
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
December
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       Executing Test_pow()

Executing Test_printf_64bit()

Executing Test_printf_errors()

0
0
1
0
0
Executing Test_printf_float()

0.000000

Executing Test_printf_misc()

Executing Test_printf_spec_b()

Executing Test_printf_spec_s()

Executing Test_ptag_with_notagstack()

Executing Test_read_only()

Executing Test_recursive_delete()
"Xdir1/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written

Executing Test_redefine_dict_func()

Executing Test_ref_job_partial_dict()

Executing Test_reltime()[?25h[?0c

[?25l[?1cExecuting Test_repeat_many()[?25h[?0c

[?25l[?1cExecuting Test_repeat_three()[?25h[?0c

[?25l[?1cExecuting Test_retain_partial()[?25h[?0c

[?25l[?1cExecuting Test_round()

Executing Test_script_function_in_dict()

Executing Test_script_function_in_dict_arg()

Executing Test_searchpos()
"one" [New File]
Executing Test_set_add()

Executing Test_set_backslash()

Executing Test_set_reg_null_list()

Executing Test_set_tagcase()

Executing Test_setmatches()

Executing Test_signcolumn()

Executing Test_sin()

Executing Test_sinh()

Executing Test_sort_default()

Executing Test_sort_float()

Executing Test_sort_nested()

Executing Test_sort_numbers()

Executing Test_sort_numeric()

Executing Test_sort_strings()

Executing Test_special_char()

Executing Test_sqrt()

Executing Test_static_tagjump()
"Xfile1" [New File][New] 3L, 18C written

Executing Test_statusline_will_be_disabled_with_error()x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                                                                                                               Executing Test_stop_all_in_callback()[?25h[?0c

[?25l[?1cExecuting Test_stop_in_callback()[?25h[?0c

[?25l[?1cExecuting Test_stopall()

Executing Test_str2float()

Executing Test_str2nr()

Executing Test_strcharpart()

Executing Test_strgetchar()

Executing Test_substitute_expr()

Executing Test_substitute_expr_arg()

Executing Test_symlink_delete()
"Xfile" [New File][New] 2L, 4C written[?25h[?0c
[?25l[?1cExecuting Test_symlink_dir_delete()[?25h[?0c
[?25l[?1cExecuting Test_symlink_recursive_delete()
"Xdir3/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written
"Xdir4/Xfile" [New] 2L, 4C written[?25h[?0c
[?25l[?1cExecuting Test_syntax_valid()

Executing Test_tabline_will_be_disabled_with_error()                                                                                x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               [No Name]                                                                       Executing Test_tabnext_on_buf_unload1()

Executing Test_tabnext_on_buf_unload2()

"x" [Not edited] --No lines in buffer--
"y" [New File]
Executing Test_tabpage()
"Xtestfile" [New File]
2 fewer lines; before #1  0 seconds ago

Executing Test_tabpage_with_autocmd()

Executing Test_tabpage_with_tab_modifier()
"help.txt" [readonly] line 1 of 225 --0%-- col 1

"ex-undo" [New File]

Executing Test_tagcase()
"Xtext" [New File]
Executing Test_tan()

Executing Test_tanh()

Executing Test_thesaurus()

Executing Test_three_windows()
"Xtestje1" [New File][New] 1L, 8C written2" [New File][New] 1L, 8C written3" [New File][New] 1L, 8C written11L, 8C

"Xtestje3" 1L, 8C21L, 8C11L, 8C

"Xanother" [New File]
"Xtestje11L, 8C
"Xanother" [New File]

Already only one window
"help.txt" [readonly] 225L, 8437C

Executing Test_tostring()

Executing Test_true_false_arg()[?25h[?0c
[?25l[?1c"colored" [New File]

Executing Test_trunc()

Executing Test_valid()

Executing Test_version()

Executing Test_vim_did_enter()

Executing Test_whichwrap()

Executing Test_win_tab_autocmd()

"somefile" [New File]

Executing Test_window_cmd_cmdwin_with_vsp()

Executing Test_window_cmd_ls0_with_split()

Executing Test_window_cmd_wincmd_gf()
"test_gf.txt" 0L, 0C
W19: Deleting augroup that is still in use
Executing Test_with_directories()"Xdir1/file" [New File]
"Xdir1/file" [New] 2L, 4C written

"Xdir3/Xdir4/file" [New] 2L, 4C written2L, 4C
"Xdir?/*/nofile" [New DIRECTORY]
"foo" [New File]Executing Test_with_partial_callback()[?25h[?0c[?25l[?1ctilde()rong_arguments()
"test_alot.res" [New File]
"test_alot.res" [New] 0L, 0C written
Executed 244 tests"messages" 584L, 15447C

"messages" 831L, 23451C written
[?25h[?0c


From test_arglist.vim:
Executing Test_argadd()
Executing Test_argc()
Executing Test_argdelete()
Executing Test_argedit()
Executing Test_argidx()
Executing Test_arglist_autocmd()
Executing Test_arglistid()
Executing Test_argpos()
Executing Test_argument()
Executing Test_argv()
Executing Test_zero_argadd()
Executed 11 tests

From test_assert.vim:
Executing Test_assert_equal()
Executing Test_assert_exception()
Executing Test_assert_fail_fails()
Executing Test_assert_false()
Executing Test_assert_inrange()
Executing Test_assert_notequal()
Executing Test_assert_true()
Executing Test_compare_fail()
Executing Test_match()
Executing Test_notmatch()
Executing Test_user_is_happy()
Executing Test_wrong_error_type()
Executed 12 tests

From test_autochdir.vim:
Executing Test_set_filename()
Executed 1 test

From test_backspace_opt.vim:
Executing Test_backspace_option()
Executed 1 test

From test_breakindent.vim:
Executing Test_breakindent01()
Executing Test_breakindent02()
Executing Test_breakindent03()
Executing Test_breakindent04()
Executing Test_breakindent05()
Executing Test_breakindent06()
Executing Test_breakindent07()
Executing Test_breakindent07a()
Executing Test_breakindent08()
Executing Test_breakindent08a()
Executing Test_breakindent09()
Executing Test_breakindent10()
Executing Test_breakindent11()
Executing Test_breakindent12()
Executing Test_breakindent13()
Executing Test_breakindent14()
Executing Test_breakindent15()
Executing Test_breakindent16()
Executed 18 tests

From test_bufwintabinfo.vim:
Executing Test_get_buf_options()
Executing Test_get_win_options()
Executing Test_getbufwintabinfo()
Executed 3 tests

From test_cdo.vim:
Executing Test_cdo()
Executing Test_ldo()
Executed 2 tests

From test_channel.vim:
Executed 0 test

From test_charsearch.vim:
Executing Test_charsearch()
Executing Test_search_cmds()
Executed 2 tests

From test_cmdline.vim:
Executing Test_complete_list()
Executing Test_complete_tab()
Executing Test_complete_wildmenu()
Executing Test_expand_star_star()
Executing Test_getcompletion()
Executing Test_illegal_address()
Executing Test_paste_in_cmdline()
Executing Test_remove_char_in_cmdline()
Executed 8 tests

From test_command_count.vim:
Executing Test_command_count_0()
Executing Test_command_count_1()
Executing Test_command_count_2()
Executing Test_command_count_3()
Executing Test_command_count_4()
Executed 5 tests

From test_crypt.vim:
Executing Test_crypt_blowfish()
Executing Test_crypt_blowfish2()
Executing Test_crypt_zip()
Executing Test_head_only_2()
Executing Test_head_only_3()
Executing Test_uncrypt_blowfish()
Executing Test_uncrypt_blowfish2()
Executing Test_uncrypt_zip()
Executed 8 tests

From test_cscope.vim:
Executed 0 test

From test_diffmode.vim:
Executing Test_diff_fold_sync()
Executing Test_diffget_diffput()
Executing Test_diffoff()
Executing Test_filler_lines()
Executing Test_setting_cursor()
Executing Test_vert_split()
Executed 6 tests

From test_digraph.vim:
Executing Test_digraph_cmndline()
Executing Test_digraphs()
Executing Test_digraphs_option()
Executing Test_digraphs_output()
Executing Test_loadkeymap()
Executed 5 tests

From test_display.vim:
Executing Test_display_foldcolumn()
Executed 1 test

From test_farsi.vim:
Executing Test_farsi_map()
Executing Test_farsi_toggle()
Executed 2 tests

From test_fnameescape.vim:
Executing Test_fnameescape()
Executed 1 test

From test_fold.vim:
Executing Test_address_fold()
Executing Test_indent_fold()
Executing Test_indent_fold2()
Executed 3 tests

From test_gf.vim:
Executing Test_gf_url()
Executed 1 test

From test_gn.vim:
Executing Test_gn_command()
Executed 1 test

From test_gui.vim:
Executed 0 test

From test_hardcopy.vim:
Executing Test_printheader_parsing()
Executing Test_printmbfont_parsing()
Executing Test_printoptions_parsing()
Executing Test_with_syntax()
Executed 4 tests

From test_hide.vim:
Executing Test_hide()
Executed 1 test

From test_history.vim:
Executing Test_History()
Executing Test_Search_history_window()
Executed 2 tests

From test_hlsearch.vim:
Executing Test_hlsearch()
Executed 1 test

From test_increment.vim:
Executing Test_normal_increment_01()
Executing Test_normal_increment_02()
Executing Test_normal_increment_03()
Executing Test_visual_increment_01()
Executing Test_visual_increment_02()
Executing Test_visual_increment_03()
Executing Test_visual_increment_04()
Executing Test_visual_increment_05()
Executing Test_visual_increment_06()
Executing Test_visual_increment_07()
Executing Test_visual_increment_08()
Executing Test_visual_increment_09()
Executing Test_visual_increment_10()
Executing Test_visual_increment_11()
Executing Test_visual_increment_12()
Executing Test_visual_increment_13()
Executing Test_visual_increment_14()
Executing Test_visual_increment_15()
Executing Test_visual_increment_16()
Executing Test_visual_increment_17()
Executing Test_visual_increment_18()
Executing Test_visual_increment_19()
Executing Test_visual_increment_20()
Executing Test_visual_increment_21()
Executing Test_visual_increment_22()
Executing Test_visual_increment_23()
Executing Test_visual_increment_24()
Executing Test_visual_increment_25()
Executing Test_visual_increment_26()
Executing Test_visual_increment_27()
Executing Test_visual_increment_28()
Executing Test_visual_increment_29()
Executing Test_visual_increment_30()
Executing Test_visual_increment_31()
Executing Test_visual_increment_32()
Executing Test_visual_increment_33()
Executing Test_visual_increment_34()
Executing Test_visual_increment_35()
Executing Test_visual_increment_36()
Executing Test_visual_increment_37()
Executing Test_visual_increment_38()
Executed 41 tests

From test_increment_dbcs.vim:
Executing Test_increment_dbcs_1()
Executed 1 test

From test_job_fails.vim:
Executing Test_job_start_fails()
Executed 1 test

From test_json.vim:
Executing Test_js_decode()
Executing Test_js_encode()
Executing Test_json_decode()
Executing Test_json_encode()
Executed 4 tests

From test_langmap.vim:
Executing Test_langmap()
Executed 1 test

From test_man.vim:
Executing Test_g_ft_man_open_mode()
Executing Test_nomodifiable()
Executed 2 tests

From test_marks.vim:
Executing Test_Incr_Marks()
Executing Test_Restore_DelMark()
Executed 2 tests

From test_matchadd_conceal.vim:
Executing Test_clearmatches()
Executing Test_default_conceal_char()
Executing Test_matchadd_and_conceallevel_3()
Executing Test_matchadd_and_syn_conceal()
Executing Test_matchadd_repeat_conceal_with_syntax_off()
Executing Test_simple_matchadd()
Executing Test_simple_matchadd_and_conceal()
Executing Test_syn_and_match_conceal()
Executing Test_using_matchaddpos()
Executed 9 tests

From test_mksession.vim:
Executing Test_mksession()
Executed 1 test

From test_mksession_utf8.vim:
Executing Test_mksession_utf8()
Executed 1 test

From test_nested_function.vim:
Executing Test_max_nesting()
Executing Test_nested_argument()
Executing Test_nested_functions()
Executed 3 tests

From test_netbeans.vim:
Executed 0 test

From test_normal.vim:
Executing Test_normal00_optrans()
Executing Test_normal01_keymodel()
Executing Test_normal02_selectmode()
Executing Test_normal02_selectmode2()
Executing Test_normal03_join()
Executing Test_normal04_filter()
Executing Test_normal05_formatexpr()
Executing Test_normal05_formatexpr_newbuf()
Executing Test_normal05_formatexpr_setopt()
Executing Test_normal06_formatprg()
Executing Test_normal07_internalfmt()
Executing Test_normal08_fold()
Executing Test_normal09_operatorfunc()
Executing Test_normal09a_operatorfunc()
Executing Test_normal10_expand()
Executing Test_normal11_showcmd()
Executing Test_normal12_nv_error()
Executing Test_normal13_help()
Executing Test_normal14_page()
Executing Test_normal14_page_eol()
Executing Test_normal15_z_scroll_vert()
Executing Test_normal16_z_scroll_hor()
Executing Test_normal17_z_scroll_hor2()
Executing Test_normal18_z_fold()
Executing Test_normal19_z_spell()
Executing Test_normal20_exmode()
Executing Test_normal21_nv_hat()
Executing Test_normal22_zet()
Executing Test_normal23_K()
Executing Test_normal24_rot13()
Executing Test_normal25_tag()
Executing Test_normal26_put()
Executing Test_normal27_bracket()
Executing Test_normal28_parenthesis()
Executing Test_normal29_brace()
Executing Test_normal30_changecase()
Executing Test_normal31_r_cmd()
Executing Test_normal32_g_cmd1()
Executing Test_normal33_g_cmd2()
Executing Test_normal34_g_cmd3()
Executing Test_normal35_g_cmd4()
    Skipped
Executing Test_normal36_g_cmd5()
Executing Test_normal37_g_cmd6()
Executing Test_normal38_nvhome()
Executing Test_normal39_cw()
Executing Test_normal40_ctrl_bsl()
Executing Test_normal41_insert_reg()
Executing Test_normal42_halfpage()
Executing Test_normal43_textobject1()
Executing Test_normal44_textobjects2()
Executing Test_normal45_drop()
Executing Test_normal46_ignore()
Executing Test_normal47_autocmd()
    Skipped
Executing Test_normal47_visual_buf_wipe()
Executing Test_normal48_wincmd()
Executing Test_normal49_counts()
Executing Test_normal50_commandline()
Executing Test_normal51_FileChangedRO()
Executing Test_normal52_rl()
Executing Test_normal53_digraph()
Executing Test_normal54_Ctrl_bsl()
Executed 61 tests
SKIPPED Test_normal35_g_cmd4(): output of g< can't be tested currently
SKIPPED Test_normal47_autocmd(): not possible to test cursorhold autocmd while waiting for input in normal_cmd

From test_packadd.vim:
Executing Test_colorscheme()
Executing Test_colorscheme_completion()
Executing Test_helptags()
Executing Test_packadd()
Executing Test_packadd_completion()
Executing Test_packadd_noload()
Executing Test_packloadall()
Executing Test_runtime()
Executed 8 tests

From test_perl.vim:
Executing Test_SvREFCNT()
Executing Test_VIM_package()
Executing Test_change_buffer()
Executing Test_evaluate_list()
Executing Test_perldo()
Executing Test_perleval()
Executing Test_stdio()
Executed 7 tests

From test_profile.vim:
Executing Test_profile_completion()
Executing Test_profile_errors()
Executing Test_profile_file()
Executing Test_profile_func()
Executed 4 tests

From test_quickfix.vim:
Executing Test_Autocmd()
Executing Test_Autocmd_Exception()
Executing Test_adjust_lnum()
Executing Test_browse()
Executing Test_caddbuffer_to_empty()
Executing Test_caddbuffer_wrong()
Executing Test_caddexpr_wrong()
Executing Test_cage()
Executing Test_cbottom()
Executing Test_cbuffer()
Executing Test_cexpr()
Executing Test_cfile()
Executing Test_cgetexpr_works()
Executing Test_clist()
Executing Test_cwindow()
Executing Test_dirstack_cleanup()
Executing Test_duplicate_buf()
Executing Test_efm()
Executing Test_efm1()
Executing Test_efm2()
Executing Test_efm_dirstack()
Executing Test_efm_ignore_continuations()
Executing Test_errortitle()
Executing Test_grep()
Executing Test_helpgrep()
Executing Test_history()
Executing Test_invalid_efm()
Executing Test_locationlist()
Executing Test_locationlist_cross_tab_jump()
Executing Test_locationlist_curwin_was_closed()
Executing Test_long_lines()
Executing Test_nomem()
Executing Test_qf_property()
Executing Test_qf_title()
Executing Test_quickfix_set_list_with_act()
Executing Test_quickfix_was_changed_by_autocmd()
Executing Test_setqflist()
Executing Test_setqflist_empty_middle()
Executing Test_setqflist_empty_older()
Executing Test_switchbuf()
Executing Test_two_windows()
Executing Test_vimgreptitle()
Executed 42 tests

From test_ruby.vim:
Executing Test_ruby_change_buffer()
Executing Test_ruby_evaluate_dict()
Executing Test_ruby_evaluate_list()
Executed 3 tests

From test_search.vim:
Executing Test_search_cmdline()
Executing Test_search_cmdline2()
Executing Test_searchpair()
Executing Test_use_sub_pat()
Executed 4 tests

From test_signs.vim:
Executing Test_sign()
Executing Test_sign_completion()
Executing Test_sign_delete_buffer()
Executing Test_sign_invalid_commands()
Executing Test_sign_undefine_still_placed()
Executed 5 tests

From test_smartindent.vim:
Executing Test_nosmartindent()
Executed 1 test

From test_startup.vim:
Executing Test_after_comes_later()
Executing Test_compatible_args()
Executing Test_file_args()
Executing Test_help_arg()
Executing Test_read_stdin()
Executing Test_startup_script()
Executing Test_startuptime()
Executed 7 tests

From test_startup_utf8.vim:
Executing Test_read_fifo_utf8()
Executing Test_read_stdin_utf8()
Executed 2 tests

From test_stat.vim:
Executing Test_checktime()
Executing Test_existent_directory()
Executing Test_existent_file()
Executing Test_nonexistent_file()
Executing Test_win32_symlink_dir()
Executed 5 tests

From test_substitute.vim:
Executing Test_multiline_subst()
Executed 1 test

From test_syntax.vim:
Executing Test_syn_iskeyword()
Executing Test_syntax_after_reload()
Executing Test_syntax_completion()
Executing Test_syntax_list()
Executing Test_syntime()
Executed 5 tests

From test_system.vim:
Executing Test_System()
Executing Test_system_exmode()
Executed 2 tests

From test_textobjects.vim:
Executing Test_inner_block_with_cpo_M_left_backslash()
Executing Test_inner_block_with_cpo_M_right_backslash()
Executing Test_inner_block_without_cpo_M()
Executed 3 tests

From test_undo.vim:
Executing Test_U_command()
Executing Test_global_local_undolevels()
Executing Test_insert_expr()
Executing Test_undo_del_chars()
Executing Test_undo_write()
Executing Test_undofile_earlier()
Executing Test_undojoin()
Executing Test_undolist()
Executing Test_undotree()
Executed 9 tests

From test_usercommands.vim:
Executing Test_Ambiguous()
Executing Test_CmdUndefined()
Executing Test_cmdmods()
Executed 3 tests

From test_viminfo.vim:
Executing Test_cmdline_history()
Executing Test_cmdline_history_order()
Executing Test_global_vars()
Executing Test_viminfo_bad_syntax()
Executing Test_viminfo_encoding()
Executing Test_viminfo_file_mark_tabclose()
Executing Test_viminfo_file_mark_zero_time()
Executing Test_viminfo_file_marks()
Executing Test_viminfo_jumplist()
Executing Test_viminfo_marks()
Executing Test_viminfo_oldfiles()
Executing Test_viminfo_read_and_write()
Executing Test_viminfo_registers()
Executed 13 tests

From test_viml.vim:
Executing Test_arg_abort()
Executing Test_braces_skipped()
Executing Test_curlies()
Executing Test_defining_functions()
Executing Test_echo_and_string()
Executing Test_endwhile_function()
Executing Test_endwhile_script()
Executing Test_error_in_function()
Executing Test_error_in_script()
Executing Test_expr_parsing()
Executing Test_finish()
Executing Test_func_abort()
Executing Test_if_bar_fail()
Executing Test_if_fail()
Executing Test_if_while()
Executing Test_num64()
Executing Test_return()
Executing Test_script_lines()
Executing Test_skip()
Executing Test_type()
Executing Test_while_fail()
Executed 21 tests

From test_visual.vim:
Executing Test_block_shift_multibyte()
Executing Test_dotregister_paste()
Executed 2 tests

From test_window_id.vim:
Executing Test_win_getid()
Executing Test_win_getid_curtab()
Executed 2 tests

From test_writefile.vim:
Executing Test_WriteFile()
Executed 1 test

From test_alot_latin.vim:
Executing Test_eow_with_optional()
Executing Test_equivalence_re1()
Executing Test_equivalence_re2()
Executing Test_nested_backrefs()
Executing Test_recursive_substitute()
Executed 5 tests

From test_alot_utf8.vim:
Executing Test_classes_re1()
Executing Test_classes_re2()
Executing Test_equivalence_re1()
Executing Test_equivalence_re2()
Executing Test_match_using_multibyte_conceal_char()
Executing Test_source_latin()
Executing Test_source_utf8()
Executing Test_strcharpart()
Executing Test_strgetchar()
Executed 9 tests

From test_alot.vim:
Executing Test_BufEnter()
Executing Test_abbreviation()
Executing Test_abs()
Executing Test_acos()
Executing Test_asin()
Executing Test_atan()
Executing Test_atan2()
Executing Test_augroup_deleted()
Executing Test_augroup_warning()
Executing Test_auto_partial_rebind()
Executing Test_autocmd_bufunload_avoiding_SEGV_01()
Executing Test_autocmd_bufunload_avoiding_SEGV_02()
Executing Test_autocmd_bufunload_with_tabnext()
Executing Test_autocmd_bufwinleave_with_tabfirst()
Executing Test_bind_in_python()
Executing Test_break_undo()
Executing Test_bufunload()
Executing Test_cancel_ptjump()
Executing Test_caught_error_in_statusline()
Executing Test_caught_error_in_tabline()
Executing Test_ceil()
Executing Test_closure_counter()
Executing Test_closure_refcount()
Executing Test_closure_unlet()
Executing Test_color_names()
Executing Test_compare_null_dict()
Executing Test_compare_partials()
Executing Test_compl_vim_cmds_after_register_expr()
Executing Test_complete_no_undo()
Executing Test_completefunc_opens_new_window_one()
Executing Test_completefunc_opens_new_window_two()
Executing Test_completefunc_with_scratch_buffer()
Executing Test_completefunc_works()
Executing Test_completion_ctrl_e_without_autowrap()
Executing Test_cos()
Executing Test_cosh()
Executing Test_cursorhold_insert()
Executing Test_cursorhold_insert_ctrl_x()
Executing Test_cursorline_keep_col()
Executing Test_curswant_with_autocommand()
Executing Test_cycle_partial_job()
Executing Test_cyclic_dict_arg()
Executing Test_cyclic_list_arg()
Executing Test_delete_myself()
Executing Test_dict()
Executing Test_dictionary()
Executing Test_dir_delete()
Executing Test_early_bar()
Executing Test_empty_buffer()
Executing Test_equal()
Executing Test_ex_undo()
Executing Test_execute_list()
Executing Test_execute_string()
Executing Test_existing()
Executing Test_exp()
Executing Test_expand()
Executing Test_feedkeys_x_with_empty_string()
Executing Test_file_delete()
Executing Test_file_perm()
Executing Test_fileformat_after_bw()
Executing Test_filetype_valid()
Executing Test_filter()
Executing Test_filter_cmd_completion()
Executing Test_filter_fails()
Executing Test_filter_map_dict_expr_funcref()
Executing Test_filter_map_dict_expr_string()
Executing Test_filter_map_list_expr_funcref()
Executing Test_filter_map_list_expr_string()
Executing Test_floor()
Executing Test_fmod()
Executing Test_fnamemodify()
Executing Test_func_unref()
Executing Test_funcref()
Executing Test_function_in_dict()
Executing Test_function_with_funcref()
Executing Test_gD()
Executing Test_gD_char()
Executing Test_gD_comment()
Executing Test_gD_inline_comment()
Executing Test_gD_string()
Executing Test_gD_string_same_line()
Executing Test_gD_too()
Executing Test_gd()
Executing Test_gd_comment()
Executing Test_gd_comment_in_string()
Executing Test_gd_inline_comment()
Executing Test_gd_inline_comment_body()
Executing Test_gd_inline_comment_only()
Executing Test_gd_kr_style()
Executing Test_gd_missing_braces()
Executing Test_gd_not_local()
Executing Test_gd_string()
Executing Test_gd_string_in_comment()
Executing Test_gd_string_only()
Executing Test_gd_trailing_comment()
Executing Test_gd_trailing_multiline_comment()
Executing Test_get_partial_items()
Executing Test_getreg_empty_list()
Executing Test_global_local_lispwords()
Executing Test_help_complete()
Executing Test_help_respect_current_file_lang()
Executing Test_help_tagjump()
Executing Test_if()
Executing Test_info()
Executing Test_invalid()
Executing Test_invalid_submatch()
Executing Test_isnan()
Executing Test_join_with_count()
Executing Test_keymap_valid()
Executing Test_keyword_jump()
Executing Test_lambda_call_lambda_from_lambda()
Executing Test_lambda_capture_by_reference()
Executing Test_lambda_circular_reference()
Executing Test_lambda_closure_counter()
Executing Test_lambda_combination()
Executing Test_lambda_delfunc()
Executing Test_lambda_do_not_share_local_variable()
Executing Test_lambda_fails()
Executing Test_lambda_feature()
Executing Test_lambda_refer_local_variable_from_other_scope()
Executing Test_lambda_scope()
Executing Test_lambda_share_scope()
Executing Test_lambda_side_effect()
Executing Test_lambda_with_a_var()
Executing Test_lambda_with_filter()
Executing Test_lambda_with_map()
Executing Test_lambda_with_partial()
Executing Test_lambda_with_sort()
Executing Test_lambda_with_timer()
Executing Test_load_menu()
Executing Test_log()
Executing Test_log10()
Executing Test_loop_over_null_list()
Executing Test_map_ctrl_c_insert()
Executing Test_map_ctrl_c_visual()
Executing Test_map_cursor()
Executing Test_map_feedkeys()
Executing Test_map_langmap()
Executing Test_map_meta_quotes()
Executing Test_match()
Executing Test_matchaddpos()
Executing Test_matchaddpos_using_negative_priority()
Executing Test_matchstrpos()
Executing Test_max_min_errors()
Executing Test_messages()
Executing Test_missing_attr()
Executing Test_move_cursor()
Executing Test_named_function_closure()
Executing Test_no_type_checking()
Executing Test_noinsert_complete()
Executing Test_non_zero_arg()
Executing Test_not_existing()
Executing Test_not_lamda()
Executing Test_omnifunc_with_check()
Executing Test_oneshot()
Executing Test_option_value()
Executing Test_options()
Executing Test_partial_args()
Executing Test_partial_dict()
Executing Test_partial_exists()
Executing Test_partial_implicit()
Executing Test_partial_string()
Executing Test_path_keep_commas()
Executing Test_paused()
Executing Test_popup_complete()
Executing Test_popup_complete2()
Executing Test_popup_completion_insertmode()
Executing Test_pow()
Executing Test_printf_64bit()
Executing Test_printf_errors()
Executing Test_printf_float()
Executing Test_printf_misc()
Executing Test_printf_spec_b()
Executing Test_printf_spec_s()
Executing Test_ptag_with_notagstack()
Executing Test_read_only()
Executing Test_recursive_delete()
Executing Test_redefine_dict_func()
Executing Test_ref_job_partial_dict()
Executing Test_reltime()
Executing Test_repeat_many()
Executing Test_repeat_three()
Executing Test_retain_partial()
Executing Test_round()
Executing Test_script_function_in_dict()
Executing Test_script_function_in_dict_arg()
Executing Test_searchpos()
Executing Test_set_add()
Executing Test_set_backslash()
Executing Test_set_reg_null_list()
Executing Test_set_tagcase()
Executing Test_setmatches()
Executing Test_signcolumn()
Executing Test_sin()
Executing Test_sinh()
Executing Test_sort_default()
Executing Test_sort_float()
Executing Test_sort_nested()
Executing Test_sort_numbers()
Executing Test_sort_numeric()
Executing Test_sort_strings()
Executing Test_special_char()
Executing Test_sqrt()
Executing Test_static_tagjump()
Executing Test_statusline_will_be_disabled_with_error()
Executing Test_stop_all_in_callback()
Executing Test_stop_in_callback()
Executing Test_stopall()
Executing Test_str2float()
Executing Test_str2nr()
Executing Test_strcharpart()
Executing Test_strgetchar()
Executing Test_substitute_expr()
Executing Test_substitute_expr_arg()
Executing Test_symlink_delete()
Executing Test_symlink_dir_delete()
Executing Test_symlink_recursive_delete()
Executing Test_syntax_valid()
Executing Test_tabline_will_be_disabled_with_error()
Executing Test_tabnext_on_buf_unload1()
Executing Test_tabnext_on_buf_unload2()
Executing Test_tabpage()
Executing Test_tabpage_with_autocmd()
Executing Test_tabpage_with_tab_modifier()
Executing Test_tagcase()
Executing Test_tan()
Executing Test_tanh()
Executing Test_thesaurus()
Executing Test_three_windows()
Executing Test_tostring()
Executing Test_true_false_arg()
Executing Test_trunc()
Executing Test_valid()
Executing Test_version()
Executing Test_vim_did_enter()
Executing Test_whichwrap()
Executing Test_win_tab_autocmd()
Executing Test_window_cmd_cmdwin_with_vsp()
Executing Test_window_cmd_ls0_with_split()
Executing Test_window_cmd_wincmd_gf()
Executing Test_with_directories()
Executing Test_with_partial_callback()
Executing Test_with_tilde()
Executing Test_wrong_arguments()
Executed 244 tests

Test results:
ALL DONE
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-nox/testdir'
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/json_test.o json_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o json_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o  objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/memfile.o objects/message.o objects/json_test.o        -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
link.sh: Linked fine
./json_test || exit 1; echo  passed;
passed
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memfile_test.o memfile_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o memfile_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o  objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/json.o objects/message.o objects/memfile_test.o        -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
link.sh: Linked fine
./memfile_test || exit 1; echo  passed;
passed
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/message_test.o message_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o message_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o  objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/json.o objects/memfile.o objects/message_test.o        -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
link.sh: Linked fine
./message_test || exit 1; echo  passed;
passed
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-nox'
touch build-stamp-vim-nox
make[1]: warning: -jN forced in submake: disabling jobserver mode.
make[1]: Entering directory '/<<PKGBUILDDIR>>/src/vim-athena'
/usr/bin/make -f Makefile vim
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-athena'
make[2]: 'vim' is up to date.
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-athena'
if test -n "yes" -a -f po/Makefile; then \
	cd po; /usr/bin/make -f Makefile check VIM=../vim; \
fi
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-athena/po'
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq af.po
touch af.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ca.po
touch ca.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.po
touch cs.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq de.po
touch de.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq en_GB.po
touch en_GB.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq eo.po
touch eo.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq es.po
touch es.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fi.po
touch fi.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fr.po
touch fr.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ga.po
touch ga.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq it.po
touch it.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.po
touch ja.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.po
touch ko.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.UTF-8.po
touch ko.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nb.po
touch nb.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nl.po
touch nl.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq no.po
touch no.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.po
touch pl.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pt_BR.po
touch pt_BR.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.po
touch ru.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.po
touch sk.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sv.po
touch sv.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.po
touch uk.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq vi.po
touch vi.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.UTF-8.po
touch zh_CN.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.po
touch zh_CN.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.UTF-8.po
touch zh_TW.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.po
touch zh_TW.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.cp1250.po
touch cs.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.sjis.po
touch ja.sjis.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.euc-jp.po
touch ja.euc-jp.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.cp1250.po
touch pl.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.UTF-8.po
touch pl.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.cp1251.po
touch ru.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.cp1250.po
touch sk.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.cp1251.po
touch uk.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.cp936.po
touch zh_CN.cp936.ck
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-athena/po'
if test vim != vim -a ! -r vim; then \
	ln -s vim vim; \
fi
cd testdir; /usr/bin/make -f Makefile gui VIMPROG=../vim  SCRIPTSOURCE=../../runtime
make[2]: Entering directory '/<<PKGBUILDDIR>>/src/vim-athena/testdir'
rm -f test.log messages
rm -rf test1.failed test.out X* viminfo tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok benchmark.out wrongtermsize
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test1.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 1133 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/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
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" If columns or lines are too small, create wrongtermsize.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" (Some tests will fail. When columns and/or lines are small)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Write a single line to test.out to check if testing works at all.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cthis is a test[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 15 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! small.vim
[?25l[?1c"small.vim" [New File] 1 line, 1 character written[?25h[?0c[?25l[?1c:[?25h[?0cw! tiny.vim
[?25l[?1c"tiny.vim" [New File] 1 line, 1 character written[?25h[?0c[?25l[?1ce! test.ok
w! test.outqa![?25h[?0c[?25l[?1c:[?25h[?0cw! mbyte.vim
[?25l[?1c"mbyte.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cw! mzscheme.vim
[?25l[?1c"mzscheme.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cw! lua.vim
[?25l[?1c"lua.vim" [New File] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +multi_byte feature supported, make mbyte.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("multi_byte") | sp another | w! mbyte.vim | q | endif
[?25l[?1c"another" [New File]
"mbyte.vim" 0 lines, 0 characters writtene! test.ok[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +mzscheme feature supported, make mzscheme.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("mzscheme") | sp another | w! mzscheme.vim | q | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +lua feature supported, make lua.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("lua") | sp another | w! lua.vim | q | endif
[?25l[?1c"another" [New File]
"lua.vim" 0 lines, 0 characters writtene! test.ok[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Otherwise write small.vim to skip the test.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif 1 | q! | endif
[?25l[?1c[?25h[?0crm -rf X* 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test3.in
[?25h[?8c[?25h[?0c[?25l[?1c"test3.in" 2342 lines, 23089 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c/* vim: set cin ts=4 sw=4 : */[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 125 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo modeline
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit                " read modeline
[?25l[?1c"test3.in"2342L, 23089Cif (test)cmd1;cmd2;if (test)cmd1;else[?25h[?0c[?25l[?1c/[?25h[?0cstart of AUTO
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cend of AUTO
[?25l[?1c956 lines to indent...
9500
850
750
650
550
450
350
250
150
50 lines to indent... 
957 lines indented [?25h[?0c[?25l[?1c/^STARTTEST
}break;default:baz();baz();break;
    }
}

/* 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
 */[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 93C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset tw=0 wm=60 columns=80 noai fo=croq
[?25l[?1c}break;default:baz();baz();break;
    }
}

/* 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
 */[?25h[?0c[?25l[?1c/[?25h[?0cserious/e
[?25l[?1c[?25h[?0c[?25l[?1c


-- INSERT --
about life, the
 * universe, and the
 * rest important big[?25h[?0c[?25l[?1c
* comment[?25h[?0c[?25l[?1c
/^STARTTEST
*/
    /* insert " about life, the universe, and the rest" after "serious" */
}

STARTTEST[?25h[?0c[?25l[?1c
:set nocin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6L, 78C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/comments
joabout life^[/happens
jothere^[/below
oline^[/this
Ohello^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nocin
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ccomments
[?25l[?1c{
    /** Testing for comments, without 'cin' set[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
-- INSERT --
about life[?25h[?0c[?25l[?1c
/[?25h[?0chappens
[?25l[?1c/*
* what happens here?[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
-- INSERT --
there[?25h[?0c[?25l[?1c
/[?25h[?0cbelow
[?25l[?1c/*the end of the comment, try inserting a line below */[?25h[?0c[?25l[?1c
-- INSERT --
line[?25h[?0c[?25l[?1c
/[?25h[?0cthis
[?25l[?1c/* how aboutthis one */[?25h[?0c[?25l[?1c
-- INSERT --hello[?25h[?0c[?25l[?1c
this one */[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 18C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/vec2
==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cvec2
[?25l[?1c{
    var = this + that + vec[0] * vec[0]+ vec[1] * vec[1]+ vec2[2] * vec[2];[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5L, 51C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=}4
/testing1
k2==/testing2
k2==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=}4
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ctesting1
[?25l[?1c{asdf asdflkajds f;
    if (tes & ting) {asdf asdf asdf ;asdfa sdf asdf;}
    testing1;[?25h[?0c [?25l[?1c

/[?25h[?0ctesting2
[?25l[?1cif (tes & ting)
    {asdf asdf asdf ;asdfa sdf asdf;}
    testing2;[?25h[?0c [?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4L, 36C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=(0,)20
/main
=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,)20
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cmain
[?25l[?1cmain ( int first_par, /*[?25h[?0c[?25l[?1c
19 lines to indent...
20indented [?25h[?0c[?25l[?1c
* Comment for[?25h[?0c[?25l[?1c
/^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();[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4L, 36C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=es,n0s
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cmain
[?25l[?1c[?25h[?0c[?25l[?1c8 lines to indent...
9indented [?25h[?0c
[?25l[?1c/^STARTTEST
else
    {bar();
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cin
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set cino=
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c{[?25h[?0c[?25l[?1c
11 lines to indent...
12indented [?25h[?0c[?25l[?1c
do[?25h[?0c[?25l[?1c
/^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();
    }[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1L, 6C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c


[?25l[?1c8 lines to indent...
9indented [?25h[?0c
   [?25l[?1c/^STARTTEST
n();
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino={s,e-s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino={s,e-s
[?25l[?1c[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
7 lines to indent...
8indented     {[?25h[?0c[?25l[?1c
if ( k() )[?25h[?0c[?25l[?1c
/^STARTTEST
{l();} else { /* Start (two words) end */m();}
    n();    /* should be under the if () */
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino={s,fs
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 25C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=/ foo[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino={s,fs
[?25l[?1c[?25h[?0c[?25l[?1cvoid bar(void)
{[?25h[?0c[?25l[?1c
/[?25h[?0c foo
[?25l[?1c30 lines to indent...
31indented     {[?25h[?0c[?25l[?1c/^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 */[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 25C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cwhile
[?25l[?1c[?25h[?0c[?25l[?1c
-- INSERT --
here[?25h[?0c[?25l[?1c
if ( a )
    i[?25h[?0c[?25l[?1c
/^STARTTEST
a;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino= com=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 109C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/comment
olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^Mcmd();^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino= com=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ccomment
[?25l[?1ca()
{
label1:/* hmm */// comment[?25h[?0c[?25l[?1c
-- INSERT --label2: b();
label3 /* post */:
/* pre */ label4:f(/*com*/);if (/*com*/)cmd();[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set comments& comments^=s:/*,m:**,ex:*/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 53C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/simple
=5j[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments^=s:/*,m:**,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0csimple
[?25l[?1c/*
  * A simple comment[?25h[?0c[?25l[?1c
5 lines to indent...
6indented * A simple comment[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
/^STARTTEST
/*
** A different comment
*/

STARTTEST[?25h[?0c[?25l[?1c
:set cino=c0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 70C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/*
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=c0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments-=s1:/* comments^=s0:/*
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST
/*********A comment.
    *********/
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=c0,C1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 73C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/*
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=c0,C1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments& comments-=s1:/* comments^=s0:/*
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST
/*********
    A comment.
    *********/
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 17C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s,U1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s,U1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
c = c1 &&[?25h[?0c[?25l[?1c
/^STARTTEST
(c2 ||c3) && c4;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (   c1[?25h[?0c[?25l[?1c
/^STARTTEST
&& (   c2|| c3))foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,w1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,w1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (   c1[?25h[?0c[?25l[?1c
/^STARTTEST
&& (   c2|| c3))foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
c = c1 && ([?25h[?0c[?25l[?1c
/^STARTTEST
c2 ||c3) && c4;
    if (c1 && c2)foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(s,m1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(s,m1  
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
c = c1 && ([?25h[?0c[?25l[?1c
/^STARTTEST
c2 ||c3
    ) && c4;
    if (c1 && c2
    )foo;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=b1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=b1
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
9 lines to indent...
10 lines indented [?25h[?0c[?25l[?1c
switch (x)[?25h[?0c[?25l[?1c
/^STARTTEST
{case 1:a = b;break;default:a = 0;break;
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,W5
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,W5
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
10 lines to indent...
11indented [?25h[?0c[?25l[?1c
invokeme([?25h[?0c[?25l[?1c
/^STARTTEST
argu,ment);
    invokeme(argu,ment);
    invokeme(argu,ment);
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=/6
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=/6
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
3 lines to indent...
4indented [?25h[?0c[?25l[?1c
statement;[?25h[?0c[?25l[?1c
/^STARTTEST
// comment 1// comment 2
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 34C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-12kdd]]/comment 1/+1
==[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=
[?25l[?1c[?25h[?0c[?25l[?1c==ENDTEST[?25h[?0c[?25l[?1cvoid f()
{[?25h[?0c[?25l[?1c
/[?25h[?0ccomment 1/+1
[?25l[?1cstatement;// comment 1
    // comment 2[?25h[?0c[?25l[?1c    // comment 2[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cino=g0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=g0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cclass CAbc
{[?25h[?0c[?25l[?1c
6 lines to indent...
7indented [?25h[?0c[?25l[?1c
int Test() { return FALSE; }[?25h[?0c[?25l[?1c
/^STARTTEST
public: // comment
    void testfall();
protected:
    void testfall();
};

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,gs,hs
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 29C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,gs,hs
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cclass Foo : public Bar
{[?25h[?0c[?25l[?1c
5 lines to indent...
6indented [?25h[?0c[?25l[?1c
public:[?25h[?0c[?25l[?1c
/^STARTTEST
virtual void method1(void) = 0;virtual void method2(int arg1,int arg2,int arg3) = 0;
};

STARTTEST[?25h[?0c[?25l[?1c
:set cino=+20
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 24C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=+20
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1cvoid
foo()
{[?25h[?0c[?25l[?1c
4 lines to indent...
5indented [?25h[?0c[?25l[?1c
if (a)[?25h[?0c[?25l[?1c
/^STARTTEST
{
    } elseasdf;
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,W2s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd]]=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,W2s
[?25l[?1c[?25h[?0c[?25l[?1c2kdd]]=][ENDTEST[?25h[?0c[?25l[?1c
{[?25h[?0c[?25l[?1c
34 lines to indent...
35indented [?25h[?0c[?25l[?1c
averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd([?25h[?0c[?25l[?1c
/^STARTTEST
dec)->asdfasdfasdf(asdfadsf,asdfasdf,asdfasdf,),func(asdfadf,asdfasdf),asdasdf);
}

STARTTEST
:set cino=M1
2kdd]]=][
ENDTEST

int main ()
{
    if (cond1 &&cond2)foo;
}[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=M1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c4 lines to indent...
5indented [?25h[?0c
   [?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0,ts
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0,ts
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
7 lines to indent...
8indented [?25h[?0c[?25l[?1c
void func(int a[?25h[?0c[?25l[?1c
/^STARTTEST
#if defined(FOO), int b, int c
#endif)
{
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
void[?25h[?0c[?25l[?1c
/^STARTTEST
func(int a
#if defined(FOO), int b, int c
#endif
    )
{
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 22C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=7][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=7][
ENDTEST[?25h[?0c

[?25l[?1c
69 lines to indent...
50
7indented [?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
/^STARTTEST
int a,int b)
{
}void
func6(int a)
{
}

STARTTEST
:set cino&
:set cino+=l1
2kdd2j=][
ENDTEST

void func(void)
{
    int tab[] =
    {1, 2, 3,4, 5, 6};[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cino+=l1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c

[?25l[?1c22 lines to indent...
23indented [?25h[?0c
[?25l[?1c/^STARTTEST
break;case baz: {printf("baz");break;}case quux:printf("But don't break the indentation of this instruction\n");break;
    }
}

STARTTEST
:set cino&
2kdd2j=][
ENDTEST

void func(void)
{
    cout << "a"
    << "b"
    << ") :"
    << "c";
}[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c

[?25l[?1c6 lines to indent...
7indented     << "b"
        << ") :"
        << "c";[?25h[?0c
[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set com=s1:/*,m:*,ex:*/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 38C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
]]3jofoo();^[[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset com=s1:/*,m:*,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1cvoid func(void)
{[?25h[?0c[?25l[?1c/** This is a comment.*/[?25h[?0c[?25l[?1c
-- INSERT --
foo();[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set cino&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd2j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino&
[?25l[?1c[?25h[?0c[?25l[?1c2kdd2j=][ENDTEST[?25h[?0c

[?25l[?1c
8 lines to indent...
9indented [?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
/^STARTTEST
{
    for (int i = 0; i < 10; ++i)if (i & 1) {foo(1);} elsefoo(0);
    baz();
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=k2s,(0
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1
2kdd3j=][[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0
[?25l[?1c[?25h[?0c[?25l[?1c2kdd3j=][ENDTEST[?25h[?0c[?25l[?1c
void func(void)[?25h[?0c[?25l[?1c
23 lines to indent...
24indented [?25h[?0c[?25l[?1c
{[?25h[?0c[?25l[?1c
/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(s
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c23 lines to indent...
24indented         && condition2)
        action();    && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(s,U1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c24 lines to indent...
25indented         && condition2)
        action();    && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0,W4
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c29 lines to indent...
30indented         && condition2)
        action();         && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,u2
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c18 lines to indent...
19indented         && condition2)
        action();        && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2s,(0,w1
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c27 lines to indent...
28indented         && condition2)
        action();         && argument2);[?25h[?0c
[?25l[?1c/^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);[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=k2,(s
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c


[?25l[?1c14 lines to indent...
15indented [?25h[?0c
[?25l[?1c/^STARTTEST
if (c1 && (c2 ||c3))foo;
    if (c1 &&(c2 || c3))
    {
    }
}

STARTTEST[?25h[?0c[?25l[?1c
:set cino=N-s
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 47C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^NAMESPACESTART
=/^NAMESPACEEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=N-s
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^NAMESPACESTART
[?25l[?1cNAMESPACESTART[?25h[?0c[?25l[?1c
/[?25h[?0c^NAMESPACEEND
[?25l[?1c81 lines to indent...
50
82indented [?25h[?0c[?25l[?1c/^STARTTEST
namespace test test2
{
    1111111111111111111;
}
namespace111111111
{
    111111111111111111;
}
NAMESPACEEND


STARTTEST
:set cino=j1,J1
/^JSSTART
=/^JSEND
ENDTEST

JSSTART
var bar = {
foo: {
that: this,
some: ok,
},[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c12 lines to indent...
13indented     foo: {
        that: this,
        some: ok,
    },[?25h[?0c[?25l[?1c/^STARTTEST
"bar":{a : 2,b: "123abc",x: 4,"y": 5
    }
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c5 lines to indent...
6indented [?25h[?0c[?25l[?1c/^STARTTEST
var foo = [
    1,
    2,
    3
];
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c7 lines to indent...
8indented [?25h[?0c[?25l[?1c/^STARTTEST
function bar() {
    var foo = [1,2,3
    ];
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c58 lines to indent...
509indented [?25h[?0c[?25l[?1c/^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: [[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c14 lines to indent...
15indented     $(this).data(class_name+'_public',$.extend({},{
        foo: 'bar',
        bar: 2,
        foobar: [[?25h[?0c[?25l[?1c/^STARTTEST
1,2,3],callback: function(){return true;}
    }, options||{}));
}
JSEND

STARTTEST[?25h[?0c[?25l[?1c
:set cino=j1,J1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1/^JSSTART
=/^JSEND[?25h[?0c[?25l[?1c
ENDTEST
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1cJSSTART[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND
[?25l[?1c16 lines to indent...
17indented [?25h[?0c[?25l[?1c/^STARTTEST
2,3],callback: function(){return true;}}, options||{}));
    }
})(jQuery);
JSEND

STARTTEST
:set cino=j1,J1,+2
/^JSSTART
=/^JSEND
ENDTEST

JSSTART
// Results of JavaScript indent
// 1
(function(){
var a = [
'a',[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 38C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cino=j1,J1,+2
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSSTART
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^JSEND
[?25l[?1c149 lines to indent...
100
50 lines to indent... 
150 lines indented     var a = [
      'a',[?25h[?0c[?25l[?1c/^STARTTEST
var a,
    b,
    c,
    d,
    e,
    f,
    g,
    h,
    i;
JSEND

STARTTEST
:set cin cino&
/start of define
=/end of define
ENDTEST

/* start of define */
{
}
#define AAA \
BBB\
CCC[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 48C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset cin cino&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of define
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cend of define
[?25l[?1c11 lines to indent...
12indented     BBB\
    CCC[?25h[?0c[?25l[?1c/^STARTTEST
#define CNT \
    1 + \
    2 + \
    4
/* end of define */

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 61C written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/+-1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c226 fewer lines    c,
    d,
    e,    f,    g,    h,    i;JSEND/* start of define */
{}#define AAA \
    BBB\
    CCC#define CNT \
    1 + \
    2 + \4
/* end of define */[?25h[?0c[?25l[?1c:[?25h[?0c1;/start of AUTO/,$wq! test.out
[?25l[?1c"test.out" [New] 2096L, 20188C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test3 = test61; then \
#	  if diff test.out test3.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test3.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test3.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test4.in
[?25h[?8c[?25h[?0c[?25l[?1c"test4.in" 34 lines, 960 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
:set fo+=r" issue #57 do not move cursor on <c-o> when autoindent is set
Go# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that changes current buffer on BufEnter event.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 20 lines, 678 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:?startstart?,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter Xxx brew
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of
[?25l[?1cstartstart
start of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0c.,/end of/w! Xxx   " write test file Xxx
[?25l[?1c"Xxx" [New] 7L, 124C written[?25h[?0c[?25l[?1c:[?25h[?0cset ai modeline modelines=3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx             " split to Xxx, autocmd will do :brew
[?25l[?1c"Xxx" 7L, 124CTest for autocommand that changes current buffer on BufEnter event.
Check if modelines are interpreted for the correct buffer.STARTTESTo small.vim:set nocompatible viminfo+=nviminfo
:au BufEnter Xxx brew/start of.,/end of/w!" write test file Xxx
:set ai modeline modelines=3:sp Xxx    " split to Xxx, autocmd will do :brew
test4.in                                                                        :set fo+=rssue #57 do not move cursor on <c-o> when autoindent is setGo# abcdef^[2hi
^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.outqa!ENDTESTstartstart of test file Xxx
test4.in                                                                        test4.in" line 1 of 34 --2%-- col 1[?25h[?0c[?25l[?1c: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[?25h[?0c[?25l[?1c?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --        this should be auto-indented[+][+][?25h[?0c[?25l[?1c
end of test file Xxx[?25h[?0c[?25l[?1c:[?25h[?0c                   " Append text with autoindent to this file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau! BufEnter Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbuf Xxx            " go to Xxx, no autocmd anymore
[?25l[?1c"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         [?25h[?0c[?25l[?1c?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --this should be in column 1[+][?25h[?0c[?25l[?1c:[?25h[?0cwq " append text without autoindent to Xxx
[?25l[?1c"Xxx8L, 151C written: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 aothis should be auto-indented^[
:                   " Append text with autoindent to this file
:au! BufEnter Xxx:buf Xxx            " go to Xxx, no autocmd anymoreG?this is aothis should be in column 1^[:wq " append text without autoindent to XxxG:r Xxx   nclude Xxx in the current file:set fo+=r" issue #57 do not move cursor on <c-o> when autoindent is setGo# abcdef^[2hi^Od0^[o# abcdef^[2hi^Od0^[:
:?startstart?,$w! test.out
:qa!ENDTESTstarstart of test file Xxx[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a testthis should be auto-indented
end of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0cr Xxx             " include Xxx in the current file
[?25l[?1c"Xxx" 8L, 151C
start of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0cset fo+=r          " issue #57 do not move cursor on <c-o> when autoindent is 

set
[?25l[?1c:au! BufEnter Xxx[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a test
this should be in column 1
end of test file Xxx
[?25h[?0c[?25l[?1c
-- INSERT --
# abcdef[?25h[?0c[?25l[?1c
-- INSERT --
-- (insert) --
# def[?25h[?0c[?25l[?1cINSERT --defo[?25h[?0cd[?25l[?1c[?25h[?0c[?25l[?1c
-- INSERT --
# abcdef[?25h[?0c[?25l[?1c
-- INSERT --
-- (insert) --[?25h[?0c[?25l[?1c
-- INSERT --def:[?25h[?0cd[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c:[?25h[?0c?startstart?,$w! test.out
[?25l[?1c"test.out" [New] 20L, 330C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test4 = test61; then \
#	  if diff test.out test4.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test4.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test4.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test5.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that deletes the current buffer on BufLeave event.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 664 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufLeave Xxx bwipe
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cstart of
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx               " write test file Xxx
[?25l[?1c"Xxx" [New File] 7 lines, 124 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx                         " split to Xxx
[?25l[?1c"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                                                                             ?start?,$w! test.outWrite current file contentsbwipe test.out      delete alternate bufferau bufleave test5.in bwipebwipe!                         " 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                                                                        [?25h[?0c[?25l[?1c:[?25h[?0cbwipe                          " delete buffer Xxx, now we're back here
[?25l[?1cTest 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 hereG?this is aothis is some more text^[                    Append some text to this file
:?start?,$w! test.outWrite 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 1[?25h[?0c[?25l[?1cvim: set noai :this is a testthis is a testthis is a testthis is a test
end of test file Xxx[?25h[?0c[?25l[?1c
?[?25h[?0cthis is a
[?25l[?1c[?25h[?0c[?25l[?1c
this is some more text[?25h[?0c[?25l[?1c
end of test file Xxx[?25h[?0c[?25l[?1c
:[?25h[?0c                               " Append some text to this file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?start?,$w! test.out           " Write current file contents
[?25l[?1c"test.out" [New File] 8 lines, 147 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe test.out                 " delete alternate buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau bufleave test5.in bwipe
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!                         " delete current buffer, get an empty one
[?25l[?1cError 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[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1cthis is another test line[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 26 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c                               " append an extra line to the output file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test5 = test61; then \
#	  if diff test.out test5.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test5.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test5.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test7.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for autocommand that changes the buffer list, when doing ":ball".[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 508 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of
[?25l[?1c[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx1   " write test file Xxx1
[?25l[?1c"Xxx1" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx1
[?25l[?1c"Xxx1" 4 lines, 77 charactersstart of test file Xxx1this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx1                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx1
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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 Xxx1[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx2    " write test file Xxx2
[?25l[?1c"Xxx2" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx2
[?25l[?1c"Xxx2" 4 lines, 77 charactersstart of test file Xxx2this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx2                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx2
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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 Xxx2[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx3    " write test file Xxx3
[?25l[?1c"Xxx3" [New File] 4 lines, 77 characters written[?25h[?0c[?25l[?1c:[?25h[?0csp Xxx3
[?25l[?1c"Xxx3" 4 lines, 77 charactersstart of test file Xxx3this is a test
        this is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx3                                                                            closeau BufReadPost Xxx2 bwipe
$r4:ball                 " open window for all args, close Xxx2
:.,$w! test.outWrite contents of this file^W^W:w >>test.outAppend contents of second window (Xxx1)/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!ENDTESTstart of test file Xxx3
test7.in [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cTest 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 Xxx1:close$r2:.,/end of/w! Xxx2    " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3    " write test file Xxx3sp Xxx3
:close:au BufReadPost Xxx2 bwipe$r4:ball       open window for all args, close Xxx2
:.,$w! test.out  Write contents of this filew >>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[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost Xxx2 bwipe
[?25l[?1c[?25h[?0c[?25l[?1c4[?25h[?0c[?25l[?1c:[?25h[?0cball                 " open window for all args, close Xxx2
[?25l[?1c"Xxx1"4 lines, 77 characters

"Xxx2" 4 lines, 77 characters

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c.,$w! test.out          " Write contents of this file
[?25l[?1c"test.out" [New File] 4 lines, 77 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c: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 Xxx4
test7.in [+]                                                                    start of test file Xxx1this is a testthis is a test
end of test file Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xxx1                                                                            [?25h[?0c
test7.in [+]                                                                    Xxx1                                                                            [?25l[?1c:[?25h[?0cw >>test.out        " Append contents of second window (Xxx1)
[?25l[?1c"test.out" 4 lines, 77 characters appended[?25h[?0ctest7.in [+]                                                                    Xxx1                                                                            [?25l[?1c:[?25h[?0c/^start of/,$w >>test.out   " Append contents of last window (this file)
[?25l[?1csearch hit BOTTOM, continuing at TOP"test.out" 4 lines, 77 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test7 = test61; then \
#	  if diff test.out test7.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test7.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test7.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test8.in
[?25h[?8c[?25h[?0c[?25l[?1c"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('$')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for BufWritePre autocommand that deletes or unloads the buffer.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1054 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTif 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWritePre Xxx1 bunload
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWritePre Xxx2 bwipe
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of
[?25l[?1c
start of Xxx[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c
:[?25h[?0c.,/end of/w! Xxx1  " write test file Xxx1
[?25l[?1c"Xxx1" [New File] 3 lines, 31 characters written[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c.,/end of/w! Xxx2   " write test file Xxx2
[?25l[?1c"Xxx2" [New File] 3 lines, 31 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! Xxx2                " edit Xxx2
[?25l[?1c"Xxx2" 3 lines, 31 charactersstart of Xxx2
        testend of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbdel test8.in^I^I" delete this file from the buffer list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce Xxx1                 " edit Xxx1
[?25l[?1c"Xxx1" 3 lines, 31 characters1
[?25h[?0c[?25l[?1c:[?25h[?0cw                      " write it, will unload it and give an error msg
[?25l[?1c"Xxx2"3 lines, 31 characters

E203: Autocommands deleted or unloaded buffer to be written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out            " Write contents of this file
[?25l[?1c"test.out" [New File] 3 lines, 31 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! Xxx2                " start editing Xxx2
[?25l[?1c"Xxx2" 3 lines, 31 charactersstart of Xxx2test
end of Xxx"Xxx2" 3 lines, 31 characters[?25h[?0c[?25l[?1c:[?25h[?0cbwipe test.out         " remove test.out from the buffer list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw                      " write it, will delete the buffer and give an error ms

g[?25l[?1c"Xxx1"3 lines, 31 characters
E203: Autocommands deleted or unloaded buffer to be written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out           " Append contents of this file
[?25l[?1c"test.out" 3 lines, 31 characters appended

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau! BufWritePre
[?25l[?1cstart of Xxx1test
end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0cfunc CloseAll()
[?25l[?1c
:  [?25h[?0c  let i = 0

[?25l[?1c:  [?25h[?0c  while i <= bufnr('$')

[?25l[?1c:    [?25h[?0c    if i != bufnr('%') && bufloaded(i)

[?25l[?1c:      [?25h[?0c      exe  i . "bunload"

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let i += 1

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cstart of Xxx1test
end of Xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfunc WriteToOut()
[?25l[?1c
:  [?25h[?0c  edit! test.out

[?25l[?1c:  [?25h[?0c  $put ='VimLeave done'

[?25l[?1c:  [?25h[?0c  write

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cstart of Xxx1test
end of Xxx
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset viminfo='100,nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufUnload * call CloseAll()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau VimLeave * call WriteToOut()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce small.vim
[?25l[?1cError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"small.vim" 1 line, 1 character

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0csp mbyte.vim
[?25l[?1c"mbyte.vim" 0 lines, 0 characters~                                                                               ~                                                                               ~                                                                               mbyte.vim                                                                       small.vim                                                                       "mbyte.vim" 0 lines, 0 characters[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1cError detected while processing function CloseAll:

line    4:

E16: Invalid range: 0bunload

"test.out" 6 lines, 62 characters

"test.out" 7 lines, 76 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test8 = test61; then \
#	  if diff test.out test8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test8.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test9.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Bufleave autocommand that deletes the buffer we are about to edit.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 117 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufLeave test9.in bwipe yy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce yy
[?25l[?1cE143: Autocommands unexpectedly deleted new buffer yy[?25h[?0c[?25l[?1c:[?25h[?0c/^start of/,$w! test.out      " Write contents of this file
[?25l[?1c"test.out" [New File] 2 lines, 42 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test9 = test61; then \
#	  if diff test.out test9.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test9.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test9.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test14.in
[?25h[?8c[?25h[?0c[?25l[?1c"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\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>"
:else
: let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"
:endif
:exe "normal " . tt
:unlet tt
:.w >>test.out[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for "vaBiB", end could be wrong.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 56 lines, 1141 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 */{}}}[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cStart cursor here
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c{ 
                        cmd;    /* <-- Start cursor here */ 
                        { 
                        } 
                [?25h[?0c[?25l[?1c                cmd; 
                }[?25h[?0c[?25l[?1c


6 fewer lines        }Piece of Java{        tt m1 {                t1;e1[?25h[?0c[?25l[?1c:[?25h[?0c?Bug?,/Piece/-2w! test.out
[?25l[?1c"test.out" [New File] 3 lines, 44 characters written[?25h[?0c[?25l[?1c/[?25h[?0c^- Bug
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cs/u/~u~/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cs/i/~u~/
[?25l[?1cuuun "vPPPP" on this text (Webb):
[?25h[?0c[?25l[?1c:[?25h[?0cs/o/~~~/
[?25l[?1cuuuuuuuuun this text (Webb):
[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 48 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cif has("ebcdic")
[?25l[?1c
:  [?25h[?0c: let tt = "o\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>

"
[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:$put =@/
/^substitute
:keeppatterns s/asdf/xyz/
:$put =@/
/^substitute[?25h[?0c[?25l[?1c:[?25h[?0cexe "normal " . tt
[?25l[?1cABC !a^Og^G8[?25h[?0c[?25l[?1c:[?25h[?0cunlet tt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset vb
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Piece
[?25l[?1c[?25h[?0c[?25l[?1c{A[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1ctt m2 {[?25h[?0c[?25l[?1c{B[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1ct2;} e2tt m3 {[?25h[?0c[?25l[?1c{C[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 10 characters appended[?25h[?0c[?25l[?1c{DC[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c{EA[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c{F[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 3 characters appended[?25h[?0c[?25l[?1c}G e1[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c
[?25l[?1cif (x){t3;}} e3[?25h[?0c[?25l[?1c}H e3[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c[?25l[?1c
}[?25h[?0c[?5h[?5l[?25l[?1c}I[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 3 characters appended[?25h[?0c[?25l[?1c}JH e3[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 8 characters appended[?25h[?0c[?25l[?1c}K e2[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 7 characters appended[?25h[?0c[?25l[?1c{LF[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^foobar
[?25l[?1cfoobar[?25h[?0c[?25l[?1c
:[?25h[?0clet startline = line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall search('foobar', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0ccall search('^$', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall search('^$', 'bc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), line('.') - startline)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ctwo
[?25l[?1csubstitute foo asdf

one two[?25h[?0c[?25l[?1c
:[?25h[?0ccall search('.', 'c')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), getline('.')[col('.') - 1:])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cs/foo/bar/
[?25l[?1cbar
[?25h[?0c[?25l[?1c:[?25h[?0c$put =@/
[?25l[?1csearch()
0
1
1
two
foo[?25h[?0c[?25l[?1c
/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0ckeeppatterns s/asdf/xyz/
[?25l[?1cxyz[?25h[?0c[?25l[?1c:[?25h[?0c$put =@/
[?25l[?1c
^substitute[?25h[?0c[?25l[?1c
/[?25h[?0c^substitute
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c$put =@0
[?25l[?1c
substitute bar xyz[?25h[?0c[?25l[?1c
/[?25h[?0cbar /e
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =@0
[?25l[?1c
substitute bar xyz[?25h[?0c[?25l[?1c

:[?25h[?0ckeeppatterns /xyz
[?25l[?1c[?25h[?0c[?25l[?1c
/bar /exyz[?25h[?0c[?25l[?1c:[?25h[?0c/^search()/,$w >>test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 9 lines, 58 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test14 = test61; then \
#	  if diff test.out test14.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test14.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test14.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test15.in
[?25h[?8c[?25h[?0c[?25l[?1c"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/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :right on text with embedded TAB.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 401 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=65
[?25l[?1c[?25h[?0c[?25l[?1c
test for :left[?25h[?0c[?25l[?1c
:[?25h[?0c/^\s*test for :left/,/^\s*test for :center/ left
[?25l[?1csearch hit BOTTOM, continuing at TOPtest for :left[?25h[?0c[?25l[?1c:[?25h[?0c/^\s*test for :center/,/^\s*test for :right/ center
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^\s*test for :right/,/^xxx/-1 right
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fo+=tcroql tw=72
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cxxxxxxxx$
[?25l[?1casxa;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[?25h[?0c
[?25l[?1c
 xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xxxx xxxxxxx.
xxxx xxxx.xxxxxxx: xxxx xxxxxxx, xx xxxx xxxxxxx~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" undo/redo here to make the next undo only work on the following changes
[?25l[?1c[?25h[?0c[?25l[?1c1 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/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTESTtest for :leftaafaadfaasdfaaasdfaaxasdfaa
asxxdfaatest for :centeraafaafd asdf[?25h[?0c[?25l[?1c1 line less; after #1  1 seconds agotest for :lefta      afa    adfa      asdfaaasdfa           axasdfaa                test for :center  aa  fa        afd asdf[?25h[?0c
[?25l[?1c:[?25h[?0cmap gg :.,.+2s/^/x/<CR>kk:set tw=3<CR>gqq
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^aa
[?25l[?1casxxdfaaxxxoikeasxa;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[?25h[?0c[?25l[?1c


:.,.+2s/^/x/
3 substitutions on 3 linesxaa aa aa aa
xbb bb bb bb
xcc cc cc cc
[?25h[?0c[?25l[?1c:set tw=3
[?25h[?0c[?25l[?1c


3 more lines
aaaaaa3 more lines[?25h[?0c[?25l[?1c
3 fewer lines; before #2  0 seconds agoaa aa aa aa
bb bb bb bb
cc cc cc cc
~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0c?test for :left?,$w! test.out
[?25l[?1c"test.out"[New] 111L, 2304C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test15 = test61; then \
#	  if diff test.out test15.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test15.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test15.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test19.in
[?25h[?8c[?25h[?0c[?25l[?1c"test19.in" 33 lines, 692 charactersTests for "r<Tab>" 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![?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 447 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset smarttab expandtab ts=8 sw=4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure that backspace works, no matter what termcap is used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset t_kD=^^? t_kb=^^H
[?25l[?1cSTARTTEST
: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
[?25h[?0c[?25l[?1c
/[?25h[?0csome
[?25l[?1cstart textsome test text[?25h[?0c[?25l[?1c    ome test text[?25h[?0c[?25l[?1c
:[?25h[?0cset noexpandtab
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cother
[?25l[?1ctest textother test text[?25h[?0c[?25l[?1c    ther test text[?25h[?0c[?25l[?1c
a cde[?25h[?0c[?25l[?1c
:[?25h[?0c" Test replacing with Tabs and then backspacing to undo it
[?25l[?1c[?25h[?0c
    [?25l[?1c[?25h[?0c[?25l[?1c
f ghi[?25h[?0c[?25l[?1c
:[?25h[?0c" Test replacing with Tabs
[?25l[?1c[?25h[?0c
    [?25l[?1c     hi[?25h[?0c[?25l[?1c
test text[?25h[?0c[?25l[?1c
:[?25h[?0c" Test that copyindent works with expandtab set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset expandtab smartindent copyindent ts=8 sw=8 sts=8
[?25l[?1c[?25h[?0c[?25l[?1c{x[?25h[?0c[?25l[?1c
:[?25h[?0cset nosol
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cSecond line/
[?25l[?1c
Second line beginning with whitespace[?25h[?0c[?25l[?1c
  with whitespace[?25h[?0c[?25l[?1c
:[?25h[?0c?^start?,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 121 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test19 = test61; then \
#	  if diff test.out test19.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test19.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test19.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test20.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests Blockwise Visual when there are TABs before the text.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 107 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso tiny.vim
[?25l[?1c[?25h[?0c[?25l[?1csome texttest text
test text

Ox^[jAy^[kdd[?25h[?0c[?25l[?1cx[?25h[?0c
[?25l[?1cy[?25h[?0c[?25l[?1cy
Ox^[jAy^[kdd[?25h[?0c[?25l[?1c

2 changes; before #1  0 seconds ago[?25h[?0c
[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       123456
234567
345678test text test tex start here
                some texttest
test textOx^[jAy^[kdd
test20.in                                                                       [?25h[?0c[?25l[?1cx[+][?25h[?0c
[?25l[?1cy[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c1 line less; before #1  0 seconds ago   [?25h[?0c[?25l[?1c:[?25h[?0cquit!
[?25l[?1c: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[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
Ox^[jAy^[kdd[?25h[?0c[?25l[?1c
/[?25h[?0cstart here$
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cs[?25h[?0c[?25l[?1ce[?25h[?0c[?25l[?1ct t[?25h[?0c[?25l[?1cat [?25h[?0c[?25l[?1crt hereextex[?25h[?0c[?25l[?1c/[?25h[?0c456$
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c4
234[?25h[?0c[?25l[?1c5
345[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cstart here56
234start here67
345start here78[?25h[?0c[?25l[?1c:[?25h[?0c/56$/,$-1w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 10 lines, 106 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test20 = test61; then \
#	  if diff test.out test20.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test20.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test20.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test22.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for file with some lines ending in CTRL-M, some not^M[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 38 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset ta tx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce!
[?25l[?1c"test22.in" 13 lines, 197 characters[?25h[?0c[?25l[?1c:[?25h[?0c$-3,$w! test.out
[?25l[?1c"test.out" [New File] 4 lines, 79 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test22 = test61; then \
#	  if diff test.out test22.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test22.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test22.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test23.in
[?25h[?8c[?25h[?0c[?25l[?1c"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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for complicated + argument to :edit command[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 125 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c$-1w! Xfile1
[?25l[?1c"Xfile1" [New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xfile2
[?25l[?1c"Xfile2" [New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0cedit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 12 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce Xfile1
[?25l[?1c"Xfile1" 1 line, 11 charactersfooPIPEbar
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xfile1" 1 line, 11 characters[?25h[?0c[?25l[?1c:[?25h[?0cw >> test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test23 = test61; then \
#	  if diff test.out test23.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test23.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test23.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test24.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with backslash and other special characters inside [][?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 51 lines, 519 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\x]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text[?25h[?0c[?25l[?1c/[?25h[?0c[\t\]]
[?25l[?1c[?25h[?0c[?25l[?1ctext test tex[?25h[?0c[?25l[?1c/[?25h[?0c[]y]
[?25l[?1c[?25h[?0c[?25l[?1ctest text[?25h[?0c[?25l[?1c/[?25h[?0c[\]]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text[?25h[?0c[?25l[?1c/[?25h[?0c[y^]
[?25l[?1c[?25h[?0c[?25l[?1cst text[?25h[?0c[?25l[?1c/[?25h[?0c[$y]
[?25l[?1c[?25h[?0c[?25l[?1cxt test text[?25h[?0c[?25l[?1c/[?25h[?0c[\x61]
[?25l[?1c[?25h[?0c[?25l[?1cext test text  x61[?25h[?0c[?25l[?1c/[?25h[?0c[\x60-\x64]
[?25l[?1c[?25h[?0c[?25l[?1cext test text  x60-x64[?25h[?0c
[?25l[?1c/[?25h[?0c[\x785]
[?25l[?1c[?25h[?0c[?25l[?1ctext test text  x78 5[?25h[?0c[?25l[?1c/[?25h[?0c[\o143]
[?25l[?1c
testc text test text  o143[?25h[?0c[?25l[?1c text test text  o143[?25h[?0c[?25l[?1c
/[?25h[?0c[\o140-\o144]
[?25l[?1c
tesdt text test text  o140-o144[?25h[?0c[?25l[?1ct text test text  o140-o14[?25h[?0c[?25l[?1c
/[?25h[?0c[\o417]
[?25l[?1c
test7 text test text  o41 7[?25h[?0c[?25l[?1c text test text  o41 7[?25h[?0c[?25l[?1c
/[?25h[?0c\%x42
[?25l[?1c
test text tBest text  \%x42[?25h[?0c[?25l[?1cest text  \%x42[?25h[?0c[?25l[?1c
/[?25h[?0c\%o103
[?25l[?1c
test text teCst text  \%o103[?25h[?0c[?25l[?1cst text  \%o103[?25h[?0c[?25l[?1c
/[?25h[?0c[\x00]
[?25l[?1c
test text ^@test text  [\x00][?25h[?0c[?25l[?1ctest text  [\x00][?25h[?0c[?25l[?1c
test te^@xt t^Dest t^Pext  [\x00-\x10][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\x00-\x10]//g
[?25l[?1c3 substitutions on 1 linext test text  [\x00-\x10][?25h[?0c[?25l[?1c
test \xyztext test text  [\x-z][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\x-z]\+//
[?25l[?1ctext test text  [\x-z][?25h[?0c[?25l[?1c
test text tev\uyst text  [\u-z][?25h[?0c[?25l[?1c
:[?25h[?0cs/[\u-z]\{2,}//
[?25l[?1cst text  [\u-z][?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\+//
[?25l[?1c xx [?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a*\)\+//
[?25l[?1c[?25h[?0c[?25l[?1c
xx aaaaa xx a[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a*\)*//
[?25l[?1c[?25h[?0c[?25l[?1c
xx aaaaa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\{2,3}/A/
[?25l[?1cAaa xx[?25h[?0c[?25l[?1c
xx aaaaa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\{-2,3}/A/
[?25l[?1cAaaa x[?25h[?0c[?25l[?1c
xx aaa12aa xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)*\(12\)\@>/A/
[?25l[?1cAaa xx[?25h[?0c[?25l[?1c
xx foobar xbar xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(foo\)\@<!bar/A/
[?25l[?1cA xx[?25h[?0c[?25l[?1c
xx an file xx[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(an\_s\+\)\@<=file/A/
[?25l[?1cA xx[?25h[?0c[?25l[?1c
x= 9;[?25h[?0c[?25l[?1c
:[?25h[?0cs/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
[?25l[?1cXX
[?25h[?0c[?25l[?1c
hh= 77;[?25h[?0c[?25l[?1c
:[?25h[?0cs/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
[?25l[?1cYY 77;[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0cs/aaa/xyz/
[?25l[?1cxyz
 [?25h[?0c[?25l[?1c
xyz[?25h[?0c[?25l[?1c
:[?25h[?0cs/~/bcd/
[?25l[?1cbcd
 [?25h[?0c[?25l[?1c
bcdbcdbcd[?25h[?0c[?25l[?1c
:[?25h[?0cs/~\+/BB/
[?25l[?1cBB[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?start?,$w! test.out
[?25l[?1c"test.out" [New] 32L, 586C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test24 = test61; then \
#	  if diff test.out test24.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test24.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test24.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test26.in
[?25h[?8c[?25h[?0c[?25l[?1c"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")[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for :execute, :while and :if[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 39 lines, 696 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet i = 0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i < 12
[?25l[?1c
:  [?25h[?0c:  let i = i + 1

[?25l[?1c:  [?25h[?0c:  if has("ebcdic")

[?25l[?1c:    [?25h[?0c:    execute "normal o" . i . "\047"

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    execute "normal o" . i . "\033"

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  if i % 2

[?25l[?1c:    [?25h[?0c:    normal Ax^^[

[?25l[?1c:    [?25h[?0c:    if i == 9

[?25l[?1c:      [?25h[?0c:      break

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if i == 5

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      let j = 9

[?25l[?1c:      [?25h[?0c:      while j > 0

[?25l[?1c:[?25h[?0c:        if has("ebcdic")

[?25l[?1c:[?25h[?0c:          execute "normal" j . "a" . j . "\x27"

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          execute "normal" j . "a" . j . "\x1b"

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:        let j = j - 1

[?25l[?1c:[?25h[?0c:      endwhile

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  if i == 9

[?25l[?1c:    [?25h[?0c:    if has("ebcdic")

[?25l[?1c:      [?25h[?0c:      execute "normal Az\047"

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      execute "normal Az\033"

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endwhile
[?25l[?1c:  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[?25h[?0c[?25l[?1c
:[?25h[?0cunlet i j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c't,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 159 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test26 = test61; then \
#	  if diff test.out test26.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test26.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test26.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test28.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for sourcing a file with CTRL-V's at the end of the line[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 114 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c/firstline/+1,/lastline/-1w! Xtestfile
[?25l[?1c"Xtestfile" [New File] 10 lines, 148 characters written[?25h[?0c[?25l[?1c:[?25h[?0cso Xtestfile
[?25l[?1c[?25h[?0c[?25l[?1c
sd
map __2 asd^[[?25h[?0c[?25l[?1csecond[?25h[?0cd  [?25l[?1csd^[[?25h[?0c^[  [?25l[?1csd^@map __5 asd^@[?25h[?0c[?25l[?1cfifth[?25h[?0c[?25l[?1c
:[?25h[?0c'm,$s/^@/0/g
[?25l[?1c0map __5 asd0fifth[?25h[?0c[?25l[?1c:[?25h[?0c'm,$w! test.out
[?25l[?1c"test.out" [New File] 2 lines, 45 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test28 = test61; then \
#	  if diff test.out test28.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test28.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test28.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test29.in
[?25h[?8c[?25h[?0c[?25l[?1c"test29.in" 230 lines, 4261 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for joining lines and marks in them[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 478 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nojoinspaces
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cfirstline/
[?25l[?1c[?25h[?0c
[?25l[?1c/[?25h[?0c^STARTTEST/-1
[?25l[?1c+-1
37 fewer linesSTARTTEST
/^{/+1[?25h[?0c[?25l[?1cmore linesasdfasdf.
asdf[?25h[?0c[?25l[?1casdf
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c
zx cv[?25l[?1cas dfg?
hjkl iop!
ert[?25h[?0c
hjkl i[?25l[?1c. as dfg? hjkl iop! ert
zx cvn.
as dfg?hjkl iop![?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions+=j
[?25l[?1c[?25h[?0c
zx cv
hjkl i[?25l[?1c. as dfg? hjkl iop! ertSTARTTEST[?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j joinspaces
[?25l[?1c[?25h[?0c
[?25l[?1c

37 more linesasdfasdf.
[?25h[?0c[?25l[?1casdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c  asdf[?25h[?0c[?25l[?1c
asdfasdf. [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c
zx cv[?25l[?1cas dfg?
hjkl iop![?25h[?0c
hjkl i[?25l[?1c.  as dfg?  hjkl iop!  ert
zx cvn.
as dfg?[?25h[?0c  er[?25l[?1ct  e[?25h[?0c
zx cv[?25l[?1cen[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c


:[?25h[?0cset cpoptions+=j
[?25l[?1c[?25h[?0c
zx cv[?25l[?1c
hjkl iop![?25h[?0c
hjkl i[?25l[?1c.  as dfg? hjkl iop! ertSTARTTEST[?25h[?0c er[?25l[?1ct er[?25h[?0c
zx cv[?25l[?1crn[?25h[?0c[?25l[?1cnop[?25h[?0c[?25l[?1c


:[?25h[?0cset cpoptions-=j nojoinspaces compatible
[?25l[?1c[?25h[?0c
[?25l[?1c

37 more linesasdfasdf.
[?25h[?0c[?25l[?1casdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c  asdf[?25h[?0c[?25l[?1c
asdfasdf. [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf.[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
asdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c[?25l[?1c.  as dfg? hjkl iop! ert[?25h[?0c[?25l[?1ct  a[?25h[?0c[?25l[?1c
zx cvn.[?25h[?0c[?25l[?1c
/[?25h[?0cSTARTTEST/-2
[?25l[?1c+-2
4 fewer lines[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 147 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set comments=s1:/*,mb:*,ex:*/,://
:set nojoinspaces fo=j
:set backspace=eol,start
:.,+3join
j4J
:.,+2join
j3J
:.,+2join
j3J
:.,+2join
jj3J
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{[?25h[?0c[?25l[?1c
:[?25h[?0cset comments=s1:/*,mb:*,ex:*/,://
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nojoinspaces fo=j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace=eol,start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,+3join
[?25l[?1c/* Make sure the previous comment leader is not removed. */
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c/* Make sure the previous comment leader is not removed. */
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1c// Should the next comment leader be left alone? Yes.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c// Should the next comment leader be left alone? Yes.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1cif (condition) // Remove the next comment leader! OK, I will.
[?25h[?0c[?25l[?1c
action();[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cif (condition) // Remove the next comment leader! OK, I will.
[?25h[?0c[?25l[?1c
action();
[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
:" Test with backspace set to the non-compatible setting
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 17 lines, 347 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:inoremap <c-u> <left><c-u>
Avim3^U^[
:iunmap <c-u>
Avim4^U^U^[
:" Test with backspace set to the compatible setting
:set backspace= visualbell
A vim5^[A^U^U^[
A vim6^[Azwei^Gu^U^[
:inoremap <c-u> <left><c-u>
A vim7^U^U^[
:set compatible novisualbell
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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" Test with backspace set to the non-compatible setting
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^\d\+ this
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cp bs=2
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0cd    [?25l[?1cvim2[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <c-u> <left><c-u>
[?25l[?1c[?25h[?0c[?25l[?1cd3[?25h[?0c[?25l[?1c:[?25h[?0ciunmap <c-u>
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0c" Test with backspace set to the compatible setting
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace= visualbell
[?25l[?1c[?25h[?0c[?25l[?1cvim5[?25h[?0c[?5h[?5l[?5h[?5l[?25l[?1cd vim6[?25h[?0c6    [?25l[?1czwei[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <c-u> <left><c-u>
[?25l[?1c[?25h[?0c[?5h[?5l[?5h[?5l[?25l[?1cvim7[?25h[?0c
[?25l[?1c:[?25h[?0cset compatible novisualbell
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 21 lines, 356 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/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.
 */[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments=sO:*\ -,mO:*\ \ ,exO:*/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments+=s1:/*,mb:*,ex:*/,://
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset comments+=s1:>#,mb:#,ex:#<,:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpoptions-=j joinspaces fo=j
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset backspace=eol,start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.,+3join
[?25l[?1c/* Make sure the previous comment leader is not removed.  *//* List:
 * - item1
 *   foo bar baz[?25h[?0c
[?25l[?1c/* Make sure the previous comment leader is not removed.  */*   foo bar baz
 * - item2
 *   foo bar baz[?25h[?0c
[?25l[?1c:[?25h[?0c.,+8join
[?25l[?1c/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz *//* List:- item1  foo bar baz
 * - item2[?25h[?0c
[?25l[?1c/* 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?[?25h[?0c
[?25l[?1c:[?25h[?0c.,+2join
[?25l[?1cShould the next comment leader be left alone?  Yes.


// Yes.[?25h[?0c
[?25l[?1c// Should the next comment leader be left alone?  Yes.* Here the comment leader should be left intact. */
// And so should this one.[?25h[?0c
[?25l[?1c


:[?25h[?0c.,+2join
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.* Here the comment leader should be left intact. */[?25h[?0c
[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.[?25h[?0c
[?25l[?1c:[?25h[?0c.,+2join
[?25l[?1cif (condition) // Remove the next comment leader!  OK, I will.
[?25h[?0c[?25l[?1c
action();[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cif (condition) // Remove the next comment leader!  OK, I will.
[?25h[?0c[?25l[?1c
action();
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join
[?25l[?1cint i = 7 /* foo *// 3 // comment
[?25h[?0c[?25l[?1c
;[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cint i = 7 /* foo *// 3 // comment
[?25h[?0c[?25l[?1c
;
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c.,+5join
[?25l[?1c># 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.[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c># 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.[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1cSome code!
// Make sure backspacing does not remove this comment leader.[?25h[?0c
[?25l[?1c// Make sure backspacing does not remove this comment leader.
}[?25h[?0c
[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 61 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:?firstline?+1,$w! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c74 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.
}[?25h[?0c[?25l[?1c:[?25h[?0c?firstline?+1,$w! test.out
[?25l[?1c"test.out" [New File] 97 lines, 3018 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test29 = test61; then \
#	  if diff test.out test29.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test29.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test29.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test31.in
[?25h[?8c[?25h[?0c[?25l[?1c"test31.in" 95 lines, 1832 charactersTest for commands that close windows and/or buffers:
:quit
:close
:hide
:only
:sall
:all
:ball
:buf
:edit

STARTTEST
:so small.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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for commands that close windows and/or buffers:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 80 lines, 1697 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" test ":q!" and hidden buffer.
:bw! Xtest1 Xtest2 Xtest3 Xtest4
:sp Xtest1
:wincmd w
:bw!
:set modified
:bot sp Xtest2
:set modified
:bot sp Xtest3
:set modified
:wincmd t
:hide
:q!
:w >>test.out
:q!
:w >>test.out
:q!
:call append(line('$'), "Oh, Not finished yet.")
:w >>test.out
:qa!
ENDTEST

testtext[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c
[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest1
[?25l[?1c"Xtest1" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest2
[?25l[?1c"Xtest2" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0c$w! Xtest3
[?25l[?1c"Xtest3" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0cn! Xtest1 Xtest2
[?25l[?1c"Xtest1" 1 line, 11 characterstesttext 1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for working :n when hidden set; write "testtext 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cn
[?25l[?1c"Xtest2" 1 line, 11 characters2[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" test for failing :rew when hidden not set; write "testtext 2 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0crew
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test for working :rew when hidden set; write "testtext 1 1"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0crew
[?25l[?1c"Xtest1" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)1 1
[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test for :all keeping a buffer when it's modified; write "testtext 1 1 1"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c1[?25h[?0c[?25l[?1c:[?25h[?0csp
[?25l[?1cXtest1 [+]                                                                      testtext 1 1 1Xtest1 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cn Xtest2 Xtest3
[?25l[?1c"Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)2 22[?25h[?0c[?25l[?1c:[?25h[?0call
[?25l[?1c"Xtest3" 1 line, 11 characterstesttext 1 1 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1cXtest1 [+]                                                                      Xtest2 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test abandoning changed buffer, should be unloaded even when 'hidden' set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 2 2" twice
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c1 1[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1ctesttext 2 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cunhide
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":hide" hides anyway when 'hidden' not set; write "testtext 3"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c:[?25h[?0chide
[?25l[?1c3~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":edit" failing in modified buffer when 'hidden' not set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 3 3"
[?25l[?1c[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 13 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1

"[?25l[?1ctesttext 3 3[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1c"Xtest1" 1 line, 11 characters1[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":close" not hiding when 'hidden' not set in modified buffer;
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 3 3 3"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest3
[?25l[?1c"Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)3 3Xtest3 [+]                                                                      testtext 1Xtest1                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" test ":close!" does hide when 'hidden' not set in modified buffer;
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" write "testtext 1"
[?25l[?1c[?25h[?0c[?25l[?1c3 3[?25h[?0c[?25l[?1c:[?25h[?0cclose!
[?25l[?1c1~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset nohidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test ":all!" hides changed buffer; write "testtext 2 2 2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest4
[?25l[?1c"Xtest4" [New File]Xtest4                                                                          testtext 1Xtest1                                                                          [?25h[?0c[?25l[?1c 4[+][?25h[?0c[?25l[?1c:[?25h[?0call!
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1ctesttext 2 2 2
~                                                                               Xtest2 [+]                                                                      testtext 3 3 3 3~                                                                               3 [+][?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test ":q!" and hidden buffer.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbw! Xtest1 Xtest2 Xtest3 Xtest4
[?25l[?1c"test31.in"95 lines, 1832 characters

4 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0csp Xtest1
[?25l[?1c"Xtest1" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               Xtest1                                                                          :w >>test.out:q!:w >>test.out:q!:call append(line('$'), "Oh, Not finished yet."):w >>test.out:qa!ENDTESTtesttexttest31.in "Xtest1" 1 line, 11 characters[?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1cXtest1                                                                          test31.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cbw!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbot sp Xtest2
[?25l[?1c"Xtest2" 1 line, 11 charactersXtest1 [+]                                                                      testtext 2Xtest2                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cbot sp Xtest3
[?25l[?1c"Xtest3" 1 line, 11 characterstesttext 1
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest1 [+]                                                                      testtext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3                                                                          [?25h[?0c[?25l[?1c:[?25h[?0cset modified
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cwincmd t
[?25l[?1cXtest1 [+]                                                                      Xtest3 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0chide
[?25l[?1ctesttext 2
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest2 [+]                                                                      testtext 3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               Xtest3 [+]                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c3~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1cE37: No write since last change

E162: No write since last change for buffer "Xtest1"

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 1 line, 11 characters appended

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test31 = test61; then \
#	  if diff test.out test31.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test31.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test31.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test33.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'lisp'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 63 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset lisp
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^(defun
[?25l[?1c[?25h[?0c[?25l[?1c22 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[?25h[?0c[?25l[?1c:[?25h[?0c/^(defun/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 23 lines, 544 characters written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test33 = test61; then \
#	  if diff test.out test33.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test33.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test33.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test34.in
[?25h[?8c[?25h[?0c[?25l[?1c"test34.in" 87 lines, 1833 charactersTest for user functions.
Also test an <expr> 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for user functions.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 78 lines, 1621 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction Table(title, ...)
[?25l[?1c
:  [?25h[?0c:  let ret = a:title

[?25l[?1c:  [?25h[?0c:  let idx = 1

[?25l[?1c:  [?25h[?0c:  while idx <= a:0

[?25l[?1c:    [?25h[?0c:    exe "let ret = ret . a:" . idx

[?25l[?1c:    [?25h[?0c:    let idx = idx + 1

[?25l[?1c:    [?25h[?0c:  endwhile

[?25l[?1c:  [?25h[?0c:  return ret

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c: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[?25h[?0c[?25l[?1c

:[?25h[?0cfunction Compute(n1, n2, divname)
[?25l[?1c
:  [?25h[?0c:  if a:n2 == 0

[?25l[?1c:    [?25h[?0c:    return "fail"

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  exe "let g:" . a:divname . " = ". a:n1 / a:n2

[?25l[?1c:  [?25h[?0c:  return "ok"

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c: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))[?25h[?0c[?25l[?1c

:[?25h[?0cfunc Expr1()
[?25l[?1c
:  [?25h[?0c:  normal! v

[?25l[?1c:  [?25h[?0c:  return "111"

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc Expr2()
[?25l[?1c
:  [?25h[?0c:  call search('XX', 'b')

[?25l[?1c:  [?25h[?0c:  return "222"

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc ListItem()
[?25l[?1c
:  [?25h[?0c:  let g:counter += 1

[?25l[?1c:  [?25h[?0c:  return g:counter . '. '

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc ListReset()
[?25l[?1c
:  [?25h[?0c:  let g:counter = 0

[?25l[?1c:  [?25h[?0c:  return ''

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0cfunc FuncWithRef(a)
[?25l[?1c
:  [?25h[?0c:  unlet g:FuncRef

[?25l[?1c:  [?25h[?0c:  return a:a

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c:call append(line('$'), max([1, 2, 3]))
:try
:    " Regression: the first line below used to throw ?E110: Missing ')'?[?25h[?0c[?25l[?1c

:[?25h[?0clet g:FuncRef=function("FuncWithRef")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet counter = 0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <expr> ( ListItem()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <expr> [ ListReset()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cimap <expr> + Expr1()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cimap <expr> * Expr2()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet retval = "nop"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^here
[?25l[?1c[?25h[?0c[?25l[?1cher$=[?25h[?0cTable("xxx", 4, "asdf")
[?25l[?1c=[?25h[?0cCompute(45, 0, "retval")
[?25l[?1c=[?25h[?0cretval
[?25l[?1c=[?25h[?0cCompute(45, 5, "retval")
[?25l[?1c=[?25h[?0cretval
[?25l[?1c=[?25h[?0cg:FuncRef(333)

[?25l[?1cError detected while processing function Expr1:

line    1:

E523: Not allowed here

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:    $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. two[?25h[?0c[?25l[?1c1. one again[?25h[?0c[?25l[?1c
:[?25h[?0ccall append(line('$'), max([1, 2, 3]))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall extend(g:, {'max': function('min')})
[?25l[?1cE704: Funcref variable name must start with a capital: max[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), max([1, 2, 3]))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:    " Regression: the first line below used to throw ?E110: Missing ')'?

[?25l[?1c:  [?25h[?0c:    " Second is here just to prove that this line is correct when not skipp

ing

[?25l[?1c:  [?25h[?0c:    " rhs of &&.

[?25l[?1c:  [?25h[?0c:    $put =(0&&(function('tr'))(1, 2, 3))

[?25l[?1c:  [?25h[?0c:    $put =(1&&(function('tr'))(1, 2, 3))

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:    $put ='!!! Unexpected exception:'

[?25l[?1c:  [?25h[?0c:    $put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c:    $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[?25h[?0c[?25l[?1c
:[?25h[?0c$-9,$w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 81 characters written[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Table
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Compute
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Expr1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc Expr2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc ListItem
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc ListReset
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cunlet retval counter
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test34 = test61; then \
#	  if diff test.out test34.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test34.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test34.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test36.in
[?25h[?8c[?25h[?0c[?25l[?1c"test36.in" 108 lines, 2025 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest character classes in regexp using regexpengine 0, 1, 2.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 101 lines, 1850 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTp: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
p:s/\%#=0\%204l^\t...//g
p:s/\%#=1\%205l^\t...//g
p:s/\%#=2\%206l^\t...//g
:/^start-here/+1,$wq! test.out
ENDTEST







:[?25h[?0cs/\%#=0\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\D//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-9]//g
[?25l[?1c72 substitutions on 1 line0123456789~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\O//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\O//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-7]//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-7]//g
[?25l[?1c74 substitutions on 1 line01234567~                                                                               [?25h[?0c[?25l[?1c




~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\X//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\X//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=1[^0-9A-Fa-f]//g
[?25l[?1c60 substitutions on 1 line0123456789ABCDEFabcdef~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c





:[?25h[?0cs/\%#=0\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\W//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^0-9A-Za-z_]//g
[?25l[?1c46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\H//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Za-z_]//g
[?25l[?1c56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\A//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Za-z]//g
[?25l[?1c57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c







:[?25h[?0cs/\%#=0\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2\L//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=0[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^a-z]//g
[?25l[?1c69 substitutions on 1 lineabcdefghiwxyz~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=0\U//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0cs/\%#=2\U//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=1[^A-Z]//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cs/\%#=2[^A-Z]//g
[?25l[?1c70 substitutions on 1 lineABCDEFGHIXYZ~                                                                               [?25h[?0c[?25l[?1c


~                                                                               [?25h[?0c[?25l[?1c


# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test36 = test61; then \
#	  if diff test.out test36.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test36.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test36.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test37.in
[?25h[?8c[?25h[?0c[?25l[?1c"test37.in" 116 lines, 3262 charactersTest for 'scrollbind'. <eralston@computer.org>   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 --[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below![?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 1498 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt=ver,jump
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrolloff=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nowrap
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noequalalways
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset splitbelow
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST using two windows open to one buffer, one extra empty window
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c^WtH3k^WtHyybp^Wt^Wjyy^Wbp:
:" ***** done with tests *****
:w! test.out    " Write contents of this file
:qa!ENDTESTstart of window 1. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02test37.in                                                                       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!ENDTESTstart of window 11122
test37.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c:w! test.out             " Write contents of this file
:qa!ENDTESTtest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name][?25h[?0ctest37.in                                                                       [No Name]                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cresize 8
[?25l[?1c:" ***** done with tests *****w! test.out             " Write contents of this file
:qa!ENDTESTstart of window 1
. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
test37.in                                                                       :" ***** done with tests *****:w! test.out             " Write contents of this fileqa!ENDTESTstart of window 1[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 1$/
[?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0ctest37.in                                                                       test37.in                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cresize 7
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 2$/
[?25l[?1cend of window 1start of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03[?25h[?0c[?25l[?1c
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" -- start of tests --
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling down
[?25l[?1c[?25h[?0c

[?25l[?1c. 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 09[?25h[?0ctest37.in                                                                       [No Name]                                                                       [?25l[?1c
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[+][?25h[?0c[?25l[?1c0[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?25h[?0c[?25l[?1c1[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   


[?25l[?1c. 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 15[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c2[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling up
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08440505060607070808090900[?25h[?0ctest37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?25h[?0c[?25l[?1c4[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?25h[?0c[?25l[?1c5[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1cstart 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
[?25h[?0ctest37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?25h[?0c[?25l[?1c6[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c7[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST horizontal scrolling
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt+=hor
[?25l[?1c[?25h[?0c[?25l[?1c05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c4 line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
5 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0656789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1cUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415UTSRQPONMLKJIHGREDCBA9876543210 09101112131415[?25h[?0c[?25l[?1c. 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 15[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   
test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt-=hor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" ****** tests using two different buffers *****
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       test37.in                                                                       [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cstart of window 20000000000[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of window 2$/,/^end of window 2$/y
[?25l[?1c18 lines yanked[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1ctest37.in                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name][?25h[?0ctest37.in                                                                       [No Name]                                                                       test37.in                                                                       [No Name]                                                                       [?25l[?1c4 more lines[+][?25h[?0c


[?25l[?1c18 more linesstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c/[?25h[?0c^start of window 1$/
[?25l[?1csearch hit BOTTOM, continuing at TOPENDTESTstart of window 1010102020303[?25h[?0c[?25l[?1c
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start of window 2$/
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" -- start of tests --
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling down
[?25l[?1c[?25h[?0c


[?25l[?1c. 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[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
[?25h[?0c[?25l[?1c0[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
[?25h[?0c[?25l[?1c1[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   

[?25l[?1c. 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 16[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
[?25h[?0c[?25l[?1c2[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST scrolling up
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c440505060607070808090900. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
[?25h[?0c[?25l[?1c4[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
[?25h[?0c[?25l[?1c5[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1cstart 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
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
[?25h[?0c[?25l[?1c6[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c7[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST horizontal scrolling
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt+=hor
[?25l[?1c[?25h[?0c[?25l[?1c05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
46 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
56 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06UTSRQPONMLKJIHGREDCBA9876543210 07[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c
[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1cUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415

UTSRQPONMLKJIHGREDCBA9876543210 0910111213141516[?25h[?0c[?25l[?1c. 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[?25h[?0c[?25l[?1c[?25h[?0c[No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   
test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset scrollopt-=hor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TEST syncbind
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below!
STARTTEST:so small.vim:set noscrollbind:set scrollopt=ver,jump:set scrolloff=2:set nowrap[?25h[?0c


test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cstart of window 201010202[?25h[?0c[?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0c[?25l[?1c. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1czt::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] [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0csyncbind
[?25l[?1c[?25h[?0c[?25l[?1c/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
:set scrollbind
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below!
STARTTEST
:so small.vimset noscrollbindset scrollopt=ver,jump
:set scrolloff=2set nowrap[?25h[?0c


test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset noscb
[?25l[?1c[?25h[?0c[?25l[?1cstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0cset scb
[?25l[?1c[?25h[?0c[?25l[?1c. 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1czt::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] [+]                                                                   [?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1c:[?25h[?0csyncbind
[?25l[?1c[?25h[?0c[?25l[?1c/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
:set scrollbind
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   [?25l[?1czt:
:set scrollbind
^Wj:
:resize 7. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [?25l[?1c
^Wj:
[?25h[?0ctest37.in                                                                       [No Name] [+]                                                                   test37.in                                                                       [No Name] [+]                                                                   [No Name] [+]                                                                   [No Name] [+]                                                                   [?25l[?1c
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" ***** done with tests *****
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out             " Write contents of this file
[?25l[?1c"test.out" [New File] 33 lines, 1329 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test37 = test61; then \
#	  if diff test.out test37.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test37.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test37.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test38.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 407 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTopq 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure that backspace works, no matter what termcap is used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset t_kD=^^? t_kb=^^H
[?25l[?1c^[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
[?25h[?0c[?25l[?1cTest 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[?25h[?0c[?25l[?1c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c
abcdefghijk      lmn    opq rstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0cset ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bs=2
[?25l[?1c[?25h[?0c[?25l[?1c 1
 A BCDEFGHIJ    KL        MNOPQR[?25h[?0c[?25l[?1c:[?25h[?0cka
[?25l[?1c[?25h[?0c[?25l[?1cabcdefghijk      lmn    opq rstuvwxyz[?25h[?0c
[?25l[?1c 1[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1cab      cdefghi jkl[?25h[?0c
[?25l[?1cAB......CDEFGHI.J[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cabcdefghijklmnopqrst[?25h[?0c
[?25l[?1cAB      IJKLMNO QR[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 13 lines, 107 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test38 = test61; then \
#	  if diff test.out test38.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test38.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test38.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test39.in
[?25h[?8c[?25h[?0c[?25l[?1c"test39.in" 118 lines, 2435 charactersTest Visual block mode commands
And test "U" in Visual mode, also on German sharp S.

#define BO_ALL      0x0001
#define BO_BS0x0002
#define BO_CRSR     0x0004

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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 75 lines, 2061 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:exe ":norm! 2k\<C-V>$gj\<Esc>"
:let cpos=getpos("'>")
:$put ='col:'.cpos[2].' off:'.cpos[3]
:"
:" block_insert when replacing spaces in front of the block with tabs
:set ts=8 sts=4 sw=4
:4,7y
Gp
:exe ":norm! f0\<C-V>2jI\<tab>\<esc>"
:/^the/,$w >> test.out
:qa!
ENDTESTline1line2line3

aaaaaa
bbbbbb
cccccc
dddddd

xaaa[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This only works when 'encoding' is "latin1", don't depend on the environment
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c:exe ":norm! 2k\<C-V>$gj\<Esc>"
:let cpos=getpos("'>")
:$put ='col:'.cpos[2].' off:'.cpos[3]
:"
:" block_insert when replacing spaces in front of the block with tabs
:set ts=8 sts=4 sw=4
:4,7y
Gp
:exe ":norm! f0\<C-V>2jI\<tab>\<esc>"
:/^the/,$w >> test.out
:qa!
ENDTESTline1line2line3

aaaaaa
bbbbbb
cccccc
dddddd

xaaa[?25h[?0c[?25l[?1c/[?25h[?0c^abcde
[?25l[?1cbbbb
cccc
dddd

yaaa
bbb

A23
4567

B23
4567

C23
4567

abcdefghijklm[?25h[?0c[?25l[?1c
:[?25h[?0c" Test shift-right of a block
[?25l[?1c[?25h[?0c[?25l[?1c
abcdefghijklm[?25h[?0cabcd[?25l[?1c[?25h[?0c[?25l[?1c
e
abcdefghijklm
abcd[?25h[?0c[?25l[?1c
e
abcdefghijklm
abcd[?25h[?0c[?25l[?1c
3 lines >ed 1 time        efghijklm
abcd        efghijklm
abcd        efghijklm[?25h[?0c     ef[?25l[?1c[?25h[?0c[?25l[?1cg[?25h[?0c[?25l[?1chg[?25h[?0c[?25l[?1cih[?25h[?0c[?25l[?1cji[?25h[?0c[?25l[?1c        ghijklm        ghijklm[?25h[?0c[?25l[?1c:[?25h[?0c" Test shift-left of a block
[?25l[?1c[?25h[?0c[?25l[?1c
abcdefghijklm[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci[?25h[?0c[?25l[?1c [?25h[?0c[?25l[?1c


3 lines <ed 1 timeef    efghijklmi[?25h[?0c[?25l[?1c:[?25h[?0c" Test block-insert
[?25l[?1c[?25h[?0c
a[?25l[?1c[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1c
ab
ab
abxyzbcdefghijklm
axyzbcd
axyzbcd
axyzbcd[?25h[?0c
a[?25l[?1c:[?25h[?0c" Test block-replace
[?25l[?1c[?25h[?0c


abcd[?25l[?1c[?25h[?0c[?25l[?1ce[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cbccf[?25h[?0c[?25l[?1ccddg[?25h[?0c[?25l[?1cd  h[?25h[?0c[?25l[?1cqqqq
axyzqqqq
axyzqqqq
abcdqqqq[?25h[?0c
axyz[?25l[?1c:[?25h[?0c" Test block-change
[?25l[?1c[?25h[?0c

[?25l[?1c[?25h[?0c[?25l[?1cj[?25h[?0c[?25l[?1ci[?25h[?0c[?25l[?1c     ghijkl[?25h[?0c[?25l[?1cef  gkl[?25h[?0c[?25l[?1cmnomnomno[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$w! test.out
[?25l[?1c"test.out" [New File] 5 lines, 108 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Test block-insert using cursor keys for movement
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^aaaa/
[?25l[?1csearch hit BOTTOM, continuing at TOPaaaaaa
bbbbbb
cccccc
ddddddsearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>jjjlllI\<Right>\<Right>  \<Esc>"
[?25l[?1c  aaa
bbb  bbb
ccc  ccc
ddd  ddd[?25h[?0c[?25l[?1c:[?25h[?0c/^aa/,/^$/w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 37 characters appended[?25h[?0c[?25l[?1c/[?25h[?0cxaaa$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-V>jjjI<>\<Left>p\<Esc>"
[?25l[?1c<p>xaaa
<p>bbbb
<p>cccc
<p>dddd[?25h[?0c[?25l[?1c:[?25h[?0c/xaaa$/,/^$/w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 5 lines, 33 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the last <C-v>$
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^A23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$Aab\<Esc>"
[?25l[?1cab
4567ab[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 14 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the middle <C-v>$ (1)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^B23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$hAab\<Esc>"
[?25l[?1cab
4567ab[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 15 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block was created with the middle <C-v>$ (2)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^C23$/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! l\<C-V>j$hhAab\<Esc>"
[?25l[?1cab
456ab7[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 3 lines, 14 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block insert when virtualedit=all and utf-8 encoding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all enc=utf-8
[?25l[?1caaa  aaa
bbb  bbb
ccc  ccc
ddd  ddd

<p>xaaa
<p>bbbb
<p>cccc
<p>dddd

yaaa
<bf><bf><bf>
bbb

A23ab
4567ab

B23 ab
4567ab

C23ab
456ab7[?25h[?0c[?25l[?1c


:[?25h[?0c/\t\tline
[?25l[?1csearch hit BOTTOM, continuing at TOPline1line2line3search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 07l\<C-V>jjIx\<Esc>"
[?25l[?1cxxx[?25h[?0c[?25l[?1c:[?25h[?0c.,/^$/w >> test.out
[?25l[?1c"test.out" 4 lines, 49 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for Visual block append when virtualedit=all
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 012l\<C-v>jjAx\<Esc>"
[?25l[?1cx   line1x   line2x   line3[?25h[?0c[?25l[?1c:[?25h[?0cset ve= enc=latin1
[?25l[?1cx     x   line1x     x   line2x     x   line3

aaa  aaa
bbb  bbb
ccc  ccc
ddd  ddd

<p>xaaa
<p>bbbb
<p>cccc
<p>dddd

yaaa
bbb

A23ab
4567ab

B23 ab
456ab7

axyzbcdefghijklm
axyzqqqq   mnoghijklm
axyzqqqqef mnoghijklm
axyzqqqqefgmnoklm
abcdqqqqijklm[?25h[?0c[?25l[?1c
the [?25l[?1c
:[?25h[?0c" VU must uppercase a whole line
[?25l[?1c[?25h[?0c[?25l[?1c
[?25l[?1c
:[?25h[?0c" same, when it's the last line in the buffer
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
[?25l[?1c
:[?25h[?0c" Uppercase two lines
[?25l[?1c[?25h[?0c[?25l[?1c
blah didoh dut[?25h[?0c[?25l[?1c
doh dut [?25h[?0c[?25l[?1cblah di t[?25h[?0c[?25l[?1c
BLAH DIDOH DUT[?25h[?0c[?25l[?1c
:[?25h[?0c" Uppercase part of two lines
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c
333the yo[?25h[?0c[?25l[?1cut[?25h[?0c[?25l[?1cUTUSSEUU END
333THE YOUTU[?25h[?0c[?25l[?1c

:[?25h[?0c" visual replace using Enter or NL
[?25l[?1c[?25h[?0c
[?25l[?1c123456789
123456789
123456789[?25h[?0c
12345[?25l[?1c[?25h[?0c[?25l[?1c66[?25h[?0c[?25l[?1c789[?25h[?0c[?25l[?1c789
12345
789
[?25h[?0c[?25l[?1c98765
98765
98765[?25h[?0c
98[?25l[?1c[?25h[?0c[?25l[?1c7
987
98[?25h[?0c[?25l[?1c^M65
98^M65
98^M65[?25h[?0c
98
[?25l[?1c123456789
123456789
123456789[?25h[?0c
12345[?25l[?1c[?25h[?0c[?25l[?1c66[?25h[?0c[?25l[?1c789[?25h[?0c[?25l[?1c789
12345
789
[?25h[?0c[?25l[?1c98765
98765
98765[?25h[?0c
98[?25l[?1c[?25h[?0c[?25l[?1c7
987
98[?25h[?0c[?25l[?1c^@65
98^@65
98^@65[?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test cursor position. When ve=block and Visual block mode and $gj
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=block
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! 2k\<C-V>$gj\<Esc>"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet cpos=getpos("'>")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='col:'.cpos[2].' off:'.cpos[3]
[?25l[?1c
col:4 off:0[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" block_insert when replacing spaces in front of the block with tabs
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ts=8 sts=4 sw=4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c4,7y
[?25l[?1c4 lines yanked[?25h[?0c[?25l[?1c
4 more lines
4 more lines[?25h[?0c[?25l[?1c
#define BO_ALL      0x0001[?25h[?0c[?25l[?1c
:[?25h[?0cexe ":norm! f0\<C-V>2jI\<tab>\<esc>"
[?25l[?1c    0x0001
#define BO_BS0x0002
#define BO_CRSR0x0004[?25h[?0c[?25l[?1c


:[?25h[?0c/^the/,$w >> test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" 31 lines, 322 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test39 = test61; then \
#	  if diff test.out test39.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test39.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test39.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test40.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for "*Cmd" autocommands[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1455 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start/,$w! Xxx^I^I" write lines below to Xxx
[?25l[?1c"Xxx" [New File] 3 lines, 32 characters written[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadCmd XtestA 0r Xxx|$del
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce XtestA^I^I^I" will read text of Xxd instead
[?25l[?1c"Xxx" 3 lines, 32 charactersstart of Xxx        test40end of Xxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau BufWriteCmd XtestA call append(line("$"), "write")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw^I^I^I^I" will append a line to the file
[?25l[?1cwrite[?25h[?0c[?25l[?1c:[?25h[?0cr XtestA^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestA[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" now we have:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileReadCmd XtestB '[r Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2r XtestB^I^I^I" will read Xxx below line 2 instead
[?25l[?1c"Xxx" 3 lines, 32 charactersstart of Xxxtest40
end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWriteCmd XtestC '[,']copy $
[?25l[?1c[?25h[?0c[?25l[?1ctest401[?25h[?0c[?25l[?1c:[?25h[?0c4,5w XtestC^I^I^I" will copy lines 4 and 5 to the end
[?25l[?1c        test401end of Xxx[?25h[?0c[?25l[?1c:[?25h[?0cr XtestC^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestC[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 8^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 9^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FILEAppendCmd XtestD '[,']w! test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>XtestD^I^I^I" will write all lines to test.out
[?25l[?1c"test.out" [New File] 9 lines, 91 characters written[?25h[?0c[?25l[?1c:[?25h[?0c$r XtestD^I^I^I" should not read anything
[?25l[?1cE484: Can't open file XtestD[?25h[?0c[?25l[?1c:[?25h[?0c$w >>test.out^I^I^I" append "end of Xxx" to test.out
[?25l[?1c"test.out" 1 line, 11 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadCmd XtestE 0r test.out|$del
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csp XtestE^I^I^I" split window with test.out
[?25l[?1c"test.out" 10 lines, 102 charactersend of XxxXtestE                                                                          end of Xxxwrite        test401end of XxxXtestA                                                                          [?25h[?0c[?25l[?1casdf[+][?25h[?0cXtestE [+]                                                                      XtestA                                                                          [?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufWriteCmd XtestE w! test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwall^I^I^I^I" will write other window to test.out
[?25l[?1c"test.out" 11 lines, 107 characters written   [?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 1^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 2^I^Itest40
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 3^Istart of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 4^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 5^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 6^Iasdf
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 7^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 8^Iwrite
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 9^I^Itest401
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 10^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c^I^I^I^I" 11^Iend of Xxx
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test40 = test61; then \
#	  if diff test.out test40.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test40.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test40.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test41.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for writing and reading a file of over 100 Kbyte[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 13 lines, 196 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cThis is the start
This is the leaderThis is the middleThis is the trailerThis is the end[?25h[?0c[?25l[?1c3000 more linestrailer
This is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailer[?25h[?0c[?25l[?1cleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader[?25h[?0c
[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 6005 lines, 117092 characters written[?25h[?0c[?25l[?1c:[?25h[?0c%d
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest
[?25l[?1c"Xtest" 6005 lines, 117092 charactersThis is the start
This is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leader[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 18 characters written[?25h[?0c[?25l[?1cThis 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[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 19 characters appended[?25h[?0c[?25l[?1cThis 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
[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1 line, 16 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test41 = test61; then \
#	  if diff test.out test41.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test41.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test41.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test42.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for writing and reading a file starting with a BOM[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2116 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
utf-8
utf-8
utf-8-err
utf-8~@err
ucs-2
ucs-2le
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1c: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
<fe><fe>latin-1
utf-8
<feff>utf-8
utf-8-err
<feff>utf-8<80>err
ucs-2
<fe><ff>^@u^@c^@s^@-^@2^@
ucs-2le
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?25h[?0c[?25l[?1c:[?25h[?0cset fileencodings=ucs-bom,latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix ffs=unix           " This changes the file for DOS and MAC
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Write the test files
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^latin-1$/+1w! Xtest0
[?25l[?1c"Xtest0" [New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^utf-8$/+1w! Xtest1
[?25l[?1c"Xtest1" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^utf-8-err$/+1w! Xtest2
[?25l[?1c"Xtest2" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-2$/+1w! Xtest3
[?25l[?1c"Xtest3" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-2le$/+1w! Xtest4
[?25l[?1c"Xtest4" [New File] 1 line, 17 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Need to add a NUL byte after the NL byte
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest4                      " Ignore change from setting 'ff'
[?25l[?1c"Xtest4" 1 line, 17 characters<ff><fe>u^@c^@s^@-^@2^@l^@e^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c^@[?25h[?0c[?25l[?1c:[?25h[?0cset noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtest4" [Incomplete last line] 2 lines, 18 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset ffs& nobinary              " Allow default test42.in format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce #
[?25l[?1c"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-1utf-8utf-8utf-8-errutf-8<80>errucs-2þÿ^@u^@c^@s^@-^@2^@ucs-2leÿþu^@c^@s^@-^@2^@l^@e^@ucs-4[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix                    " Format for files to write
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-4$/+1w! Xtest5
[?25l[?1c"Xtest5" [converted][New File] 1 line, 30 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^ucs-4le$/+1w! Xtest6
[?25l[?1c"Xtest6" [converted][New File] 1 line, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Need to add three NUL bytes after the NL byte
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest6                      " ! for when setting 'ff' is a change
[?25l[?1c"Xtest6" 1 line, 33 characters<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c
~   [?25l[?1c
^@^@^@[?25h[?0c[?25l[?1c:[?25h[?0cset noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtest6" [Incomplete last line] 2 lines, 36 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset nobin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce #
[?25l[?1c"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-1utf-8utf-8utf-8-errutf-8<80>errucs-2þÿ^@u^@c^@s^@-^@2^@ucs-2leÿþu^@c^@s^@-^@2^@l^@e^@ucs-4[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check that editing a latin-1 file doesn't see a BOM
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest0
[?25l[?1c"Xtest0" [converted] 1 line, 12 charactersþþlatin-1~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0credir! >test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=latin1

nobomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cþþlatin-1
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 12 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset bomb fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest0x
[?25l[?1c"Xtest0x" [converted][New File] 1 line, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest1
[?25l[?1c"Xtest1" 1 line, 9 charactersutf-8[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-8

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cutf-8
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest1x
[?25l[?1c"Xtest1x" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check utf-8 with an error (will fall back to latin-1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest2
[?25l[?1c"Xtest2" [converted] 1 line, 17 charactersutf-8<80>err
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=latin1

nobomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cutf-8<80>err
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 17 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=utf-8
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest2x
[?25l[?1c"Xtest2x" [New File] 1 line, 17 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest3
[?25l[?1c"Xtest3" [converted] 1 line, 8 charactersucs-2[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-16

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-2
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest3x
[?25l[?1c"Xtest3x" [converted][New File] 1 line, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-2le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest4
[?25l[?1c"Xtest4" [converted] 1 line, 10 charactersle
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=utf-16le

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-2le
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 8 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-2le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest4x
[?25l[?1c"Xtest4x" [converted][New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest5
[?25l[?1c"Xtest5" [converted] 1 line, 10 characters4[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=ucs-4

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-4
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 6 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest5x
[?25l[?1c"Xtest5x" [converted][New File] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check ucs-4le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest6
[?25l[?1c"Xtest6" [converted] 1 line, 12 charactersle
[?25h[?0c[?25l[?1c:[?25h[?0credir >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileencoding bomb?
[?25l[?1c  fileencoding=ucs-4le

  bomb

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1cucs-4le
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset fenc=latin-1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" [converted] 1 line, 8 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=ucs-4le
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest6x
[?25l[?1c"Xtest6x" [converted][New File] 1 line, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" --- Check the files written with BOM
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 35 lines, 275 characters  fileencoding=latin1nobomb<fe><fe>latin-1  fileencoding=utf-8  bombutf-8  fileencoding=latin1nobomb<feff>utf-8<80>err  fileencoding=utf-16  bombucs-2  fileencoding=utf-16le[?25h[?0c[?25l[?1c:[?25h[?0c$r Xtest0x
[?25l[?1c"Xtest0x" 1 line, 10 charactersbomb
ucs-2lefileencoding=ucs-4
  bomb
ucs-4fileencoding=ucs-4le
  bomb
ucs-4le
<fe><fe>latin-1[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest1x
[?25l[?1c"Xtest1x" 1 line, 9 characters
<feff>utf-8[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest2x
[?25l[?1c"Xtest2x" 1 line, 17 characters
utf-8<80>err[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest3x
[?25l[?1c"Xtest3x" 1 line, 14 characters
<fe><ff>^@u^@c^@s^@-^@2^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest4x
[?25l[?1c"Xtest4x" [Incomplete last line] 2 lines, 18 characters
<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest5x
[?25l[?1c"Xtest5x" 1 line, 28 characters^@
^@^@<fe><ff>^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtest6x
[?25l[?1c"Xtest6x" [Incomplete last line] 2 lines, 36 characters
<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?25h[?0c[?25l[?1c
:[?25h[?0cset nobin ff&               " Write the file in default format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" 44 lines, 409 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test42 = test61; then \
#	  if diff test.out test42.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test42.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test42.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test43.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 268 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^1
[?25l[?1c
1 a aa abb abbccc[?25h[?0c[?25l[?1c
/[?25h[?0ca*b\{2}c\+/e
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\Md\*e\{2}f\+/e
[?25l[?1c
2 d dd dee deefff[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cg\*h\{2}i\+/e
[?25l[?1c
3 g gg ghh ghhiii[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\mj*k\{2}l\+/e
[?25l[?1c
4 j jj jkk jkklll[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\vm*n{2}o+/e
[?25l[?1c
5 m mm mnn mnnooo[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\V^aa$
[?25l[?1c
6 x ^aa$ x[?25h[?0c[?25l[?1caa$ x[?25h[?0c[?25l[?1c
:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\v(a)(b)\2\1\1/e
[?25l[?1c
7 (a)(b) abbaa[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0c\V[ab]\(\[xy]\)\1
[?25l[?1c
8 axx [ab]xx[?25h[?0c[?25l[?1cab]x[?25h[?0c[?25l[?1c
:[?25h[?0c$
[?25l[?1c9 foobar[?25h[?0c[?25l[?1c
:[?25h[?0cset undolevels=100
[?25l[?1c[?25h[?0c[?25l[?1c?[?25h[?0cbar?
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

1 more line; before #2  0 seconds agobar[?25h[?0c[?25l[?1c
9 foo
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c?^1?,$w! test.out
[?25l[?1c"test.out" [New] 11L, 137C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test43 = test61; then \
#	  if diff test.out test43.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test43.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test43.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test44.in
[?25h[?8c[?25h[?0c[?25l[?1c"test44.in" 81 lines, 1492 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
f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with multi-byte encoding and various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
:new
:$put =['dog(a', 'cat(']
/(/e+
"ayn:bd!
:$put =''
G"ap
: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
:new
:$put =['dog(a', 'cat(']
/(/e+
"ayn:bd!
:$put =''
G"ap
: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
:[?25h[?0c" Test \%u, [\u] and friends
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" c
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%u20ac
[?25l[?1c
:[?25h[?0c" d
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\u4f7f\u5929]\+
[?25l[?1c
:[?25h[?0c" e
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%U12345678
[?25l[?1c
:[?25h[?0c" f
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c[\U1234abcd\u1234\uabcd]
[?25l[?1c
:[?25h[?0c" g
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%d21879b
[?25l[?1c
:[?25h[?0c" j Test backwards search from a multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cx
[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" l Test what 7.3.192 fixed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^l
[?25l[?1c
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
g abb
test.out [+]                                                                    [?25h[?0c[?25l[?1c:[?25h[?0c$put =['dog(a', 'cat(']
[?25l[?1cdog(acat([+][?25h[?0c[?25l[?1c/[?25h[?0c(/e+
[?25l[?1c/(/e+1
[?25h[?0c[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0cbd!
[?25l[?1c1 a aa abb abbcc
2 d dd dee deeff
3 g gg ghh ghhii
e y
[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1c
cat(
[?25h[?0c[?25l[?1c
:[?25h[?0cw!
[?25l[?1c"test.out" 25L, 271C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test44 = test61; then \
#	  if diff test.out test44.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test44.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test44.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test45.in
[?25h[?8c[?25h[?0c[?25l[?1c"test45.in" 90 lines, 1953 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("."))[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for folding. vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 73 lines, 1820 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:new
iTest fdm=indent and :move bug END
line2Test fdm=indent STARTline3line4^[
:set fdm=indent
:1m1
2jzc:m0
:%w >> test.out
:qa!
ENDTEST

1 aa
2 bb
3 cc
4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg
8 hh
9 ii
a jj[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" We also need the +syntax feature here.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("syntax")
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   w! test.out

[?25l[?1c:  [?25h[?0c   qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:new
iTest fdm=indent and :move bug END
line2Test fdm=indent START[?25h[?0c[?25l[?1c:[?25h[?0c" basic test if a fold can be created, opened, moving to the end and closed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^1
[?25l[?1c[?25h[?0c[?25l[?1c+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "manual " . getline(foldclosed(".")))
[?25l[?1c[?25h[?0c[?25l[?1c1 aa2 bb3 cc4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg
8 hh
9 ii
a jj[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldclosed("."))
[?25l[?1c[?25h[?0c

[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c+--  3 lines: 1 aa--------------------------------------------------------------4 dd {{{
5 ee {{{ }}}
6 ff }}}
7 gg8 hh9 ii
a jj
b kk
last[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline(foldclosed(".")))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test folding with markers.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=marker fdl=1 fdc=3
[?25l[?1c   :new
   iTest fdm=indent and :move bug END
   line2
           Test fdm=indent START
           line3
           line4^[
   :set fdm=indent
   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa   2 bb   3 cc-  4 dd {{{
|- 5 ee {{{ }}}
|  6 ff }}}
   7 gg
   8 hh
   9 ii
   a jj[?25h[?0c[?25l[?1c/[?25h[?0c^5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "marker " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c{{ |  6 ff }}}[?25h[?0c[?25l[?1c-{|
|
|
|[?25h[?0c[?25l[?1c


:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c6 ff }}}
 7 gg
 8 hh[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test folding with indent
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=indent sw=2
[?25l[?1c-++---  3 lines: Test fdm=indent START-----------------------------------------:set fdm=indent:1m12jzc:m0%w >> test.out:qa!ENDTEST1 aa2 bb3 cc4 dd {{{5 ee {{{ }}}
 {{{  6 ff }}}  6 ff }}}
  7 gg 8 hh9 iia jj[?25h[?0c[?25l[?1c/[?25h[?0c^2 b
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c
-  2 bb[?25h[?0c[?25l[?1c
|-    3 cc[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "indent " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test syntax folding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=syntax fdl=0
[?25l[?1c          Test fdm=indent START        line3        line4^[:set fdm=indent1m12jzc:m0:%w >> test.out:qa!ENDTEST
   1 aa  2 bb    3 cc4 dd {{{5 ee {{{ }}}{{{6 ff }}}6 ff }}}7 gg8 hh[?25h[?0c[?25l[?1c:[?25h[?0csyn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
[?25l[?1c++--  8 lines: 4 dd ----------------------------------------------------------a jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd1 start="ee" end="ff" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd2 start="gg" end="hh" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn region Fd3 start="commentstart" end="commentend" fold contained
[?25l[?1c[?25h[?0c[?25l[?1c   1 aa
   marker 2
   1
   1
   0
   indent 2
   1[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "folding " . getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c
--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[?25h[?0c[?25l[?1c commentend- 
|-

| 
  
  
  
  
  
  [?25h[?0c[?25l[?1c:[?25h[?0cset fdl=1
[?25l[?1c++---  3 lines: 5 ee --------------------------------------------------------- 6 ff }}}++---  2 lines: 7 gg----------------------------------------------------------9 ii  a jj
  b kk
 lastmanual 1 aa-13 cc1 aamarker 21[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fdl=0
[?25l[?1c++--  8 lines: 4 dd commentstart  commentend----------------------------------  a jj b kk  last manual 1 aa-13 cc1 aarker 2110indent[?25h[?0c[?25l[?1c
-4 dd {{{commentstart  commentend|-5 ee {{{ }}}
||{{{||6 ff }}}
|6 ff }}}|-7 gg
||8 hh
|9 iia jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c   :1m1
   2jzc:m0
   :%w >> test.out
   :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[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", getline("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test expression folding
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun Flvl()
[?25l[?1c
:  [?25h[?0c  let l = getline(v:lnum)

[?25l[?1c:  [?25h[?0c  if l =~ "bb$"

[?25l[?1c:    [?25h[?0c    return 2

[?25l[?1c:    [?25h[?0c  elseif l =~ "gg$"

[?25l[?1c:    [?25h[?0c    return "s1"

[?25l[?1c:    [?25h[?0c  elseif l =~ "ii$"

[?25l[?1c:    [?25h[?0c    return ">2"

[?25l[?1c:    [?25h[?0c  elseif l =~ "kk$"

[?25l[?1c:    [?25h[?0c    return "0"

[?25l[?1c:    [?25h[?0c  endif

[?25l[?1c:  [?25h[?0c  return "="

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c   :1m1
   2jzc:m0
   :%w >> test.out
   :qa!
   ENDTEST
   
   1 aa
     2 bb
       3 cc
-  4 dd {{{commentstart  commentend
|- 5 ee {{{ }}}
|| {{{[?25h[?0c[?25l[?1c:[?25h[?0cset fdm=expr fde=Flvl()
[?25l[?1c++-- 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---------------------------------------------------~                                                                            ~                                                                            [?25h[?0c[?25l[?1c/[?25h[?0cbb$
[?25l[?1csearch 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[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", "expr " . foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0chh$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cii$
[?25l[?1c-9 ii||a jjb kklastmanual 1 aa-13 cc[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0ckk$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append("$", foldlevel("."))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^last/+1,$w! test.out
[?25l[?1c"test.out" [New File] 18 lines, 96 characters written[?25h[?0c[?25l[?1c:[?25h[?0cdelfun Flvl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c  
  
  
  ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            ~                                                                            [No Name]                                                                       5 ee {{{ }}}{{{6 ff }}}|6 ff }}}|7 gg 8 hh
|-9 ii
||a jjb kklast
test45.in [+]                                                                   [?25h[?0c[?25l[?1cTest fdm=indent and :move bug ENDline2        Test fdm=indent START        line3        line4[+][?25h[?0c[?25l[?1c:[?25h[?0cset fdm=indent
[?25l[?1c++--  3 lines: Test fdm=indent START------------------------------------------~                                                                            ~                                                                            [?25h[?0c[?25l[?1c:[?25h[?0c1m1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cm0
[?25l[?1c3 lines moved++--  3 lines: Test fdm=indent START------------------------------------------Test fdm=indent and :move bug END
 line2[?25h[?0c[?25l[?1c:[?25h[?0c%w >> test.out
[?25l[?1c"test.out" 5 lines, 77 characters appendedtest.out [+] [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test45 = test61; then \
#	  if diff test.out test45.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test45.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test45.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test48.in
[?25h[?8c[?25h[?0c[?25l[?1c"test48.in" 83 lines, 1658 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 <CR> 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cThis is a test of 'virtualedit'.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 61 lines, 1442 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set display=
:"
:"   Test for ^Y/^E due to bad w_virtcol value, reported by
:"   Roy <royl@netropolis.net>.
^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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswf
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c65 fewer linesthis is a test
"r"
"r"
a^Vb^Msd
abcv6efi.him0kl


~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               65 fewer lines[?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Insert "keyword keyw", ESC, C CTRL-N, shows "keyword ykeyword".
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    Repeating CTRL-N fixes it. (Mary Ellen Foster)
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cw
[?25l[?1c[?25h[?0c[?25l[?1c$Scanning tags.
The only matchword[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Using "C" then then <CR> moves the last remaining character to the next
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    line.  (Mary Ellen Foster)
[?25l[?1c[?25h[?0c
[?25l[?1c/[?25h[?0care
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c$are belong to vim
1 2 3 4 5 6
'i
'C
'a
'A
'D'this is a test

"r"     
a^Vb^Msdabcv6efi.him0kl[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   When past the end of a line that ends in a single character "b" skips
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    that word.
[?25l[?1c[?25h[?0c
[?25l[?1c$7[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'i' works
[?25l[?1c[?25h[?0c
'i'   [?25l[?1c<-- should be 3 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'C' works
[?25l[?1c[?25h[?0c
'C'   [?25l[?1c$<-- should be 3 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'a' works
[?25l[?1c[?25h[?0c
'a'   [?25l[?1c <-- should be 4 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'A' works
[?25l[?1c[?25h[?0c
'A'   [?25l[?1c<-- should be 0 ' '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Make sure 'D' works
[?25l[?1c[?25h[?0c
'D'   [?25l[?1c<-- 'D' should be intact[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test for yank bug reported by Mark Waggoner.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=block
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1caaablock of 4 lines yanked[?25h[?0c[?25l[?1c3 more linesa
aa [?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test "r" beyond the end of the line
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^"r"
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c"r"    [?25l[?1cx[?25h[?0c[?25l[?1cx<-- should be 'x'[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test "r" on a tab
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Note that for this test, 'ts' must be 8 (the default).
[?25l[?1c[?25h[?0c
"r"  [?25l[?1cx[?25h[?0c[?25l[?1cx  <-- should be '  x  '[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test to make sure 'x' can delete control characters
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset display=uhex
[?25l[?1c<16>b<0d>sd[?25h[?0c
[?25l[?1c<16>b<0d>sd[?25h[?0c[?25l[?1cb<0d>sd[?25h[?0c[?25l[?1c<0d>sd[?25h[?0c[?25l[?1csd[?25h[?0c[?25l[?1cd[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[This line should contain only the text between the brackets.][?25h[?0c[?25l[?1c:[?25h[?0cset display=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Test for ^Y/^E due to bad w_virtcol value, reported by
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"   Roy <royl@netropolis.net>.
[?25l[?1c[?25h[?0c
[?25l[?1c[?25h[?0c   [?25l[?1cv[?25h[?0cv   [?25l[?1ci[?25h[?0ci   [?25l[?1cm   <-- should show the name of a noted text editor[?25h[?0c
[?25l[?1c[?25h[?0c    [?25l[?1c6[?25h[?0c6   [?25l[?1c.[?25h[?0c.   [?25l[?1c0   <-- and its version number[?25h[?0c[?25l[?1c
[?25h[?0c
    [?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for yanking and pasting using the small delete register
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^foo
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c, bar[?25h[?0c, [?25l[?1c[?25h[?0c[?25l[?1cba[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cfoo[?25h[?0c
keyw[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 23 lines, 479 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test48 = test61; then \
#	  if diff test.out test48.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test48.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test48.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test51.in
[?25h[?8c[?25h[?0c[?25l[?1c"test51.in" 36 lines, 809 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for ":highlight". vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 31 lines, 747 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" basic test if ":highlight" doesn't crash
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chighlight
[?25l[?1c
SpecialKey     xxx term=bold cterm=bold ctermfg=4 guifg=Cyan

EndOfBuffer    xxx links to NonText

NonTextxxx term=bold cterm=bold ctermfg=4 gui=bold guifg=Blue

Directory      xxx term=bold cterm=bold ctermfg=6 guifg=Cyan

ErrorMsgxxx term=standout cterm=bold ctermfg=7 ctermbg=1 guifg=White

guibg=Red

IncSearch      xxx term=reverse cterm=reverse gui=reverse

Searchxxx term=reverse ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

MoreMsgxxx term=bold cterm=bold ctermfg=2 gui=bold guifg=SeaGreen

ModeMsgxxx term=bold cterm=bold gui=bold

LineNrxxx term=underline cterm=bold ctermfg=3 guifg=Yellow

CursorLineNr   xxx term=bold cterm=bold ctermfg=3 gui=bold guifg=Yellow

Questionxxx term=standout cterm=bold ctermfg=2 gui=bold guifg=Green

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 cterm=bold ctermfg=5 gui=bold guifg=Magenta

Visualxxx term=reverse cterm=reverse guibg=DarkGrey

VisualNOS      xxx term=bold,underline cterm=bold,underline gui=bold,underline

WarningMsg     xxx term=standout cterm=bold ctermfg=1 guifg=Red

WildMenuxxx term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

Foldedxxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=DarkGrey

FoldColumn     xxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=Grey

DiffAddxxx term=bold ctermbg=4 guibg=DarkBlue

DiffChange     xxx term=bold ctermbg=5 guibg=DarkMagenta

DiffDelete     xxx term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=Blue

guibg=DarkCyan

DiffTextxxx term=reverse cterm=bold ctermbg=1 gui=bold guibg=Red

SignColumn     xxx term=standout cterm=bold ctermfg=6 ctermbg=0 guifg=Cyan

guibg=Grey

Concealxxx ctermfg=7 ctermbg=0 guifg=LightGrey guibg=DarkGrey

SpellBadxxx term=reverse ctermbg=1 gui=undercurl guisp=Red

SpellCapxxx term=reverse ctermbg=4 gui=undercurl guisp=Blue

SpellRare      xxx term=reverse ctermbg=5 gui=undercurl guisp=Magenta

SpellLocal     xxx term=underline ctermbg=6 gui=undercurl guisp=Cyan

Pmenuxxx ctermfg=0 ctermbg=5 guibg=Magenta

PmenuSelxxx cterm=bold ctermfg=0 ctermbg=0 guibg=DarkGrey

PmenuSbar      xxx ctermbg=7 guibg=Grey

PmenuThumb     xxx ctermbg=7 guibg=White

TabLinexxx term=underline cterm=bold,underline ctermfg=7 ctermbg=0

gui=underline guibg=DarkGrey

TabLineSel     xxx term=bold cterm=bold gui=bold

TabLineFill    xxx term=reverse cterm=reverse gui=reverse

CursorColumn   xxx term=reverse ctermbg=0 guibg=Grey40

CursorLine     xxx term=underline cterm=underline guibg=Grey40

ColorColumn    xxx term=reverse ctermbg=1 guibg=DarkRed

Cursorxxx guifg=bg guibg=fg

lCursorxxx guifg=bg guibg=fg

MatchParen     xxx term=reverse ctermbg=6 guibg=DarkCyan

Normalxxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Search
[?25l[?1c
Searchxxx term=reverse ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c" test setting colors.
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0c" test clearing one color and all doesn't generate error or warning
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi NewGroup term=bold cterm=italic ctermfg=DarkBlue ctermbg=Grey gui= guifg=#0

0ff00 guibg=Cyan
[?25l[?1cE418: Illegal value: guifg=#00ff00Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2 term= cterm=
[?25l[?1cE418: Illegal value: cterm=

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group3 term=underline cterm=bold
[?25l[?1c:hi NewGroup
:hi Group2[?25h[?0c[?25l[?1c
:[?25h[?0credir! >test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi NewGroup
[?25l[?1c
NewGroupxxx term=bold cterm=italic ctermfg=4 ctermbg=7

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group3
[?25l[?1c
Group3xxx term=underline cterm=bold

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi clear NewGroup
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup
:hi NewGroup
:hi Group2[?25h[?0c[?25l[?1c
:[?25h[?0chi NewGroup
[?25l[?1c
NewGroupxxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Group2 NONE
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3
:hi clear NewGroup[?25h[?0c[?25l[?1c
:[?25h[?0chi Group2
[?25l[?1c
Group2xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi clear
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0chi Group3
[?25l[?1c
Group3xxx cleared

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0chi Crash term='asdf
[?25l[?1cE475: Invalid argument: term='asdf

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c:hi NewGroup
:hi Group2
:hi Group3[?25h[?0c[?25l[?1c
:[?25h[?0c" filter ctermfg and ctermbg, the numbers depend on the terminal
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 20 lines, 289 charactersNewGroup       xxx term=bold cterm=italic ctermfg=4 ctermbg=7Group2         xxx clearedGroup3         xxx term=underline cterm=boldNewGroup       xxx clearedGroup2         xxx clearedGroup2         xxx clearedGroup3         xxx clearedE475: Invalid argument: term='asdf
~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c%s/ctermfg=\d*/ctermfg=2/
[?25l[?1c2
[?25h[?0c[?25l[?1c:[?25h[?0c%s/ctermbg=\d*/ctermbg=3/
[?25l[?1c3
[?25h[?0c[?25l[?1c:[?25h[?0c" filter out possibly translated error message
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c%s/E475: [^:]*:/E475:/
[?25l[?1cterm='asdf[?25h[?0c[?25l[?1c:[?25h[?0c" fix the fileformat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq!
[?25l[?1c"test.out" 20 lines, 271 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test51 = test61; then \
#	  if diff test.out test51.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test51.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test51.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test53.in
[?25h[?8c[?25h[?0c[?25l[?1c"test53.in" 75 lines, 1763 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()

STARTTEST
:so small.vim
/^start:/
da"
0va'a'rx
02f`da`
0fXdi"
03f'vi'ry
:set quoteescape=+*-
di`
$F"va"oha"i"rz
:"
/^<begin
jfXdit
0fXdit
fXdat
0fXdat[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for string and html text objects. vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1237 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:put =match('abc', '$', 4, 1) " -1
:put =match('abc', '\zs', 0, 1) " 0
:put =match('abc', '\zs', 0, 2) " 1
:put =match('abc', '\zs', 0, 3) " 2
:put =match('abc', '\zs', 0, 4) " 3
:put =match('abc', '\zs', 0, 5) " -1
:put =match('abc', '\zs', 1, 1) " 1
:put =match('abc', '\zs', 2, 1) " 2
:put =match('abc', '\zs', 3, 1) " 3
:put =match('abc', '\zs', 4, 1) " -1
:/^start:/,/^end:/wq! test.out
ENDTEST

start: "wo\"rd\\" foo
'foo' 'bar' 'piep'
bla bla `quote` blah
out " in "noXno"
"'" 'blah' rep 'buh'
bla `s*`d-`+++`l**` b`la
voo "nah" sdf " asdf" sdf " sdf" sd

<begin>
-<b>asdf<i>Xasdf</i>asdf</b>-[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c[?25h[?0c[?25l[?1cfo[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c'foo'[?25h[?0c[?25l[?1c 'bar'[?25h[?0c[?25l[?1c
xxxxxxxxxxxx
[?25h[?0c
[?25l[?1cblah[?25h[?0c
[?25l[?1c"[?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1c' rep[?25h[?0c[?25l[?1cyyyyy[?25h[?0c[?25l[?1c:[?25h[?0cset quoteescape=+*-
[?25l[?1c[?25h[?0c[?25l[?1c` b`la[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c" sdf"[?25h[?0c[?25l[?1c" [?25h[?0c[?25l[?1c"[?25h[?0c[?25l[?1c asdf" sdf [?25h[?0c[?25l[?1cah" sdf "
voo "[?25h[?0c[?25l[?1czzzzzzzzzzzzzzzzzzzzzzzzzzzz
voo "[?25h[?0c
[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^<begin
[?25l[?1c[?25h[?0c
[?25l[?1c</i>asdf</b>-[?25h[?0c[?25l[?1c
-<b>asdX<i>a<i />sdf</i>asdf</b>-[?25h[?0c
[?25l[?1c</b>-[?25h[?0c[?25l[?1c
-<b>asdf<i>Xasdf</i>asdf</b>-
-<b>[?25h[?0c[?25l[?1casdf</b>-[?25h[?0c[?25l[?1c
-<b>asdX<i>as<b />df</i>asdf</b>-[?25h[?0c
[?25l[?1c
--[?25h[?0c[?25l[?1c
-<b>
-[?25h[?0c[?25l[?1c<b></b>[?25h[?0c[?25l[?1c
</begin>[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =matchstr(\"abcd\", \".\", 0, 2) " b
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \"..\", 0, 2) " bc
[?25l[?1c
bc[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)
[?25l[?1c
c[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \".\", 0, -1) " a
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0cput =match(\"abcd\", \".\", 0, 5) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match(\"abcd\", \".\", 0, -1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 2) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 3) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 0, 4) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 1, 1) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 2, 1) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '.', 3, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 0, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 0, 2) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 1, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 2, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 3, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '$', 4, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 1) " 0
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 2) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 3) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 4) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 0, 5) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 1, 1) " 1
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 2, 1) " 2
[?25l[?1c
2[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 3, 1) " 3
[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0cput =match('abc', '\zs', 4, 1) " -1
[?25l[?1c
-1[?25h[?0c[?25l[?1c
:[?25h[?0c/^start:/,/^end:/wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 45 lines, 284 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test53 = test61; then \
#	  if diff test.out test53.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test53.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test53.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test55.in
[?25h[?8c[?25h[?0c[?25l[?1c"test55.in" 586 lines, 12256 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])
:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for List and Dictionary types.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 580 lines, 12170 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =string(l)
: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:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun Test(...)
[?25l[?1c
:  [?25h[?0c:lang C

[?25l[?1c:  [?25h[?0c:" Creating List directly with different types

[?25l[?1c:  [?25h[?0c:let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:$put =string(l[-1])

[?25l[?1c:  [?25h[?0c:$put =string(l[-4])

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =string(l[-5])

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:" List slices

[?25l[?1c:  [?25h[?0c:$put =string(l[:])

[?25l[?1c:  [?25h[?0c:$put =string(l[1:])

[?25l[?1c:  [?25h[?0c:$put =string(l[:-2])

[?25l[?1c:  [?25h[?0c:$put =string(l[0:8])

[?25l[?1c:  [?25h[?0c:$put =string(l[8:-1])

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" List identity

[?25l[?1c:  [?25h[?0c:let ll = l

[?25l[?1c:  [?25h[?0c:let lx = copy(l)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =(l == ll) . (l isnot ll) . (l is ll) . (l == lx) . (l is lx) . (l

isnot lx)

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Creating Dictionary directly with different types

[?25l[?1c:  [?25h[?0c:let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},}

[?25l[?1c:  [?25h[?0c:$put =string(d) . d.1

[?25l[?1c:  [?25h[?0c:$put =string(sort(keys(d)))

[?25l[?1c:  [?25h[?0c:$put =string (values(d))

[?25l[?1c:  [?25h[?0c:for [key, val] in items(d)

[?25l[?1c:    [?25h[?0c:  $put =key . ':' . string(val)

[?25l[?1c:    [?25h[?0c:  unlet key val

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c:call extend  (d, {3:33, 1:99})

[?25l[?1c:  [?25h[?0c:call extend(d, {'b':'bbb', 'c':'ccc'}, "keep")

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  call extend(d, {3:333,4:444}, "error")

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:call filter(d, 'v:key =~ ''[ac391]''')

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Dictionary identity

[?25l[?1c:  [?25h[?0c:let dd = d

[?25l[?1c:  [?25h[?0c:let dx = copy(d)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =(d == dd) . (d isnot dd) . (d is dd) . (d == dx) . (d is dx) . (d

isnot dx)

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" removing items with :unlet

[?25l[?1c:  [?25h[?0c:unlet l[2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:let l = range(8)

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:unlet l[:3]

[?25l[?1c:    [?25h[?0c:unlet l[1:]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:$put =v:exception

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:unlet d.c

[?25l[?1c:  [?25h[?0c:unlet d[-1]

[?25l[?1c:  [?25h[?0c:$put =string(d)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" removing items out of range: silently skip items that don't exist

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:1]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:3]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:4]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[2:5]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-1:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-2:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-3:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-4:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-5:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:unlet l[-6:2]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" assignment to a list

[?25l[?1c:  [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:  [?25h[?0c:let [va, vb] = l[2:3]

[?25l[?1c:  [?25h[?0c:$put =va

[?25l[?1c:  [?25h[?0c:$put =vb

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let [va, vb] = l

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let [va, vb] = l[1:1]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" manipulating a big Dictionary (hashtable.c has a border of 1000 entries)

[?25l[?1c:  [?25h[?0c:let d = {}

[?25l[?1c:  [?25h[?0c:for i in range(1500)

[?25l[?1c:    [?25h[?0c: let d[i] = 3000 - i

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c:$put =d[0] . ' ' . d[100] . ' ' . d[999] . ' ' . d[1400] . ' ' . d[1499]

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  let n = d[1500]

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =substitute(v:exception, '\v(.{14}).*( \d{4}).*', '\1\2', '')

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:" lookup each items

[?25l[?1c:  [?25h[?0c:for i in range(1500)

[?25l[?1c:    [?25h[?0c: if d[i] != 3000 - i

[?25l[?1c:      [?25h[?0c:  $put =d[i]

[?25l[?1c:      [?25h[?0c: endif

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c: let i += 1

[?25l[?1c:  [?25h[?0c:" delete even items

[?25l[?1c:  [?25h[?0c:while i >= 2

[?25l[?1c:    [?25h[?0c: let i -= 2

[?25l[?1c:    [?25h[?0c: unlet d[i]

[?25l[?1c:    [?25h[?0c:endwhile

[?25l[?1c:  [?25h[?0c:$put =get(d, 1500 - 100, 'NONE') . ' ' . d[1]

[?25l[?1c:  [?25h[?0c:" delete odd items, checking value, one intentionally wrong

[?25l[?1c:  [?25h[?0c:let d[33] = 999

[?25l[?1c:  [?25h[?0c:let i = 1

[?25l[?1c:  [?25h[?0c:while i < 1500

[?25l[?1c:    [?25h[?0c: if d[i] != 3000 - i

[?25l[?1c:      [?25h[?0c:  $put =i . '=' . d[i]

[?25l[?1c:      [?25h[?0c: else

[?25l[?1c:      [?25h[?0c:  unlet d[i]

[?25l[?1c:      [?25h[?0c: endif

[?25l[?1c:    [?25h[?0c: let i += 2

[?25l[?1c:    [?25h[?0c:endwhile

[?25l[?1c:  [?25h[?0c:$put =string(d)  " must be almost empty now

[?25l[?1c:  [?25h[?0c:unlet d

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Dictionary function

[?25l[?1c:  [?25h[?0c:let dict = {}

[?25l[?1c:  [?25h[?0c:func dict.func(a) dict

[?25l[?1c:    [?25h[?0c:  $put =a:a . len(self.data)

[?25l[?1c:    [?25h[?0c:endfunc

[?25l[?1c:    [?25h[?0c:let dict.data = [1,2,3]

[?25l[?1c:    [?25h[?0c:call dict.func("len: ")

[?25l[?1c:    [?25h[?0c:let x = dict.func("again: ")

[?25l[?1c:    [?25h[?0c:let Fn = dict.func

[?25l[?1c:    [?25h[?0c:call Fn('xxx')

[?25l[?1c:    [?25h[?0c:" 

[?25l[?1c:    [?25h[?0c:" Function in script-local List or Dict

[?25l[?1c:    [?25h[?0c:let g:dict = {}

[?25l[?1c:    [?25h[?0c:function g:dict.func() dict

[?25l[?1c:      [?25h[?0c:  $put ='g:dict.func'.self.foo[1].self.foo[0]('asdf')

[?25l[?1c:      [?25h[?0c:endfunc

[?25l[?1c:      [?25h[?0c:let g:dict.foo = ['-', 2, 3]

[?25l[?1c:      [?25h[?0c:call insert(g:dict.foo, function('strlen'))

[?25l[?1c:      [?25h[?0c:call g:dict.func()

[?25l[?1c:      [?25h[?0c:" 

[?25l[?1c:      [?25h[?0c:" Nasty: remove func from Dict that's being called (works)

[?25l[?1c:      [?25h[?0c:let d = {1:1}

[?25l[?1c:      [?25h[?0c:func d.func(a)

[?25l[?1c:[?25h[?0c:  return "a:". a:a

[?25l[?1c:[?25h[?0c:endfunc

[?25l[?1c:[?25h[?0c:$put =d.func(string(remove(d, 'func')))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Nasty: deepcopy() dict that refers to itself (fails when noref used

)
[?25l[?1c:[?25h[?0c:let d = {1:1, 2:2}

[?25l[?1c:[?25h[?0c:let l = [4, d, 6]

[?25l[?1c:[?25h[?0c:let d[3] = l

[?25l[?1c:[?25h[?0c:let dc = deepcopy(d)

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let dc = deepcopy(d, 1)

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:let l2 = [0, l, l, 3]

[?25l[?1c:[?25h[?0c:let l[1] = l2

[?25l[?1c:[?25h[?0c:let l3 = deepcopy(l2)

[?25l[?1c:[?25h[?0c:$put ='same list: ' . (l3[1] is l3[2])

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Locked variables

[?25l[?1c:[?25h[?0c:for depth in range(5)

[?25l[?1c:[?25h[?0c:  $put ='depth is ' . depth

[?25l[?1c:[?25h[?0c:  for u in range(3)

[?25l[?1c:[?25h[?0c:    unlet l

[?25l[?1c:[?25h[?0c:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l[?1c:[?25h[?0c:    exe "lockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    if u == 1

[?25l[?1c:[?25h[?0c:      exe "unlockvar l"

[?25l[?1c:[?25h[?0c:    elseif u == 2

[?25l[?1c:[?25h[?0c:      exe "unlockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    endif

[?25l[?1c:[?25h[?0c:    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]")

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:    let ps = ''

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1][1][0] = 99

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1][1] = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[1] = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2]['6'][7] = 99

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2][6] = {99: 99}

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l[2] = {99: 99}

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      let l = [99]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:  endfor

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Unletting locked variables

[?25l[?1c:[?25h[?0c:$put ='Unletting:'

[?25l[?1c:[?25h[?0c:for depth in range(5)

[?25l[?1c:[?25h[?0c:  $put ='depth is ' . depth

[?25l[?1c:[?25h[?0c:  for u in range(3)

[?25l[?1c:[?25h[?0c:    unlet l

[?25l[?1c:[?25h[?0c:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]

[?25l[?1c:[?25h[?0c:    exe "lockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    if u == 1

[?25l[?1c:[?25h[?0c:      exe "unlockvar l"

[?25l[?1c:[?25h[?0c:    elseif u == 2

[?25l[?1c:[?25h[?0c:      exe "unlockvar " . depth . " l"

[?25l[?1c:[?25h[?0c:    endif

[?25l[?1c:[?25h[?0c:    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]")

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:    let ps = ''

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2]['6'][7]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2][6]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[2]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1][1][0]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1][1]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l[1]

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    try

[?25l[?1c:[?25h[?0c:      unlet l

[?25l[?1c:[?25h[?0c:      let ps .= 'p'

[?25l[?1c:[?25h[?0c:    catch

[?25l[?1c:[?25h[?0c:      let ps .= 'F'

[?25l[?1c:[?25h[?0c:    endtry

[?25l[?1c:[?25h[?0c:    $put =ps

[?25l[?1c:[?25h[?0c:  endfor

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Locked variables and :unlet or list / dict functions

[?25l[?1c:[?25h[?0c:$put ='Locks and commands or functions:'

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :unlet after lock on dict:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar 1 d

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet d.a

[?25l[?1c:[?25h[?0c:  $put ='did :unlet'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put =':unlet after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet d.a

[?25l[?1c:[?25h[?0c:  $put ='did :unlet'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='filter() after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call filter(d, 'v:key != "a"')

[?25l[?1c:[?25h[?0c:  $put ='did filter()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='map() after lock on dict:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar 1 d

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call map(d, 'v:val + 200')

[?25l[?1c:[?25h[?0c:  $put ='did map()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No extend() after lock on dict item:'

[?25l[?1c:[?25h[?0c:unlet! d

[?25l[?1c:[?25h[?0c:let d = {'a': 99, 'b': 100}

[?25l[?1c:[?25h[?0c:lockvar d.a

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  $put =string(extend(d, {'a': 123}))

[?25l[?1c:[?25h[?0c:  $put ='did extend()'

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No remove() of write-protected scope-level variable:'

[?25l[?1c:[?25h[?0c:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l[?1c:[?25h[?0c:  try

[?25l[?1c:[?25h[?0c:    $put =string(remove(a:, 'this_is_a_loooooooooong_parameter_na

me'))

[?25l[?1c:[?25h[?0c:    $put ='did remove()'

[?25l[?1c:[?25h[?0c:  catch

[?25l[?1c:[?25h[?0c:    $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:  endtry

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:call Tfunc('testval')

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No extend() of write-protected scope-level variable:'

[?25l[?1c:[?25h[?0c:fun! Tfunc(this_is_a_loooooooooong_parameter_name)

[?25l[?1c:[?25h[?0c:  try

[?25l[?1c:[?25h[?0c:    $put =string(extend(a:, {'this_is_a_loooooooooong_parameter

_name': 1234}))

[?25l[?1c:[?25h[?0c:    $put ='did extend()'

[?25l[?1c:[?25h[?0c:  catch

[?25l[?1c:[?25h[?0c:    $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:  endtry

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:call Tfunc('testval')

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :unlet of variable in locked scope:'

[?25l[?1c:[?25h[?0c:let b:testvar = 123

[?25l[?1c:[?25h[?0c:lockvar 1 b:

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  unlet b:testvar

[?25l[?1c:[?25h[?0c:  $put ='b:testvar was :unlet: '. (!exists('b:testvar'))

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:16]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:unlockvar 1 b:

[?25l[?1c:[?25h[?0c:unlet! b:testvar

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:$put ='No :let += of locked list variable:'

[?25l[?1c:[?25h[?0c:let l = ['a', 'b', 3]

[?25l[?1c:[?25h[?0c:lockvar 1 l

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let l += ['x']

[?25l[?1c:[?25h[?0c:  $put ='did :let +='

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:14]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:unlet l

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4]

[?25l[?1c:[?25h[?0c:lockvar! l

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlockvar l[1]

[?25l[?1c:[?25h[?0c:unlet l[0:1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlet l[1:2]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlockvar l[1]

[?25l[?1c:[?25h[?0c:let l[0:1] = [0, 1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:let l[1:2] = [0, 1]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:unlet l

[?25l[?1c:[?25h[?0c:" :lockvar/islocked() triggering script autoloading

[?25l[?1c:[?25h[?0c:set rtp+=./sautest

[?25l[?1c:[?25h[?0c:lockvar g:footest#x

[?25l[?1c:[?25h[?0c:unlockvar g:footest#x

[?25l[?1c:[?25h[?0c:$put ='locked g:footest#x:'.islocked('g:footest#x')

[?25l[?1c:[?25h[?0c:$put ='exists g:footest#x:'.exists('g:footest#x')

[?25l[?1c:[?25h[?0c:$put ='g:footest#x: '.g:footest#x

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" a:000 function argument

[?25l[?1c:[?25h[?0c:" first the tests that should fail

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000 = [1, 2]

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[0] = 9

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[0]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[2] = [9, 10]

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[2]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[3] = {9: 10}

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught a:000[3]'

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:" now the tests that should pass

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  let a:000[2][1] = 9

[?25l[?1c:[?25h[?0c:  call extend(a:000[2], [5, 6])

[?25l[?1c:[?25h[?0c:  let a:000[3][5] = 8

[?25l[?1c:[?25h[?0c:  let a:000[3]['a'] = 12

[?25l[?1c:[?25h[?0c:  $put =string(a:000)

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put ='caught ' . v:exception

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" reverse(), sort(), uniq()

[?25l[?1c:[?25h[?0c:let l = ['-0', 'A11', 2, 2, 'xaaa', 4, 'foo', 'foo6', 'foo', [0, 

1, 2], 'x8', [0, 1, 2], 1.5]

[?25l[?1c:[?25h[?0c:$put =string(uniq(copy(l)))

[?25l[?1c:[?25h[?0c:$put =string(reverse(l))

[?25l[?1c:[?25h[?0c:$put =string(reverse(reverse(l)))

[?25l[?1c:[?25h[?0c:$put =string(sort(l))

[?25l[?1c:[?25h[?0c:$put =string(reverse(sort(l)))

[?25l[?1c:[?25h[?0c:$put =string(sort(reverse(sort(l))))

[?25l[?1c:[?25h[?0c:$put =string(uniq(sort(l)))

[?25l[?1c:[?25h[?0c:let l=[7, 9, 'one', 18, 12, 22, 'two', 10.0e-16, -1, 'three', 0xf

f, 0.22, 'four']

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 'n'))

[?25l[?1c:[?25h[?0c:let l=[7, 9, 18, 12, 22, 10.0e-16, -1, 0xff, 0, -0, 0.22, 'bar', 

'BAR', 'Bar', 'Foo', 'FOO', 'foo', 'FOOBAR', {}, []]

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 1))

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l), 'i'))

[?25l[?1c:[?25h[?0c:$put =string(sort(copy(l)))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" splitting a string to a List

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb '))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W\+', 0))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W\+', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('  aa  bb  ', '\W', 1))

[?25l[?1c:[?25h[?0c:$put =string(split(':aa::bb:', ':', 0))

[?25l[?1c:[?25h[?0c:$put =string(split(':aa::bb:', ':', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('aa,,bb, cc,', ',\s*', 1))

[?25l[?1c:[?25h[?0c:$put =string(split('abc', '\zs'))

[?25l[?1c:[?25h[?0c:$put =string(split('abc', '\zs', 1))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" compare recursively linked list and dict

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4]

[?25l[?1c:[?25h[?0c:let d = {'1': 1, '2': l, '3': 3}

[?25l[?1c:[?25h[?0c:let l[1] = d

[?25l[?1c:[?25h[?0c:$put =(l == l)

[?25l[?1c:[?25h[?0c:$put =(d == d)

[?25l[?1c:[?25h[?0c:$put =(l != deepcopy(l))

[?25l[?1c:[?25h[?0c:$put =(d != deepcopy(d))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" compare complex recursively linked list and dict

[?25l[?1c:[?25h[?0c:let l = []

[?25l[?1c:[?25h[?0c:call add(l, l)

[?25l[?1c:[?25h[?0c:let dict4 = {"l": l}

[?25l[?1c:[?25h[?0c:call add(dict4.l, dict4)

[?25l[?1c:[?25h[?0c:let lcopy = deepcopy(l)

[?25l[?1c:[?25h[?0c:let dict4copy = deepcopy(dict4)

[?25l[?1c:[?25h[?0c:$put =(l == lcopy)

[?25l[?1c:[?25h[?0c:$put =(dict4 == dict4copy)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same List to extend()

[?25l[?1c:[?25h[?0c:let l = [1, 2, 3, 4, 5]

[?25l[?1c:[?25h[?0c:call extend(l, l)

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same Dict to extend()

[?25l[?1c:[?25h[?0c:let d = { 'a': {'b': 'B'}}

[?25l[?1c:[?25h[?0c:call extend(d, d)

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Pass the same Dict to extend() with "error"

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  call extend(d, d, "error")

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  $put =v:exception[:15] . v:exception[-1:-1]

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:$put =string(d)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" test for range assign

[?25l[?1c:[?25h[?0c:let l = [0]

[?25l[?1c:[?25h[?0c:let l[:] = [1, 2]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:endfun
[?25l[?1c:$put =string(l)
: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:[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Test(1, 2, [3, 4], {5: 6})  " This may take a while
[?25l[?1cError detected while processing function Test:
line   76:

E684: list index out of range: 1

line   91:

E684: list index out of range: 2

line  271:

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

E108: No such variable: "l"

line  441:

E741: Value is locked: l[0:1]

line  443:

E741: Value is locked: l[1:2]

line  446:

E741: Value is locked: l[0:1] = [0, 1]

line  448:

E741: Value is locked: l[1:2] = [0, 1]

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb']
['aa', 'bb']
['', 'aa', 'bb', '']
['', '', 'aa', '', 'bb', '', '']
['aa', '', 'bb']
['', 'aa', '', 'bb', '']
['aa', '', 'bb', 'cc', '']
['a', 'b', 'c']
['', 'a', '', 'b', '', 'c', '']
1
1
0
0
1
1
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
{'a': {'b': 'B'}}
Vim(call):E737: a
{'a': {'b': 'B'}}
[1, 2]
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0cdelfunc Test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cunlet dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for patch 7.3.637
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a = 'No error caught'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?1c[?25h[?0c[?25l[?1c=[?25h[?0ca
[?25l[?1cVim(foldopen):E490:[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25l[?1cError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*'

)|endtry

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}]
['aa', 'bb'][?25h[?0c[?25l[?1c
=[?25h[?0ca
[?25l[?1cError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 197 lines, 3821 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test55 = test61; then \
#	  if diff test.out test55.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test55.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test55.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test56.in
[?25h[?8c[?25h[?0c[?25l[?1c"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 <SID>DoLast()
  call append(line('$'), "last line")
endfun
fun s:DoNothing()
  call append(line('$'), "nothing line")
endfun
nnoremap <buffer> _x    :call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
end:
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for script-local function.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 120 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/+1,/^end:/-1w! Xtest.vim
[?25l[?1c"Xtest.vim" [New] 7L, 251C written[?25h[?0c[?25l[?1c:[?25h[?0csource Xtest.vim
[?25l[?1c[?25h[?0c[?25l[?1c:call <SNR>4_DoNothing()|call <SNR>4_DoLast()|delfunc <SNR>4_DoNothing|delfunc 

<SNR>4_DoLast
Press ENTER or type command to continue[?25h[?0c[?25l[?1cTest for script-local function.     vim: set ft=vim :nothing line[?25h[?0c[?25l[?1c:[?25h[?0c$-1,$wq! test.out
[?25l[?1c"test.out" [New] 2L, 23C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test56 = test61; then \
#	  if diff test.out test56.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test56.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test56.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test57.in
[?25h[?8c[?25h[?0c[?25l[?1c"test57.in" 545 lines, 4110 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :sort command.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 33 lines, 920 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:/^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
:/^t28:/+1,/^t29/-1sort b
:/^t29:/+1,/^t30/-1sort b
:/^t30:/+1,/^t31/-1sort f
:/^t01:/,$wq! test.out
ENDTEST

t01: alphebetical
abc
ab
a
a321
a123
a122
b321
b123
c123d[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^t01:/+1,/^t02/-1sort
[?25l[?1c 123b2
a123
a
ababc[?25h[?0c[?25l[?1c:[?25h[?0c/^t02:/+1,/^t03/-1sort n
[?25l[?1cb123
b321
b321
b321b
b322b
c123d
c321d
t02: numeric
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t03:/+1,/^t04/-1sort x
[?25l[?1ca123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t03: hexadecimal


a
ab
abc
 123b
a122
a123
a321
b123
b321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t04:/+1,/^t05/-1sort u
[?25l[?1cb321b
b322b
c123d
c321d
t04: alpha, unique[?25h[?0c[?25l[?1c
:[?25h[?0c/^t05:/+1,/^t06/-1sort!
[?25l[?1ca123
a321
ab
abc
b123
b321
b321b
b322b
c123d
c321d
t05: alpha, reverse
c321d
c123d
b322b
b321b
b321
b321
b123
abc
ab
a321
a123
a122[?25h[?0c[?25l[?1c:[?25h[?0c/^t06:/+1,/^t07/-1sort! n        
[?25l[?1ca
 123b


t06: numeric, reverse
b322b[?25h[?0c[?25l[?1c
:[?25h[?0c/^t07:/+1,/^t08/-1sort! u
[?25l[?1c123b
c123d
b123
a123
a122


a
ab
abc
t07: unique, reverse
c321d
c123d
b322b
b321b
b321
b123
abc
ab
a321
a123
a122
a[?25h[?0c[?25l[?1c:[?25h[?0c/^t08:/+1,/^t09/-1sort o         
[?25l[?1c123b

t08: octal
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t09:/+1,/^t10/-1sort! x        
[?25l[?1ca123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t09: reverse, hexadecimal
c321d
c123d
b322b
b321b
b321
b321
b123
a321
a123
a122
 123b
abc[?25h[?0c[?25l[?1c:[?25h[?0c/^t10:/+1,/^t11/-1sort/./        
[?25l[?1cab
a


t10: alpha, skip first character
a[?25h[?0c[?25l[?1c
:[?25h[?0c/^t11:/+1,/^t12/-1sort/../       
[?25l[?1c123b
c123d
a321
b321
b321
b321b
c321d
b322b
ab
abc
t11: alpha, skip first 2 characters
ab
a


a321
b321
b321
b321b
c321d
a122
b322b
a123[?25h[?0c[?25l[?1c:[?25h[?0c/^t12:/+1,/^t13/-1sort/../u
[?25l[?1cb123
 123b
c123d
abc
t12: alpha, unique, skip first 2 characters
ab[?25h[?0c[?25l[?1c
:[?25h[?0c/^t13:/+1,/^t14/-1sort/./n
[?25l[?1cb321
b321b
c321d
a122
b322b
a123
b123
 123b
c123d
abc
t13: numeric, skip first character
abc
ab
a


a122
a123
b123
c123d
 123b
a321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t14:/+1,/^t15/-1sort/./r
[?25l[?1cc321d
b321
b321b
b322b
t14: alpha, sort on first character[?25h[?0c[?25l[?1c
:[?25h[?0c/^t15:/+1,/^t16/-1sort/../r
[?25l[?1ca321
a123
a122
b321
b123
b322b
b321
b321b
c123d
c321d
t15: alpha, sort on first 2 characters
a123b
a123
a122
a321
abc
ab
b123
b321
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t16:/+1,/^t17/-1sort/./rn
[?25l[?1cb321
b321b
c123d
c321d
t16: numeric, sort on first character
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t17:/+1,/^t18/-1sort/\d/
[?25l[?1cb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t17: alpha, skip past first digit
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t18:/+1,/^t19/-1sort/\d/r
[?25l[?1ca123
b123
 123b
c123d
t18: alpha, sort on first digit
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t19:/+1,/^t20/-1sort/\d/n
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t19: numeric, skip past first digit
abc
ab
a


a321
b321
c321d
b321
b321b
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t20:/+1,/^t21/-1sort/\d/rn
[?25l[?1ca123
b123
c123d
 123b
t20: numeric, sort on first digit
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t21:/+1,/^t22/-1sort/\d\d/
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t21: alpha, skip past first 2 digits
abc
ab
a


a321
b321
b321
b321b
c321d
a122
b322b[?25h[?0c[?25l[?1c:[?25h[?0c/^t22:/+1,/^t23/-1sort/\d\d/n
[?25l[?1ca123
b123
 123b
c123d
t22: numeric, skip past first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t23:/+1,/^t24/-1sort/\d\d/x
[?25l[?1cb321
c321d
b321
b321b
a122
b322b
a123
b123
c123d
 123b
t23: hexadecimal, skip past first 2 digits
abc
ab
a


a321
b321
b321
a122
a123
b123
b321b[?25h[?0c[?25l[?1c:[?25h[?0c/^t24:/+1,/^t25/-1sort/\d\d/r
[?25l[?1cc321d
b322b
 123b
c123d
t24: alpha, sort on first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t25:/+1,/^t26/-1sort/\d\d/rn
[?25l[?1ca122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t25: numeric, sort on first 2 digits
abc
ab
a


a123
a122
b123
c123d
 123b
a321
b321[?25h[?0c[?25l[?1c:[?25h[?0c/^t26:/+1,/^t27/-1sort/\d\d/rx
[?25l[?1cc321d
b322b
b321
b321b
t26: hexadecimal, sort on first 2 digits
abc[?25h[?0c[?25l[?1c
:[?25h[?0c/^t27:/+1,/^t28/-1sort no
[?25l[?1cE474: Invalid argument[?25h[?0c[?25l[?1c:[?25h[?0c/^t28:/+1,/^t29/-1sort b
[?25l[?1cb321
b123
c123d
 123b
c321d
b322b
b321
b321b


t28: binary


0b000000
0b001000
0b010000
0b100000
0b100010
0b100010
0b100100
0b101000
0b101000
0b101001[?25h[?0c[?25l[?1c:[?25h[?0c/^t29:/+1,/^t30/-1sort b
[?25l[?1c0b101001
0b101010
0b101100
0b111000
t29: binary with leading characters[?25h[?0c[?25l[?1c
:[?25h[?0c/^t30:/+1,/^t31/-1sort f
[?25l[?1ca0b001000
0b010000
ab0b100000
0b100010
0b100010
 0b100100
0b101000
0b101000
 0b101001
a0b101001
0b101010
b0b101100
b0b111000
t30: float


-1.1e3
-1.01e3
1.15e-6
0.88
1.234
123.456
t31: done[?25h[?0c[?25l[?1c:[?25h[?0c/^t01:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 501 lines, 3105 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test57 = test61; then \
#	  if diff test.out test57.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test57.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test57.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test60.in
[?25h[?8c[?25h[?0c[?25l[?1c"test60.in" 601 lines, 13116 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for the exists() and has() functions.  vim: set ft=vim ts=8 sw=2 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 596 lines, 13023 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! RunTest(str, result)
[?25l[?1c
:  [?25h[?0c    if exists(a:str) == a:result

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED: Checking for " . a:str

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0cendfunction
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x[?25h[?0c[?25l[?1c
:[?25h[?0cfunction! TestExists()
[?25l[?1c
:  [?25h[?0c    augroup myagroup

[?25l[?1c:  [?25h[?0c^Iautocmd! BufEnter       *.my     echo "myfile edited"

[?25l[?1c:  [?25h[?0c^Iautocmd! FuncUndefined  UndefFun exec "fu UndefFun()\nendfu"

[?25l[?1c:  [?25h[?0c    augroup END

[?25l[?1c:  [?25h[?0c    set rtp+=./sautest

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    let test_cases = []

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " valid autocmd group

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup', 1]]

[?25l[?1c:  [?25h[?0c    " valid autocmd group with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup+b', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group, event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter#*.my', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter', 1]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter#*.my', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd group or event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#xyzagroup', 0]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd group and valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#xyzagroup#BufEnter', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event with no matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#CmdwinEnter', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and non-existing autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#xyzacmd', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event and non-matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter#xyzpat', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event and non-matching pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter#xyzpat', 0]]

[?25l[?1c:  [?25h[?0c    " Empty autocmd group, event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['###', 0]]

[?25l[?1c:  [?25h[?0c    " Empty autocmd group and event or empty event and pattern

[?25l[?1c:  [?25h[?0c    let test_cases += [['##', 0]]

[?25l[?1c:  [?25h[?0c    " Valid autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['##FileReadCmd', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing autocmd event

[?25l[?1c:  [?25h[?0c    let test_cases += [['##MySpecialCmd', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&textwidth', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&tw', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['&tw-', 0]]

[?25l[?1c:  [?25h[?0c    " Global option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&g:errorformat', 1]]

[?25l[?1c:  [?25h[?0c    " Local option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&l:errorformat', 1]]

[?25l[?1c:  [?25h[?0c    " Negative form of existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&nojoinspaces', 0]]

[?25l[?1c:  [?25h[?0c    " Negative form of existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['&nojs', 0]]

[?25l[?1c:  [?25h[?0c    " Non-existing option

[?25l[?1c:  [?25h[?0c    let test_cases += [['&myxyzoption', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing and working option (long form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['+incsearch', 1]]

[?25l[?1c:  [?25h[?0c    " Existing and working option with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['+incsearch!1', 0]]

[?25l[?1c:  [?25h[?0c    " Existing and working option (short form)

[?25l[?1c:  [?25h[?0c    let test_cases += [['+is', 1]]

[?25l[?1c:  [?25h[?0c    " Existing option that is hidden.

[?25l[?1c:  [?25h[?0c    let test_cases += [['+autoprint', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing environment variable

[?25l[?1c:  [?25h[?0c    let $EDITOR_NAME = 'Vim Editor'

[?25l[?1c:  [?25h[?0c    let test_cases += [['$EDITOR_NAME', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing environment variable

[?25l[?1c:  [?25h[?0c    let test_cases += [['$NON_ENV_VAR', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr', 1]]

[?25l[?1c:  [?25h[?0c    " Valid internal function with ()

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr()', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing internal function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*myxyzfunc', 0]]

[?25l[?1c:  [?25h[?0c    " Valid internal function with garbage

[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr&6', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid user defined function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*TestExists', 1]]

[?25l[?1c:  [?25h[?0c    " Non-existing user defined function

[?25l[?1c:  [?25h[?0c    let test_cases += [['*MyxyzFunc', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Function that may be created by FuncUndefined event

[?25l[?1c:  [?25h[?0c    let test_cases += [['*UndefFun', 0]]

[?25l[?1c:  [?25h[?0c    " Function that may be created by script autoloading

[?25l[?1c:  [?25h[?0c    let test_cases += [['*footest#F', 0]]

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    redir! > test.out

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    for [test_case, result] in test_cases

[?25l[?1c:    [?25h[?0c        echo test_case . ": " . result

[?25l[?1c:    [?25h[?0c        call RunTest(test_case, result)

[?25l[?1c:    [?25h[?0c    endfor

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (full match)

[?25l[?1c:  [?25h[?0c    echo ':edit: 2'

[?25l[?1c:  [?25h[?0c    if exists(':edit') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (full match) with garbage

[?25l[?1c:  [?25h[?0c    echo ':edit/a: 0'

[?25l[?1c:  [?25h[?0c    if exists(':edit/a') == 0

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid internal command (partial match)

[?25l[?1c:  [?25h[?0c    echo ':q: 1'

[?25l[?1c:  [?25h[?0c    if exists(':q') == 1

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing internal command

[?25l[?1c:  [?25h[?0c    echo ':invalidcmd: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':invalidcmd')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " User defined command (full match)

[?25l[?1c:  [?25h[?0c    command! MyCmd :echo 'My command'

[?25l[?1c:  [?25h[?0c    echo ':MyCmd: 2'

[?25l[?1c:  [?25h[?0c    if exists(':MyCmd') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " User defined command (partial match)

[?25l[?1c:  [?25h[?0c    command! MyOtherCmd :echo 'Another command'

[?25l[?1c:  [?25h[?0c    echo ':My: 3'

[?25l[?1c:  [?25h[?0c    if exists(':My') == 3

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Command modifier

[?25l[?1c:  [?25h[?0c    echo ':rightbelow: 2'

[?25l[?1c:  [?25h[?0c    if exists(':rightbelow') == 2

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing user defined command (full match)

[?25l[?1c:  [?25h[?0c    delcommand MyCmd

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    echo ':MyCmd: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':MyCmd')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing user defined command (partial match)

[?25l[?1c:  [?25h[?0c    delcommand MyOtherCmd

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    echo ':My: 0'

[?25l[?1c:  [?25h[?0c    if !exists(':My')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local variable

[?25l[?1c:  [?25h[?0c    let local_var = 1

[?25l[?1c:  [?25h[?0c    echo 'local_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local variable with garbage

[?25l[?1c:  [?25h[?0c    let local_var = 1

[?25l[?1c:  [?25h[?0c    echo 'local_var%n: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_var%n')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local variable

[?25l[?1c:  [?25h[?0c    unlet local_var

[?25l[?1c:  [?25h[?0c    echo 'local_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing autoload variable that may be autoloaded

[?25l[?1c:  [?25h[?0c    echo 'footest#x: 0'

[?25l[?1c:  [?25h[?0c    if !exists('footest#x')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list

[?25l[?1c:  [?25h[?0c    let local_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'local_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list item

[?25l[?1c:  [?25h[?0c    echo 'local_list[1]: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_list[1]')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local list item with garbage

[?25l[?1c:  [?25h[?0c    echo 'local_list[1]+5: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list[1]+5')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Invalid local list item

[?25l[?1c:  [?25h[?0c    echo 'local_list[2]: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list[2]')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local list

[?25l[?1c:  [?25h[?0c    unlet local_list

[?25l[?1c:  [?25h[?0c    echo 'local_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Valid local dictionary

[?25l[?1c:  [?25h[?0c    let local_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'local_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('local_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local dictionary

[?25l[?1c:  [?25h[?0c    unlet local_dict

[?25l[?1c:  [?25h[?0c    echo 'local_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('local_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing local curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "local"

[?25l[?1c:  [?25h[?0c    let curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing local curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global variable

[?25l[?1c:  [?25h[?0c    let g:global_var = 1

[?25l[?1c:  [?25h[?0c    echo 'g:global_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global variable with garbage

[?25l[?1c:  [?25h[?0c    echo 'g:global_var-n: 1'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_var-n')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global variable

[?25l[?1c:  [?25h[?0c    unlet g:global_var

[?25l[?1c:  [?25h[?0c    echo 'g:global_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global list

[?25l[?1c:  [?25h[?0c    let g:global_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'g:global_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global list

[?25l[?1c:  [?25h[?0c    unlet g:global_list

[?25l[?1c:  [?25h[?0c    echo 'g:global_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global dictionary

[?25l[?1c:  [?25h[?0c    let g:global_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'g:global_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:global_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global dictionary

[?25l[?1c:  [?25h[?0c    unlet g:global_dict

[?25l[?1c:  [?25h[?0c    echo 'g:global_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:global_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing global curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "global"

[?25l[?1c:  [?25h[?0c    let g:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'g:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('g:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing global curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet g:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'g:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('g:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window variable

[?25l[?1c:  [?25h[?0c    echo 'w:window_var: 1'

[?25l[?1c:  [?25h[?0c    let w:window_var = 1

[?25l[?1c:  [?25h[?0c    if exists('w:window_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window variable

[?25l[?1c:  [?25h[?0c    unlet w:window_var

[?25l[?1c:  [?25h[?0c    echo 'w:window_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window list

[?25l[?1c:  [?25h[?0c    let w:window_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'w:window_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:window_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window list

[?25l[?1c:  [?25h[?0c    unlet w:window_list

[?25l[?1c:  [?25h[?0c    echo 'w:window_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window dictionary

[?25l[?1c:  [?25h[?0c    let w:window_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'w:window_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:window_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window dictionary

[?25l[?1c:  [?25h[?0c    unlet w:window_dict

[?25l[?1c:  [?25h[?0c    echo 'w:window_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:window_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing window curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "window"

[?25l[?1c:  [?25h[?0c    let w:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'w:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('w:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing window curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet w:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'w:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('w:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer variable

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_var: 1'

[?25l[?1c:  [?25h[?0c    let b:buffer_var = 1

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer variable

[?25l[?1c:  [?25h[?0c    unlet b:buffer_var

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer list

[?25l[?1c:  [?25h[?0c    let b:buffer_list = ["blue", "orange"]

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_list: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer list

[?25l[?1c:  [?25h[?0c    unlet b:buffer_list

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_list: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_list')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer dictionary

[?25l[?1c:  [?25h[?0c    let b:buffer_dict = {"xcord":100, "ycord":2}

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_dict: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:buffer_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer dictionary

[?25l[?1c:  [?25h[?0c    unlet b:buffer_dict

[?25l[?1c:  [?25h[?0c    echo 'b:buffer_dict: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_dict')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing buffer curly-brace variable

[?25l[?1c:  [?25h[?0c    let str = "buffer"

[?25l[?1c:  [?25h[?0c    let b:curly_{str}_var = 1

[?25l[?1c:  [?25h[?0c    echo 'b:curly_' . str . '_var: 1'

[?25l[?1c:  [?25h[?0c    if exists('b:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing buffer curly-brace variable

[?25l[?1c:  [?25h[?0c    unlet b:curly_{str}_var

[?25l[?1c:  [?25h[?0c    echo 'b:curly_' . str . '_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('b:curly_{str}_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Script-local tests

[?25l[?1c:  [?25h[?0c    source test60.vim

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Existing Vim internal variable

[?25l[?1c:  [?25h[?0c    echo 'v:version: 1'

[?25l[?1c:  [?25h[?0c    if exists('v:version')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Non-existing Vim internal variable

[?25l[?1c:  [?25h[?0c    echo 'v:non_exists_var: 0'

[?25l[?1c:  [?25h[?0c    if !exists('v:non_exists_var')

[?25l[?1c:    [?25h[?0c^Iecho "OK"

[?25l[?1c:    [?25h[?0c    else

[?25l[?1c:    [?25h[?0c^Iecho "FAILED"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c    " Function arguments

[?25l[?1c:  [?25h[?0c    function TestFuncArg(func_arg, ...)

[?25l[?1c:    [?25h[?0c        echo 'a:func_arg: 1'

[?25l[?1c:    [?25h[?0c        if exists('a:func_arg')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:non_exists_arg: 0'

[?25l[?1c:    [?25h[?0c        if !exists('a:non_exists_arg')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:1: 1'

[?25l[?1c:    [?25h[?0c        if exists('a:1')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c        echo 'a:2: 0'

[?25l[?1c:    [?25h[?0c        if !exists('a:2')

[?25l[?1c:      [?25h[?0c            echo "OK"

[?25l[?1c:      [?25h[?0c        else

[?25l[?1c:      [?25h[?0c            echo "FAILED"

[?25l[?1c:      [?25h[?0c        endif

[?25l[?1c:    [?25h[?0c    endfunction

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    call TestFuncArg("arg1", "arg2")

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    echo ' g:footest#x =' g:footest#x

[?25l[?1c:    [?25h[?0c    echo '   footest#F()' footest#F()

[?25l[?1c:    [?25h[?0c    echo 'UndefFun()' UndefFun()

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0c    redir END

[?25l[?1c:    [?25h[?0cendfunction
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0ccall TestExists()
[?25l[?1c#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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1cendif
    endfunctioncall TestFuncArg("arg1", "arg2")echo ' g:footest#x =' g:footest#x
    echo '   footest#F()' footest#F()
    echo 'UndefFun()' UndefFun()redir END
endfunction
:call TestExists()
:"
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
:while getchar(1) | call getchar() | endwhile
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0cdelfunc TestExists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc RunTest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestFuncArg
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit! test.out
[?25l[?1c"test.out" [Incomplete last line] 206 lines, 1940 characters#myagroup: 1OK
#myagroup+b: 0OK
#myagroup#BufEnter: 1OK#myagroup#BufEnter#*.my: 1OK
#BufEnter: 1OK#BufEnter#*.my: 1OK
#xyzagroup: 0OK#xyzagroup#BufEnter: 0
OK#myagroup#CmdwinEnter: 0
OK
#myagroup#xyzacmd: 0
OK#myagroup#BufEnter#xyzpat: 0
OK[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 206 lines, 1941 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test60 = test61; then \
#	  if diff test.out test60.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test60.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test60.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test64.in
[?25h[?8c[?25h[?0c[?25l[?1c"test64.in" 654 lines, 27565 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for regexp patterns without multi-byte support.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 621 lines, 27090 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:for pat in [' \ze*', ' \zs*']
:  try
:    let l = matchlist('x x', pat)
:    $put ='E888 NOT detected for ' . pat
:  catch
:    $put ='E888 detected for ' . pat
:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="">Ta 5</Title>
<T="">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" tl is a List of Lists with:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp engine
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp pattern
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    text to test the pattern on
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected match (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 1 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 2 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    etc.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  When there is no match use only the first two items.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Previously written tests """"""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b', 'abcdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abbdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c*', 'ccc', 'ccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc*', 'abdef', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c*', 'abdef', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\+', 'abdef']) "no match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"operator \|
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'c\?', 'ccb', 'c'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\?', 'abd', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'bc\?', 'abccd', 'bc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1}', 'ab', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'caad', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aba'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'abaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}', 'aaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vb{1}', 'abca', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vba{2}', 'abaa', 'baa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vba{3}', 'aabaac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'dabc', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'acb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){0,2}', 'acb', "", ""])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){0,2}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1,2}', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){1,2}', 'ababc', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2,4}', 'ababcab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2,4}', 'abcababa', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'cdababe', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abacabab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'daaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'daaac', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'aaa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})+', 'adaac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})+', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'aa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){2}', 'aaaa', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+){2}', 'dadaac', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){2}', 'daaac', 'aaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){3}', 'daac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){2}', 'dac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)+', 'daac', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)+', 'aaa', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+){1,2}', 'aaa', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{3})+', 'daaaac', 'aaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b|c)+', 'aacb', 'aacb', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b|c){2}', 'abcb', 'ab', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc){2}', 'abcabd', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc){2}', 'abdabcabc','abcabc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a*', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+)+', 'ab', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{0,2})+', 'cc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((a*)+)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)*)+', '', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1,3}', 'aab', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2,3}', 'abaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{2}|b{2}', 'abab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}c', 'aabbccccccccccccc', 'abbc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va(bc){2}d', 'aabcbfbc' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'a', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'aa', 'aa' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'aaa', 'aaa' ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'bbbabcc', ])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va*b*|a*c*', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\va{1}b{1}|a{1}b{1}', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"submatches
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)', 'ab', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)(b)', 'ab', 'ab', 'a', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a)|(b)', 'ab', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a*)+', 'aaaa', 'aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x', 'abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" Simple tests """""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Search single groups
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'aab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', 'baced'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ab', '                    ab           ', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Search multi-modifiers
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'xcd', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'xxxxxxxxxxxxxxxxsofijiojgf', 'xxxxxxxxxxxxxxxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x*', 'abcdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" no match here
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abcdoin'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abcdeoijdfxxiuhfij', 'xx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'xxxxx', 'xxxxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\+', 'abc x siufhiush xxxxxxxxx', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'x sdfoij', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'abc sfoij', '']) " empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\=', 'xxxxxxxxx c', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'x sdfoij', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" empty match is good
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'abc sfoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'x\?', 'xxxxxxxxxx c', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,0}', 'abcdfdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a?'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,1}', 'asiubid axxxaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a\{0,1}'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{1,0}', 'asiubid axxxaaa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aa siofuh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aaaaa asfoij afaa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aaaaaaaa', 'aaaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0}', 'asoiuj', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'iuash fiusahfliusah fiushfilushfi uhsaifuh askfj na

sfvius afg aaaa sfiuhuhiushf', 'aa'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,}', 'oij sdigfusnf', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{0,}', 'aaaaa aa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,}', 'sdfiougjdsafg'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,}', 'aaaaasfoij ', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{5,}', 'xxaaaaxxx '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{5,}', 'xxaaaaaxxx ', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,5}', 'abcd', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{,5}', 'aaaaaaaaaa', 'aaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" leading star as normal char when \{} follows
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '***'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '****', '****'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '*****', '*****'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" same thing as 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{}', 'bbbcddiuhfcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{}', 'aaaaioudfh coisf jda', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,0}', 'abcdfdoij', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" anti-greedy version of 'a?'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,1}', 'asiubid axxxaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aa siofuh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aaaaa asfoij afaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aaaaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0}', 'asoiuj', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2}', 'aaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,}', 'oij sdigfusnf', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-0,}', 'aaaaa aa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,}', 'sdfiougjdsafg'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,}', 'aaaaasfoij ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,0}', 'oidfguih iuhi hiu aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,5}', 'abcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-,5}', 'aaaaaaaaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" anti-greedy version of 'a*'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-}', 'bbbcddiuhfcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-}', 'aaaaioudfh coisf jda', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test groups of characters and submatches
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(abc\)*', 'abcabcabc', 'abcabcabc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(ab\)\+', 'abababaaaaa', 'ababab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(abaaaaa\)*cd', 'cd', 'cd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(test1\)\? \(test2\)\?', 'test1 test3', 'test1 ', 'test1', 

''])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(test1\)\= \(test2\) \(test4443\)\=', ' test2 test4443 yupi

iiiiiiiiii', ' test2 test4443', '', 'test2', 'test4443'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\(sub1\) hello \(sub 2\)\)', 'asterix sub1 hello sub 2 obe

lix', 'sub1 hello sub 2', 'sub1 hello sub 2', 'sub1', 'sub 2'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\(\(yyxxzz\)\)\)', 'abcdddsfiusfyyzzxxyyxxzz', 'yyxxzz', '

yyxxzz', 'yyxxzz', 'yyxxzz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)+|c+)+', 'abcccaba', 'abcccab', 'ab', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v((ab)|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a(c*)+b)+', 'acbababaaa', 'acbabab', 'ab', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|b*)+', 'aaaa', 'aaaa', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p*', 'aá ^I', 'aá '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test greedy-ness and lazy-ness
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,7}','aaaaaaaaaaaaa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{-2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,7}','aaaaaaaaaaaaaaaaaaaa', 'aaaaaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\{2,7}x','aaaaaaaaax', 'aaaaaaax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vx(.{-,8})yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz','ayxa

','xayzxayz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\vx(.*)yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz', 'ayxayzx

ayzxa',''])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){-2,3}','aaaaaaa','aaaa','aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a{-1,3})+', 'aa', 'aa', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\zs\( x\|x$\)', ' x', ' x', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\zs\(x\| x$\)', ' x', ' x', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\s\{-}\ze\(x\| x$\)', ' x', '', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(\s\{-}\)\(x\| x$\)', ' x', ' x', '', ' x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test Character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\d\+e\d\d','test 10e23 fd','10e23'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test collections and character range []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v[a]', 'abcd', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a[bcd]', 'abcd', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a[b-d]', 'acbd', 'ac'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-d][e-f][x-x]d', 'cexdxx', 'cexd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v[[:alpha:]]+', 'abcdefghijklmnopqrstuvwxyz6','abcdefghijkl

mnopqrstuvwxyz'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:]\+]', '6x8','x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]\+','abcabcabc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]','defghiasijvoinasoiunbvb','d'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^abc]\+','ddddddda','ddddddd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-d]\+','aaaAAAZIHFNCddd','AAAZIHFNC'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*','iiiiiiii',''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*','abcdefgh','abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-f]\+','abcdefgh','gh'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-c]\{-3,6}','abcabc','abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^[:alpha:]]\+','abcccadfoij7787ysf287yrnccdu','7787'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[-a]', '-', '-'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-]', '-', '-'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-f]*\c','ABCDEFGH','ABCDEF'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[abc][xyz]\c','-af-AF-BY--','BY'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" filename regexp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[-./[:alnum:]_~]\+', 'log13.file', 'log13.file'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" special chars
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[\]\^\-\\]\+', '\^\\\-\---^', '\^\\\-\---^'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" collation elem
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[.a.]]\+', 'aa', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" middle of regexp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc[0-9]*ddd', 'siuhabc ii'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc[0-9]*ddd', 'adf abc44482ddd oijs', 'abc44482ddd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[0-9]\+', 'asfi9888u', '9888'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9\n]\+', 'asfi9888u', '9888'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[0-9]\+', "asfi\n9888u", "\n9888"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_f', "  \na ", "\n"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_f\+', "  \na ", "\na"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9A-Za-z-_.]\+', " @0_a.A-{ ", "0_a.A-"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test start/end of line, start/end of file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^a.', "a_\nb ", "a_"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^a.', "b a \na_"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a$', " a\n "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a$', " a b\n_a", "_a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%^a.', "a a\na", "a "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%^a', " a \na "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a\%$', " a\n "])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.a\%$', " a\n_a", "_a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test recognition of character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Tests for \z features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" match ends at \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'xx \ze test', 'xx '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\zeend', 'oij abcend', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaxx', ' aabb ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaxx', ' aaxx ', 'aaxx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aabb\|aa\zebb', ' aabb ', 'aabb'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaebb', ' aabb ', 'aa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" match starts at \zs
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\zsdd', 'ddabcddxyzt', 'dd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'aa \zsax', ' ax'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if 

last'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\>\zs.', 'aword. ', '.'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is   [a t', '  '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Tests for \@= and \& features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=', 'abc', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=cd', 'abcd', 'abcd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abc\@=', 'ababc', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" will never match, no matter the input text
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abcd\@=e', 'abcd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" will never match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'abcd\@=e', 'any text in here ... '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(abc)@=..', 'xabcd', 'ab', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(.*John\)\@=.*Bob', 'here is John, and here is B'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(John.*\)\@=.*Bob', 'John is Bobs friend', 'John is Bob', '

John is Bobs friend'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<\S\+\())\)\@=', '$((i=i+1))', 'i=i+1', '))'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.*John\&.*Bob', 'here is John, and here is B'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.*John\&.*Bob', 'John is Bobs friend', 'John is Bob'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(test1)@=.*yep', 'this is a test1, yep it is', 'test1, yep

', 'test1'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\(bar\)\@!', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\(bar\)\@!', 'foo bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if then else'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if else ', 'if else ', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@!bar', 'foobar', 'bar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@!...bar', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' bar foo '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo bar '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo xxx ', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ ]\@!\p\%([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:']

)[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ ]\@!\p\([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:', 

's'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'm\k\+_\@=\%(_\@!\k\)\@<=\k\+e', 'mx__xe', 'mx__xe'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%(\U\@<=S\k*\|S\l\)R', 'SuR', 'SuR'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Combining different tests and features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:]]\{-2,6}', '787abcdiuhsasiuhb4', 'ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '', 'abcd', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(())', 'any possible text', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v%(ab(xyz)c)', '   abxyzc ', 'abxyzc', 'xyz'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(test|)empty', 'tesempty', 'empty', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v(a|aa)(a|aa)', 'aaa', 'aa', 'a', 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" \%u and friends
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%d32', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%o40', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%x20', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%u0020', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%U00000020', 'yes no', ' '])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%d0', "yes\x0ano", "\x0a"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" \%[abc]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'fobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobar', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'fooxx', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobxx', 'foob'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobaxx', 'fooba'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobarxx', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]x', 'foobxx', 'foobx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'foo\%[bar]x', 'foobarxx', 'foobarx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'barxx', 'barx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'bxx', 'bx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'xxx', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b\%[[ao]r]', 'bar bor', 'bar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'b\%[[]]r]', 'b]r bor', 'b]r'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '@\%[\w\-]*', '<http://john.net/pandoc/>[@pandoc]', '@pandoc'

])[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Alternatives, must use first longest match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'goo\|go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<goo\|\<go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\<goo\|go', 'google', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Back references
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\i\+\) \1', ' abc abc', 'abc abc', 'abc'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\i\+\) \1', 'xgoo goox', 'goo goo', 'goo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a\)\(b\)\(c\)\(dd\)\(e\)\(f\)\(g\)\(h\)\(i\)\1\2\3\4\5\6\7

\8\9', 'xabcddefghiabcddefghix', 'abcddefghiabcddefghi', 'a', 'b', 'c', 'dd', 'e

', 'f', 'g', 'h', 'i'])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(\d*\)a \1b', ' a b ', 'a b', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.\(.\).\_..\1.', "aaa\naaa\nb", "aaa\naaa", 'a'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.com', 'foo.bat/foo

.com', 'bat'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.bat'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<=$', 'foo.bat/foo.bat', 'foo.bat/foo

.bat', 'bat', 'bat'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}', '2013-06-27${0}', '$

{0}', '0'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(a*\)\1$', 'aaaaaaaa', 'aaaaaaaa', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(a\{-2,}\)\1\+$', 'aaaaaaaaa', 'aaaaaaaaa', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Look-behind with limit
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@1<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '<\@2<=span.', 'xxspanxx<spanyyy', 'spany'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<<

'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@1<=span.', 'xxspanxxxx<spanxx<<spanyyy'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(<<\)\@2<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<

<'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<!bar.', 'xx foobar1 xbar2 xx', 'bar2'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" look-behind match in front of a zero-width item
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" test header'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" Last Changed: 1970', '19

70'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=\>', 'foobar'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" complicated look-behind match
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^[a-z]\+\ze \&\(asdf\)\@<!', 'foo bar', 'foo'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" \@>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a*\)\@>a', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\(.\{-}b\)\@>.', '  abcbd', '  abc', '  ab'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', ''])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" TODO: BT engine does not restore submatch after failure
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" "\_" prepended negated collection matches EOL
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Requiring lots of states.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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-"])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Skip adding state twice
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=', "#if FOO", 

"#if", ' FOO'])
[?25l[?1c:for pat in [' \ze*', ' \zs*'][?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""" Test \%V atom
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\%>70vGesamt', 'Jean-Michel Charlier & Victor Hubinon\Gesamt

ausgabe [Salleck]    Buck Danny {Jean-Michel Charlier & Victor Hubinon}\Gesamtau

sgabe', 'Gesamt'])
[?25l[?1c:for pat in [' \ze*', ' \zs*']
:  try[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let text = t[2]

[?25l[?1c:  [?25h[?0c:  let matchidx = 3

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    try

[?25l[?1c:      [?25h[?0c:      let l = matchlist(text, pat)

[?25l[?1c:      [?25h[?0c:    catch

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l[?1c:      [?25h[?0c:    endtry

[?25l[?1c:    [?25h[?0c:" check the match itself

[?25l[?1c:    [?25h[?0c:    if len(l) == 0 && len(t) > matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    elseif len(l) > 0 && len(t) == matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l[?1c:      [?25h[?0c:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if len(l) > 0

[?25l[?1c:      [?25h[?0c:"   check all the nine submatches

[?25l[?1c:      [?25h[?0c:      for i in range(1, 9)

[?25l[?1c:[?25h[?0c:        if len(t) <= matchidx + i

[?25l[?1c:[?25h[?0c:          let e = ''

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          let e = t[matchidx + i]

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:        if l[i] != e

[?25l[?1c:[?25h[?0c:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:      endfor

[?25l[?1c:      [?25h[?0c:      unlet i

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 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.*$\)\@=
OK 0 - \%>70vGesamt
OK 1 - \%>70vGesamt
OK 2 - \%>70vGesamt
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl e l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""""" multi-line tests """"""""""""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" back references
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '^.\(.\).\_..\1.', ['aaa', 'aaa', 'b'], ['XX', 'b']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" line breaks
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\S.*\nx', ['abc', 'def', 'ghi', 'xjk', 'lmn'], ['abc', 'def'

, 'XXjk', 'lmn']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check that \_[0-9] matching EOL does not break a following \>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall 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', '']])
[?25l[?1cOK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check a pattern with a line break and ^ and $
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\(^.\+\n\)\1', [' dog', ' dog', 'asdf'], ['XXasdf']])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the multi-line tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='multi-line tests'
[?25l[?1c
multi-line tests[?25h[?0c[?25l[?1c
:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let before = t[2]

[?25l[?1c:  [?25h[?0c:  let after = t[3]

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re ==1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    new

[?25l[?1c:    [?25h[?0c:    call setline(1, before)

[?25l[?1c:    [?25h[?0c:    exe '%s/' . pat . '/XX/'

[?25l[?1c:    [?25h[?0c:    let result = getline(1, '$')

[?25l[?1c:    [?25h[?0c:    q!

[?25l[?1c:    [?25h[?0c:    if result != after

[?25l[?1c:      [?25h[?0c:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . string(before) . 

'\", expected: \"' . string(after) . '\", got: \"' . string(result) . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 2 - \%>70vGesamt
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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check that using a pattern on two lines doesn't get messed up by using
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" matchstr() with \ze in between.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset re=0
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Substitute here
[?25l[?1csearch hit BOTTOM, continuing at TOP:    let l = matchlist('x x', pat)
:    $put ='E888 NOT detected for ' . pat
:  catch
:    $put ='E888 detected for ' . pat
:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="">Ta 5</Title>
<T="">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c.+1,.+2s/""/\='"'.matchstr(getline("."), '\d\+\ze<').'"'
[?25l[?1c5">Ta 5</Title>
<T="7">Ac 7</Title>
[?25h[?0c[?25l[?1c/[?25h[?0c^Substitute here
[?25l[?1csearch hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c:[?25h[?0c.+1,.+2yank
[?25l[?1c[?25h[?0c[?25l[?1cOK 2 - \%>70vGesamt
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
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
<T="5">Ta 5</Title>
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check a pattern with a look beind crossing a line boundary
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Behind:
[?25l[?1csearch hit BOTTOM, continuing at TOP:  endtry
:endfor
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexe the thexethe
andaxand andaxand
oooxofor foroxooo
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/[?25h[?0c\(<\_[xy]\+\)\@3<=start
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.yank
[?25l[?1c[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
xxstart3
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check matching Visual area
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Visual:
[?25l[?1csearch hit BOTTOM, continuing at TOP<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexe the thexethe
andaxand andaxand
oooxofor foroxooo
oooxofor foroxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf

Results of test64:
search hit BOTTOM, continuing at TOP[?25h[?0c
the[?25l[?1c[?25h[?0c[?25l[?1cxe the the[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Ve/E/g
[?25l[?1c3 substitutions on 1 linexE thE thE
[?25h[?0c
[?25l[?1candaxand andaxand 
[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Va/A/g
[?25l[?1c6 substitutions on 1 lineAndAxAnd AndAxAnd[?25h[?0c
ooo[?25l[?1c[?25h[?0c[?25l[?1cxofor foro[?25h[?0c[?25l[?1cx
oooxofor foro[?25h[?0c[?25l[?1c:'<,'>[?25h[?0cs/\%Vo/O/g
[?25l[?1c8 substitutions on 2 linesxOfOr fOrOx
oooxOfOr fOrO
[?25h[?0c[?25l[?1c:[?25h[?0c/^Visual/+1,/^Visual/+4yank
[?25l[?1csearch hit BOTTOM, continuing at TOP
4 lines yanked[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
4 more lines
thexE thE thExethe4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check matching marks
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Marks:
[?25l[?1csearch hit BOTTOM, continuing at TOPasdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf

Results of test64:
OK 0 - ab
OK 1 - ab
OK 2 - ab
OK 0 - b
OK 1 - b
OK 2 - b
search hit BOTTOM, continuing at TOP[?25h[?0c
asdf[?25l[?1c:[?25h[?0c.-4,.+6s/.\%>'s.*\%<'e../here/
[?25l[?1chereasdf[?25h[?0c
asdf
dfsa
dfsadf[?25l[?1c:[?25h[?0c.-4,.+6s/.\%>'s\_.*\%<'e../again/
[?25l[?1c
asdfagainasdfOK 0 - bc*[?25h[?0c[?25l[?1c:[?25h[?0c/^Marks:/+1,/^Marks:/+3yank
[?25l[?1csearch hit BOTTOM, continuing at TOP
3 lines yanked[?25h[?0c[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
3 more linesasdfhereasdf
asdfagainasdf3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check patterns matching cursor position.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc! Postest()
[?25l[?1c
:  [?25h[?0c new

[?25l[?1c:  [?25h[?0c call setline(1, ['ffooooo', 'boboooo', 'zoooooo', 'koooooo', 'moooooo', "\t

\t\tfoo", 'abababababababfoo', 'bababababababafoo', '********_', '        xxxxxx

xxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx

xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxx

xxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxx

x xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx xxxxxxxxx xxxx

xxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xx

xxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx xxxxxxxxxxxx x

xxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxx

xxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx'])

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 1, 0, 0])

[?25l[?1c:  [?25h[?0c s/\%>3c.//g

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 2, 4, 0])

[?25l[?1c:  [?25h[?0c s/\%#.*$//g

[?25l[?1c:  [?25h[?0c call setpos('.', [0, 3, 0, 0])

[?25l[?1c:  [?25h[?0c s/\%<3c./_/g

[?25l[?1c:  [?25h[?0c %s/\%4l\%>5c./_/g

[?25l[?1c:  [?25h[?0c %s/\%6l\%>25v./_/g

[?25l[?1c:  [?25h[?0c %s/\%>6l\%3c./!/g

[?25l[?1c:  [?25h[?0c %s/\%>7l\%12c./?/g

[?25l[?1c:  [?25h[?0c %s/\%>7l\%<9l\%>5v\%<8v./#/g

[?25l[?1c:  [?25h[?0c $s/\%(|\u.*\)\@<=[^|\t]\+$//ge

[?25l[?1c:  [?25h[?0c 1,$yank

[?25l[?1c:  [?25h[?0c quit!

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cOK 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

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

asdfhereasdf
asdfagainasdf[?25h[?0c[?25l[?1c20 - a\n^b$\n^cOK 1 - a\n^b$\n^c2
OK 0 - \(^.\+\n\)\1
OK 1 - \(^.\+\n\)\1
OK 2<T="5">Ta 5</Title>
<T="7">Ac 7</Title>xxstart3thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooooooxOfOr fOrOxoooasdfhereasdfasdfagainasdf~                                                                               [?25h[?0c[?25l[?1c
-0-[?25h[?0c[?25l[?1c
:[?25h[?0cset re=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1coooxOfOr fOrOxooo

asdfhereasdf
asdfagainasdf-0-ffobob__ooooo
koooo__moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx[?25h[?0c[?25l[?1c
-1-[?25h[?0c[?25l[?1c
:[?25h[?0cset re=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c-1-
ffo
bob
__ooooo
koooo__
moooooo
   f__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxx
xxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx x xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxxxxxxxx
xxxxxx  xxx xxxx xx xxxxxxxx xxx xxxxxxx~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-2-[?25h[?0c[?25l[?1c:[?25h[?0cset re=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Postest()
[?25l[?1c4 substitutions on 4 lines

10 lines yanked

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cput
[?25l[?1c10 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c-2-
ffo
bob~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" start and end of buffer
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%^
[?25l[?1csearch 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTest[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cOK 2 - \v(a*)+
OK 0 - \v((ab)+)+
OK 1 - \v((ab)+)+
OK 2 - \v((ab)+)+
OK 0 - \v(((ab)+)+)+
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}[?25h[?0c[?25l[?1c/[?25h[?0c\%^..
[?25l[?1csearch 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 engine
:"    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 """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTest[?25h[?0c[?25l[?1ct END[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cOK 0 - \v((ab)+)+
OK 1 - \v((ab)+)+
OK 2 - \v((ab)+)+
OK 0 - \v(((ab)+)+)+
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}[?25h[?0c[?25l[?1c/[?25h[?0c\%$
[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:" tl is a List of Lists with:
:"    regexp engine
:"    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'])[?25h[?0c[?25l[?1c/[?25h[?0c..\%$
[?25l[?1c-2-
ffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx
xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx  xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx  xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx
xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
Test
Test END
~                                                                               ~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c[?25h[?0c[?25l[?1cEN[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cE[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check for detecting error
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset regexpengine=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor pat in [' \ze*', ' \zs*']
[?25l[?1c
:  [?25h[?0c:  try

[?25l[?1c:    [?25h[?0c:    let l = matchlist('x x', pat)

[?25l[?1c:    [?25h[?0c:    $put ='E888 NOT detected for ' . pat

[?25l[?1c:    [?25h[?0c:  catch

[?25l[?1c:    [?25h[?0c:    $put ='E888 detected for ' . pat

[?25l[?1c:    [?25h[?0c:  endtry

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cffo
bob
__ooooo
koooo__
moooooof__
ab!babababababfoo
ba!ab##abab?ba
**!*****_  !     xxx?xxxxxxxx    xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxxxxxxx xxx xxxxxxx xxxxxxxxx  xxx
xxx xxxxxxxxxxxxxxxx xxxxxxxxx  xxx xxxxxxx xxxx xxx xxxx xxx xxx 
xx x xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx xxxxxxx xxxxxxx x x xx xxxxxx xxxxxxx  xxxxxxxxxx xxxxx xxx xxx xxxxxxxx   xxxx xxx xxxxxx xxxxx xxxxx xx  xxxxxxxxx xxxx xxxxxxxxx xxxxx xxxxx xx xxxxxxxxx xxx  xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxTestEND
EN888 detected for  \ze*
E888 detected for  \zs*[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c""""" Write the results """""""""""""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/\%#=1^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1107 lines, 22167 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test64 = test61; then \
#	  if diff test.out test64.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test64.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test64.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test65.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for floating point and logical operators.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 89 lines, 2067 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("float")
[?25l[?1c
:  [?25h[?0c:  e! test.ok

[?25l[?1c:  [?25h[?0c:  wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:$put =float2nr(123.456)
:$put =float2nr(-123.456)
:$put ='AND'[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%f', 123.456)
[?25l[?1c
123.456000[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%e', 123.456)
[?25l[?1c
1.234560e+02[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 123.456)
[?25l[?1c
123.456[?25h[?0c[?25l[?1c
:[?25h[?0c" check we don't crash on division by zero
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cecho 1.0 / 0.0
[?25l[?1cinf[?25h[?0c[?25l[?1c:[?25h[?0c$put ='+='
[?25l[?1c
+=[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v += 6.543
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%g', v)
[?25l[?1c
7.777[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v += 5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =printf('%g', v)
[?25l[?1c
6.234[?25h[?0c[?25l[?1c
:[?25h[?0clet a = 5
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a += 3.333
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(a)
[?25l[?1c
8.333[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='=='
[?25l[?1c
==[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =v == 1.234
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =v == 1.2341
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='add-subtract'
[?25l[?1c
add-subtract[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4 + 1.234)
[?25l[?1c
5.234[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 1.234 - 8)
[?25l[?1c
-6.766[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='mult-div'
[?25l[?1c
mult-div[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4 * 1.234)
[?25l[?1c
4.936[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4.0 / 1234)
[?25l[?1c
0.003241[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='dict'
[?25l[?1c
dict[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string({'x': 1.234, 'y': -2.0e20})
[?25l[?1c
{'x': 1.234, 'y': -2.0e20}[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='list'
[?25l[?1c
list[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string([-123.4, 2.0e-20])
[?25l[?1c
[-123.4, 2.0e-20][?25h[?0c[?25l[?1c
:[?25h[?0c$put ='abs'
[?25l[?1c
abs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs(1456))
[?25l[?1c
1456[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs(-4))
[?25l[?1c
4[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs([1, 2, 3]))
[?25l[?1cE745: Using a List as a Number
-1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', abs(14.56))
[?25l[?1c
14.56[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', abs(-54.32))
[?25l[?1c
54.32[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ceil'
[?25l[?1c
ceil[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(1.456))
[?25l[?1c
2.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(-5.456))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(-4.000))
[?25l[?1c
-4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='floor'
[?25l[?1c
floor[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(1.856))
[?25l[?1c
1.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(-5.456))
[?25l[?1c
-6.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(4.0))
[?25l[?1c
4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='log10'
[?25l[?1c
log10[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', log10(1000))
[?25l[?1c
3.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', log10(0.01000))
[?25l[?1c
-2.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='pow'
[?25l[?1c
pow[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', pow(3, 3.0))
[?25l[?1c
27.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', pow(2, 16))
[?25l[?1c
65536.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='round'
[?25l[?1c
round[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(0.456))
[?25l[?1c
0.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(4.5))
[?25l[?1c
5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(-4.50))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='sqrt'
[?25l[?1c
sqrt[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', sqrt(100))
[?25l[?1c
10.0[?25h[?0c[?25l[?1c
:[?25h[?0cecho sqrt(-4.01)
[?25l[?1cnan[?25h[?0c[?25l[?1c:[?25h[?0c$put ='str2float'
[?25l[?1c
str2float[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', str2float('1e40'))
[?25l[?1c
1.0e40[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='trunc'
[?25l[?1c
trunc[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(1.456))
[?25l[?1c
1.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(-5.456))
[?25l[?1c
-5.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(4.000))
[?25l[?1c
4.0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='float2nr'
[?25l[?1c
float2nr[?25h[?0c[?25l[?1c
:[?25h[?0c$put =float2nr(123.456)
[?25l[?1c
123[?25h[?0c[?25l[?1c
:[?25h[?0c$put =float2nr(-123.456)
[?25l[?1c
-123[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='AND'
[?25l[?1c
AND[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 127)
[?25l[?1c
127[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 16)
[?25l[?1c
16[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 128)
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='OR'
[?25l[?1c
OR[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(16, 7)
[?25l[?1c
23[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(8, 7)
[?25l[?1c
15[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(0, 123)
[?25l[?1c
123[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='XOR'
[?25l[?1c
XOR[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 127)
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 16)
[?25l[?1c
111[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 128)
[?25l[?1c
255[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='invert'
[?25l[?1c
invert[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(127), 65535)
[?25l[?1c
65408[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(16), 65535)
[?25l[?1c
65519[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(128), 65535)
[?25l[?1c
65407[?25h[?0c[?25l[?1c
:[?25h[?0c$put =invert(1.0)
[?25l[?1cE805: Using a Float as a Number
0[?25h[?0c[?25l[?1c
:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 73 lines, 430 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test65 = test61; then \
#	  if diff test.out test65.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test65.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test65.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test66.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 234 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^one
[?25l[?1c[?25h[?0con[?25l[?1c[?25h[?0c[?25l[?1ce
one two three
one two three
one two three
one two three[?25h[?0c[?25l[?1c
4 fewer linesabcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cmore lines; before #1  0 seconds agoone two three
one two three
one two threeone two threeone two three[?25h[?0c[?25l[?1ce
one
one
one
on[?25h[?0c[?25l[?1c1
on1
on1
on1
on1[?25h[?0c[?25l[?1c:[?25h[?0c'<,'>w! test.out
[?25l[?1c"test.out" [New File] 5 lines, 70 characters written[?25h[?0c[?25l[?1c/[?25h[?0c^abcdefgh
[?25l[?1cabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
[?25h[?0c[?25l[?1ca
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?25h[?0c
[?25l[?1cabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc            defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci  [?25h[?0c[?25l[?1c
5 lines <ed 1 timeidefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0c$-5,$w >> test.out
[?25l[?1c"test.out"6 lines, 151 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$s/\s\+//g
[?25l[?1c7 substitutions on 4 linesabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
a
a
a[?25h[?0c[?25l[?1c
a
a
a
a    abcdefghijklmnopqrstuvwxyz
    abcdefghij
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[?25h[?0c
[?25l[?1cabcdefghij[?25h[?0c
    ab[?25l[?1cc         defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc                       defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1cc                 defghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ci  [?25h[?0c[?25l[?1c
5 lines <ed 3 timesidefghijklmnopqrstuvwxyz    defghijklmnopqrstuvwxyzdefghijklmnopqrstuvwxyz[?25h[?0c[?25l[?1c:[?25h[?0c$-4,$w >> test.out
[?25l[?1c"test.out"5 lines, 147 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test66 = test61; then \
#	  if diff test.out test66.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test66.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test66.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test67.in
[?25h[?8c[?25h[?0c[?25l[?1c"test67.in" 33 lines, 1110 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#<buffer>: " . exists("#BufEnter#<buffer>"))
:au BufEnter <buffer> let g:entered=1[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest that groups and patterns are tested correctly when calling exists() for[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 999 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
:edit testfile2.test
:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
:e! test.out
:call append(0, results)
:$d
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet results=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup auexists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "##BufEnter: " . exists("##BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter * let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter: " . exists("#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup auexists
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter * let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caugroup END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter *.test let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit testfile.test
[?25l[?1c"testfile.test" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufEnter <buffer> let g:entered=1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cedit testfile2.test
[?25l[?1c"testfile2.test" [New File][?25h[?0c[?25l[?1c:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File][?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, results)
[?25l[?1c##BufEnter: 1
#BufEnter: 0
#BufEnter: 1
#auexists#BufEnter: 0
#auexists#BufEnter: 1
#BufEnter#*.test: 0
#BufEnter#*.test: 1
#BufEnter#<buffer>: 0
#BufEnter#<buffer>: 1
#BufEnter#<buffer>: 0[?25h[?0c[?25l[?1c:[?25h[?0c$d
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 10 lines, 190 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test67 = test61; then \
#	  if diff test.out test67.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test67.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test67.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test68.in
[?25h[?8c[?25h[?0c[?25l[?1c"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

{[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for text formatting.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 48 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noai tw=2 fo=t
[?25l[?1c[?25h[?0c[?25l[?1ca
b[?25h[?0c
[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 38 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c
a  b[?25h[?0c[?25l[?1c
:[?25h[?0cset ai tw=2 fo=tw
[?25l[?1c[?25h[?0c[?25l[?1c
b[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
a[?25h[?0ca [?25l[?1c
b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=3 fo=t
gqgqo
a ^V^A^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
a ^A[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=3 fo=t
[?25l[?1c[?25h[?0c[?25l[?1c
^A[?25h[?0c[?25l[?1ca
^A
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=2 fo=tcq1 comments=:#
gqgqjgqgqo
a b
#a b^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
a b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=2 fo=tcq1 comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
#a b[?25h[?0c[?25l[?1ca b
#a b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 46 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=tcn comments=:#
A b^[jA b^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  1 a[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=tcn comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
b[?25h[?0c[?25l[?1c
# 1 a[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+3
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 35 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=t2a si
i  ^[A_^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+3
[?25l[?1c{

  x a
  b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=t2a si
[?25l[?1c[?25h[?0c[?25l[?1c    b[?25h[?0c[?25l[?1c b_[?25h[?0c[?25l[?1c
c[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=qn comments=:#
gwap
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
# 1 a b[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=qn comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 40 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=5 fo=q2 comments=:#
gwap
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
# x[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=q2 comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c# x a
[?25h[?0c[?25l[?1c
#   b[?25h[?0c[?25l[?1c
/^STARTTEST
}

STARTTEST[?25h[?0c[?25l[?1c
/^{/+2
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 26 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw& fo=a
I^^^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+2
[?25l[?1c{
   1aa
   2bb[?25h[?0c[?25l[?1c
:[?25h[?0cset tw& fo=a
[?25l[?1c[?25h[?0c[?25l[?1c1aa ^^2bb }STARTTEST[?25h[?0c
[?25l[?1c/^STARTTEST
[?25h[?0c[?25l[?1c
/mno pqr/[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 69 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
A vwx yz^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0cmno pqr/
[?25l[?1c/* abc def ghi jkl
 *    mno pqr stu[?25h[?0c[?25l[?1c
:[?25h[?0csetl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
[?25l[?1c[?25h[?0c[?25l[?1c
*    vwx yz[?25h[?0c[?25l[?1c
*/[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^#/
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 47 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:setl tw=12 fo=tqnc comments=:#
A foobar^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^#/
[?25l[?1c
# 1 xxxxx[?25h[?0c[?25l[?1c
:[?25h[?0csetl tw=12 fo=tqnc comments=:#
[?25l[?1c[?25h[?0c[?25l[?1c
#   foobar[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:1;/^Results/,$wq! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c63 fewer lines# 1 a#   b}{
# x a#   b}{ 1aa ^^2bb }/* abc def ghi jkl
 *    mno pqr stu
 *    vwx yz
 */# 1 xxxxx
#   foobar[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 77 lines, 281 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test68 = test61; then \
#	  if diff test.out test68.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test68.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test68.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test69.in
[?25h[?8c[?25h[?0c[?25l[?1c"test69.in" 192 lines, 2185 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for multi-byte text formatting.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 2 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest 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[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 58 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=t
[?25l[?1c[?25h[?0c
[?25l[?1c
XYZ[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1c
Z
abc [?25h[?0c[?25l[?1c
X[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cZ[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=1 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
X[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=1 fo=tm
[?25l[?1c[?25h[?0c[?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c
X a
[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c
XY
[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
X Y
[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 140 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
X a
XY
X Y
aX
abX
abcX
abX c
abXY^[
ENDTEST

{
X
Xa
X a
XY
X Y
aX
abX
abcX
abX c[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=tm
[?25l[?1c[?25h[?0c
[?25l[?1ca[?25h[?0c
[?25l[?1ca[?25h[?0c
[?25l[?1cY
[?25h[?0c
[?25l[?1cY 
[?25h[?0c[?25l[?1c
aX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abcX
[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
abX c
[?25h[?0c[?25l[?1cX
c[?25h[?0c[?25l[?1c
abXY
[?25h[?0c[?25l[?1cX
Y
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX
a
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1cY
a[?25h[?0c[?25l[?1cX
ab[?25h[?0c[?25l[?1cX
abc[?25h[?0c[?25l[?1cX
ab[?25h[?0c[?25l[?1cX
c
ab[?25h[?0c[?25l[?1c
X[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 47 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set ai tw=2 fo=tm
gqgqjgqgqo
X
Xa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  X[?25h[?0c[?25l[?1c
:[?25h[?0cset ai tw=2 fo=tm
[?25l[?1c[?25h[?0c  [?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
  [?25h[?0c[?25l[?1c
X
  a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 53 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set noai tw=2 fo=tm
gqgqjgqgqo
  X
  Xa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
  X[?25h[?0c[?25l[?1c
:[?25h[?0cset noai tw=2 fo=tm
[?25l[?1c[?25h[?0c  [?25l[?1c
Xa[?25h[?0c[?25l[?1c
a[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
  [?25h[?0c[?25l[?1c
X
a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 169 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
X
Xa
XaY
XY
XYZ
X Y
X YZ
XX
XXa
XXY^[
ENDTEST

{
X
Xa
XaY
XY
XYZ
X Y
X YZ
XX
XXa[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tw=2 fo=cqm comments=n:X
[?25l[?1c[?25h[?0c

[?25l[?1cXY[?25h[?0c

[?25l[?1cXZ
[?25h[?0c

[?25l[?1c
X Z
[?25h[?0c[?25l[?1c
XX
[?25h[?0c[?25l[?1c
XXa
[?25h[?0c[?25l[?1c
XXY
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1c
Xa
[?25h[?0c[?25l[?1cXa[?25h[?0c[?25l[?1cXY
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cXZ
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1c
Y
[?25h[?0c[?25l[?1cX [?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1cX Z
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
X
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1c
Xa
[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cX[?25h[?0c[?25l[?1cY[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 30 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set tw=2 fo=tm
RXa^[
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=2 fo=tm
[?25l[?1c[?25h[?0c[?25l[?1c
X
a[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^{/+1
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 34 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set mps+=^Vu2018:^Vu2019
d%
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^{/+1
[?25l[?1c{
‘two three ’four[?25h[?0c[?25l[?1c
:[?25h[?0cset mps+=^‘:^’
[?25l[?1c[?25h[?0c[?25l[?1c four[?25h[?0c[?25l[?1c
}[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
/^ra test
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 16 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTjVjra
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^ra test
[?25l[?1c
ra test[?25h[?0c[?25l[?1c
abba
[?25h[?0c[?25l[?1cbba 
[?25h[?0c[?25l[?1c
a
aab 
[?25h[?0c[?25l[?1caaaaaaa [?25h[?0c
[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set whichwrap+=h
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4 lines, 43 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/^x
dh
:set whichwrap-=h
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset whichwrap+=h
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^x
[?25l[?1cáx[?25h[?0c[?25l[?1cx[?25h[?0c
[?25l[?1c
:[?25h[?0cset whichwrap-=h
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:let a = '.é.' " one char of two bytes
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 548 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:let b = '.é.' " 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 = '.é.'
:put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet a = '.é.' " one char of two bytes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b = '.eé.' " normal e with composing char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^byteidx
[?25l[?1c
byteidx[?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), bytei

dx(a, 4)])
[?25l[?1c:set whichwrap-=h
ENDTESTáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), bytei

dx(b, 4)])
[?25l[?1cENDTESTáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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[?25h[?0c[?25l[?1c
/[?25h[?0c^byteidxcomp
[?25l[?1c
byteidxcomp[?25h[?0c[?25l[?1c
:[?25h[?0cput =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxc

omp(a, 3), byteidxcomp(a, 4)])
[?25l[?1cáxSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
:[?25h[?0clet b = '.eé.'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxc

omp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)])
[?25l[?1cSTARTTEST
:let a = '.é.' " one char of two bytesb = '.é.' " 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 = '.é.'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][?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
/^substitute
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 75 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:let y = substitute('123', '\zs', 'a', 'g')    | put =y
ENDTEST[?25h[?0c[?25l[?1csubstitute[?25h[?0c[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c/[?25h[?0c^substitute
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('123', '\zs', 'a', 'g')    | put =y
[?25l[?1ca1a2a3a[?25h[?0c[?25l[?1c

/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c:g/^STARTTEST/.,/^ENDTEST/d
:1;/^Results/,$wq! test.out[?25h[?0c[?25l[?1c

:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2 lines, 56 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c

/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c104 fewer lines{ four}ra test
aaaaaaaáxbyteidx[0, 1, 3, 4, -1]
[0, 1, 4, 5, -1]byteidxcomp
[0, 1, 3, 4, -1]
[0, 1, 2, 4, 5, -1]substitute
a1a2a3a[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 166 lines, 730 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test69 = test61; then \
#	  if diff test.out test69.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test69.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test69.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test70.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cSmoke test for MzScheme interface and mzeval() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1398 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mzscheme.vim
[?25l[?1c"test.ok" 6 lines, 94 characters

"test.out" [New File] 6 lines, 94 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test70 = test61; then \
#	  if diff test.out test70.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test70.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test70.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test73.in
[?25h[?8c[?25h[?0c[?25l[?1c"test73.in" 169 lines, 3647 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
:"
:" On windows a stale "Xfind" directory may exist, remove it so that
:" we start from a clean state.
:call delete("Xfind", "rf")
:new
:let cwd=getcwd()
:let test_out = cwd . '/test.out'
:call mkdir('Xfind')
:cd Xfind
:set path=
:find
:exec "w! " . test_out
:close[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for find completion.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 164 lines, 3600 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 delete("Xfind", "rf")
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Do all test in a separate window to avoid E211 when we recursively
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" delete the Xfind directory during cleanup
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This will cause a few errors, do it silently.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" On windows a stale "Xfind" directory may exist, remove it so that
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" we start from a clean state.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xfind", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTESTtest73.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet test_out = cwd . '/test.out'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xfind')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xfind
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/<<PKGBUILDDIR>>/src/vim-athena/testdir/test73.in[?25h[?0c[?25l[?1c:[?25h[?0cset path=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE345: Can't find file "" in path[?25h[?0c[?25l[?1c:[?25h[?0cexec "w! " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
</vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" [New] 0L, 0C written/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-athena/testdir/test73.in                 [?25h[?0c[?25l[?1c:[?25h[?0cset path=.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-athena/testdir/test73.in                 [?25h[?0c[?25l[?1c:[?25h[?0cset path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-athena/testdir/test73.in                 [?25h[?0c[?25l[?1c:[?25h[?0cset path=./**
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind ...[?25l[?1c[?5h[?5l[?25h[?0c
[?25l[?1cE32: No file name[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out" 0L, 0C appended[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [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 delete("Xfind", "rf")
:qa!ENDTEST/<<PKGBUILDDIR>>/src/vim-athena/testdir/test73.in                 [?25h[?0c[?25l[?1c:[?25h[?0c" We shouldn't find any file at this point, test.out must be empty.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('in')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd in
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/in[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('path')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdirtest73.in                                                      [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/file.txt
[?25l[?1c"Xfind/file.txt" [New File]Xfind/file.txt[?25h[?0c[?25l[?1c-- INSERT --Holy Grail[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/file.txt" [New] 1L, 11C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/file.txt
[?25l[?1c"Xfind/in/file.txt" [New File]in/file.txt[?25h[?0c[?25l[?1c-- INSERT --Jimmy Hoffa[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/file.txt" [New] 1L, 12C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/stuff.txt
[?25l[?1c"Xfind/in/stuff.txt" [New File]stuff.txt[?25h[?0c[?25l[?1c-- INSERT --Another Holy Grail[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/stuff.txt" [New] 1L, 19C written   [?25h[?0c[?25l[?1c:[?25h[?0ce Xfind/in/path/file.txt
[?25l[?1c"Xfind/in/path/file.txt" [New File]path/file.txt[?25h[?0c[?25l[?1c-- INSERT --E.T.[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xfind/in/path/file.txt" [New] 1L, 5C written   [?25h[?0c[?25l[?1c:[?25h[?0cset path=Xfind/**
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Rerun the previous three find completions, using fullpath in 'path'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "set path=" . cwd . "/Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Same steps again, using relative and fullpath items that point to the same
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" recursive location.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This is to test that there are no duplicates in the completion list.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "set path+=Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"Xfind/file.txt" 1L, 11CHoly Grailfile.txt        [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c...[?25l[?1cpath/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1cin/file.txt[?25h[?0c
[?25l[?1c"Xfind/in/file.txt" 1L, 12CJimmy Hoffafile.txt     [?25h[?0c[?25l[?1c:[?25h[?0c" Test find completion for directory of current buffer, which at this point
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" is Xfind/in/file.txt.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset path=.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind st...[?25l[?1cuff.txt[?25h[?0c
[?25l[?1c"Xfind/in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" .  test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 19C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test find completion for empty path item ",," which is the current directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xfind
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfindin/stuff.txt      /<<PKGBUILDDIR>>/src/vim-athena/testdir/test73.in[?25h[?0c[?25l[?1c:[?25h[?0cset path=,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind f...[?25l[?1cile.txt[?25h[?0c...[?25l[?1c[?25h[?0c
[?25l[?1c"file.txt" 1L, 11CHoly Grailfile.txt    [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 11C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test shortening of
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    foo/x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    foo/y/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" When current directory is above foo/ they should be shortened to (in order
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" of appearance):
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    y/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('foo')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd foo
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/file.txt[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('x')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('y')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd x
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/x[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('bar')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo[?25h[?0c[?25l[?1c:[?25h[?0ccd y
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/y[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('bar')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfindfile.txt                                                            [?25h[?0c[?25l[?1c:[?25h[?0c" We should now be in the Xfind directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce foo/x/bar/voyager.txt
[?25l[?1c"foo/x/bar/voyager.txt" [New File]oo/x/bar/voyager.txt[?25h[?0c[?25l[?1c-- INSERT --Voyager 1[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"foo/x/bar/voyager.txt" [New] 1L, 10C written   [?25h[?0c[?25l[?1c:[?25h[?0ce foo/y/bar/voyager.txt
[?25l[?1c"foo/y/bar/voyager.txt" [New File]y[?25h[?0c[?25l[?1c-- INSERT --Voyager 2[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"foo/y/bar/voyager.txt" [New] 1L, 10C written   [?25h[?0c[?25l[?1c:[?25h[?0cexec "set path=" . cwd . "/Xfind/**"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1cx/bar/voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"foo/x/bar/voyager.txt" 1L, 10C1x[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1cx/bar/voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cy[?25h[?0c
[?25l[?1c"foo/y/bar/voyager.txt" 1L, 10C2y[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" When current directory is .../foo/y/bar they should be shortened to (in
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" order of appearance):
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    ./voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    x/bar/voyager.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd foo
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/fooy/bar/voyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0ccd y
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/ybar/voyager.txt  [?25h[?0c[?25l[?1c:[?25h[?0ccd bar
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/y/barvoyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"voyager.txt" 1L, 10C[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cx/bar/voyager.txt[?25h[?0c
[?25l[?1c<d/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/Xfind/foo/x/bar/voyager.txt"
<Zm5mB/vim-8.0.0197/src/vim-athena/testdir/Xfind/foo/x/bar/voyager.txt" 1L, 10C1<ild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/Xfind/foo/x/bar/voyager.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Check the opposite too:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/y[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foox/bar/voyager.txt                                                              [?25h[?0c[?25l[?1c:[?25h[?0ccd x
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/xbar/voyager.txt  [?25h[?0c[?25l[?1c:[?25h[?0ccd bar
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/foo/x/barvoyager.txt    [?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c
[?25l[?1c"voyager.txt" 1L, 10C[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0cfind voyager...[?25l[?1c./voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1cy/bar/voyager.txt[?25h[?0c
[?25l[?1c<d/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/Xfind/foo/y/bar/voyager.txt"
<Zm5mB/vim-8.0.0197/src/vim-athena/testdir/Xfind/foo/y/bar/voyager.txt" 1L, 10C2<ild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/Xfind/foo/y/bar/voyager.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >> " . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 10C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Check for correct handling of shorten_fname()'s behavior on windows
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd . "/Xfind/in"
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfind/in[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1c./file.txt[?5h[?5l[?25h[?0c
[?25l[?1c"file.txt" 1L, 12CJimmy Hoffafile.txt                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Test for relative to current buffer 'path' item
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd . "/Xfind/"
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xfindin/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cset path=./path
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open the file where Jimmy Hoffa is found
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce in/file.txt
[?25l[?1c"in/file.txt" 1L, 12C[?25h[?0c[?25l[?1c:[?25h[?0c" Find the file containing 'E.T.' in the Xfind/in/path directory
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind file...[?25l[?1ctxt[?25h[?0c
[?25l[?1c"in/path/file.txt" 1L, 5CE.T.path/file.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out" 1L, 5C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test that completion works when path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset path=.,,
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open Jimmy Hoffa file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce in/file.txt
[?25l[?1c"in/file.txt" 1L, 12CJimmy Hoffafile.txt     [?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 12C appended[?25h[?0c[?25l[?1c:[?25h[?0c" Search for the file containing Holy Grail in same directory as in/path.txt
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfind stu...[?25l[?1cff.txt[?25h[?0c
[?25l[?1c"in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt[?25h[?0c[?25l[?1c:[?25h[?0cexec "w >>" . test_out
[?25l[?1c"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test.out"
<uild/vim-XZm5mB/vim-8.0.0197/src/vim-athena/testdir/test.out" 1L, 19C appended[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c: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 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 delete("Xfind", "rf")
:qa!ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xfind", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test73 = test61; then \
#	  if diff test.out test73.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test73.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test73.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test75.in
[?25h[?8c[?25h[?0c[?25l[?1c"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<C-V> is<F4>foo
:vnoremap <script> <buffer> <expr> <silent> bar isbar
:call append('$', maparg('foo<C-V>'))
:call append('$', string(maparg('foo<C-V>', '', 0, 1)))
:call append('$', string(maparg('bar', '', 0, 1)))
:map <buffer> <nowait> foo bar
:call append('$', string(maparg('foo', '', 0, 1)))
:"
:map abc x<char-114>x
:call append('$', maparg('abc'))
:map abc y<S-char-114>y
:call append('$', maparg('abc'))
:"
Go^[:"[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for maparg().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 34 lines, 919 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" Outside of the range, minimum
:inoremap <Char-0x1040> a
:execute "normal a\u1040\<Esc>"
:" Inside of the range, minimum
:inoremap <Char-0x103f> b
:execute "normal a\u103f\<Esc>"
:" Inside of the range, maximum
:inoremap <Char-0xf03f> c
:execute "normal a\uf03f\<Esc>"
:" Outside of the range, maximum
:inoremap <Char-0xf040> d
:execute "normal a\uf040\<Esc>"
:"
:/^eof/+1,$w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf8
[?25l[?1c:map abc x<char-114>x
:call append('$', maparg('abc'))
:map abc y<S-char-114>y
:call append('$', maparg('abc'))
:"
Go^[:"
:" Outside of the range, minimum
:inoremap <Char-0x1040> a
:execute "normal a\u1040\<Esc>"
:" Inside of the range, minimum
:inoremap <Char-0x103f> b
:execute "normal a\u103f\<Esc>"
:" Inside of the range, maximum
:inoremap <Char-0xf03f> c
:execute "normal a\uf03f\<Esc>"
:" Outside of the range, maximum
:inoremap <Char-0xf040> d
:execute "normal a\uf040\<Esc>"
:"
:/^eof/+1,$w! test.out
:qa!
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0c" Test maparg() with a string result
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap foo<C-V> is<F4>foo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap <script> <buffer> <expr> <silent> bar isbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('foo<C-V>'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('foo<C-V>', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('bar', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap <buffer> <nowait> foo bar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', string(maparg('foo', '', 0, 1)))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap abc x<char-114>x
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('abc'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap abc y<S-char-114>y
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', maparg('abc'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1ceof
is<F4>foo
{'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'nowait': 0, 'expr':0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
{'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'nowait': 0, 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
{'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ', 'nowait': 1, 'expr': 0, 'sid': 0, 'rhs': 'bar', 'buffer': 1}
xrx
yRy[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Outside of the range, minimum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0x1040> a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\u1040\<Esc>"
[?25l[?1ca[?25h[?0c[?25l[?1c:[?25h[?0c" Inside of the range, minimum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0x103f> b
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\u103f\<Esc>"
[?25l[?1cb[?25h[?0c[?25l[?1c:[?25h[?0c" Inside of the range, maximum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0xf03f> c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\uf03f\<Esc>"
[?25l[?1cc[?25h[?0c[?25l[?1c:[?25h[?0c" Outside of the range, maximum
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cinoremap <Char-0xf040> d
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexecute "normal a\uf040\<Esc>"
[?25l[?1cd[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^eof/+1,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 7 lines, 384 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test75 = test61; then \
#	  if diff test.out test75.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test75.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test75.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test77.failed test.ok test.out X* viminfo
cp test77.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test77.in
[?25h[?8c[?25h[?0c[?25l[?1c"test77.in" 30 lines, 719 charactersInserts 2 million lines with consecutive integers starting from 1
(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
and writes its cksum to test.out.

We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
up the lines the checksum would differ.

cksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST
:so small.vim
:if !executable("cksum")
: e! test.ok
: w! test.out
: qa!
:endif
:set fileformat=unix undolevels=-1
ggdG
:let i = 1
:while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhileggdd
:w! Xtest[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cInserts 2 million lines with consecutive integers starting from 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 288 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:r !cksum Xtest
:s/\s/ /g
:set fileformat&
:.w! test.out
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !executable("cksum")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1ccksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST[?25h[?0c[?25l[?1c
:[?25h[?0cset fileformat=unix undolevels=-1
[?25l[?1c[?25h[?0c[?25l[?1cInserts 2 million lines with consecutive integers starting from 1
(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
and writes its cksum to test.out.

We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
up the lines the checksum would differ.[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhil

e[?25l[?1c12345678910111213141516171819202122[?25h[?0c[?25l[?1c
23[?25h[?0c
[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 2000000 lines, 14888896 characters written[?25h[?0c[?25l[?1c:[?25h[?0cr !cksum Xtest
[?25l[?1c[?25h[?0c[?25l[?1c1
2
3678979763 14888896 Xtest
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22[?25h[?0c[?25l[?1c:[?25h[?0cs/\s/ /g
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 26 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test77 = test61; then \
#	  if diff test.out test77.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test77.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test77.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test79.failed test.ok test.out X* viminfo
cp test79.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test79.in
[?25h[?8c[?25h[?0c[?25l[?1c"test79.in" 255 lines, 3381 charactersTest for *sub-replace-special* and *sub-replace-expression* on :substitute.
Test for submatch() on :substitue.
Test for *:s%* on :substitute.
Test for :s replacing \n with  line break.

STARTTEST
:so small.vim
ENDTEST

Results of test71:

STARTTEST
:set magic
:set cpo&
/^TEST/
j:s/A/&&/
j:s/B/\&/
j:s/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
j:s/D/d/
j:s/E/~/
j:s/F/\~/
j:s/G/\ugg/
j:s/H/\Uh\Eh/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for *sub-replace-special* and *sub-replace-expression* on :substitute.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 347 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTj:s/L/^V^M/
j:s/M/\r/
j:s/N/\^V^M/
j:s/O/\n/
j:s/P/\b/
j:s/Q/\t/
j:s/R/\\/
j:s/S/\c/
j:s/T/^V^@/
j:s/U/\L\uuUu\l\EU/
j:s/V/\U\lVvV\u\Ev/
ENDTEST

TEST_1:
A
B
C123456789
D
E
F
G
H
I[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/&&/
[?25l[?1cA
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\&/
[?25l[?1c&[?25h[?0c
[?25l[?1c:[?25h[?0cs/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l[?1c987654321
[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/d/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/E/~/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/G/\ugg/
[?25l[?1cg
[?25h[?0c
[?25l[?1c:[?25h[?0cs/H/\Uh\Eh/
[?25l[?1ch
[?25h[?0c
[?25l[?1c:[?25h[?0cs/I/\lII/
[?25l[?1ciI
[?25h[?0c[?25l[?1c
J[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\LJ\EJ/
[?25l[?1cjJ
[?25h[?0c[?25l[?1c
K[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\Uk\ek/
[?25l[?1ck
[?25h[?0c[?25l[?1c
lLl[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/^^M/
[?25l[?1c
l[?25h[?0c[?25l[?1c
mMm
[?25h[?0c[?25l[?1c
:[?25h[?0cs/M/\r/
[?25l[?1c
m[?25h[?0c[?25l[?1c
nNn
[?25h[?0c[?25l[?1c
:[?25h[?0cs/N/\^^M/
[?25l[?1c^Mn
[?25h[?0c[?25l[?1c
oOo[?25h[?0c[?25l[?1c
:[?25h[?0cs/O/\n/
[?25l[?1c^@o
[?25h[?0c[?25l[?1c
pPp[?25h[?0c[?25l[?1c
:[?25h[?0cs/P/\b/
[?25l[?1c^Hp
[?25h[?0c[?25l[?1c
qQq[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q/\t/
[?25l[?1c       q
[?25h[?0c[?25l[?1c
rRr[?25h[?0c[?25l[?1c
:[?25h[?0cs/R/\\/
[?25l[?1c\
[?25h[?0c[?25l[?1c
sSs[?25h[?0c[?25l[?1c
:[?25h[?0cs/S/\c/
[?25l[?1cc
[?25h[?0c[?25l[?1c
tTt[?25h[?0c[?25l[?1c
:[?25h[?0cs/T/^^@/
[?25l[?1c^@t
[?25h[?0c[?25l[?1c
U[?25h[?0c[?25l[?1c
:[?25h[?0cs/U/\L\uuUu\l\EU/
[?25l[?1cuuU
[?25h[?0c[?25l[?1c
V[?25h[?0c[?25l[?1c
:[?25h[?0cs/V/\U\lVvV\u\Ev/
[?25l[?1cvVVv
[?25h[?0c[?25l[?1c/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set nomagic
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 351 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/L/^V^M/
j:s/M/\r/
j:s/N/\^V^M/
j:s/O/\n/
j:s/P/\b/
j:s/Q/\t/
j:s/R/\\/
j:s/S/\c/
j:s/T/^V^@/
j:s/U/\L\uuUu\l\EU/
j:s/V/\U\lVvV\u\Ev/
ENDTEST

TEST_2:
A
B
C123456789
D
E
F
G
H
I[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/&&/
[?25l[?1c&&
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\&/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
[?25l[?1c987654321
[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/d/
[?25l[?1cd[?25h[?0c
[?25l[?1c:[?25h[?0cs/E/~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\~/
[?25l[?1c~[?25h[?0c
[?25l[?1c:[?25h[?0cs/G/\ugg/
[?25l[?1cg
[?25h[?0c
[?25l[?1c:[?25h[?0cs/H/\Uh\Eh/
[?25l[?1ch
[?25h[?0c
[?25l[?1c:[?25h[?0cs/I/\lII/
[?25l[?1ciI
[?25h[?0c[?25l[?1c
J[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\LJ\EJ/
[?25l[?1cjJ
[?25h[?0c[?25l[?1c
K[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\Uk\ek/
[?25l[?1ck
[?25h[?0c[?25l[?1c
lLl[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/^^M/
[?25l[?1c
l[?25h[?0c[?25l[?1c
mMm
[?25h[?0c[?25l[?1c
:[?25h[?0cs/M/\r/
[?25l[?1c
m[?25h[?0c[?25l[?1c
nNn
[?25h[?0c[?25l[?1c
:[?25h[?0cs/N/\^^M/
[?25l[?1c^Mn
[?25h[?0c[?25l[?1c
oOo[?25h[?0c[?25l[?1c
:[?25h[?0cs/O/\n/
[?25l[?1c^@o
[?25h[?0c[?25l[?1c
pPp[?25h[?0c[?25l[?1c
:[?25h[?0cs/P/\b/
[?25l[?1c^Hp
[?25h[?0c[?25l[?1c
qQq[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q/\t/
[?25l[?1c       q
[?25h[?0c[?25l[?1c
rRr[?25h[?0c[?25l[?1c
:[?25h[?0cs/R/\\/
[?25l[?1c\
[?25h[?0c[?25l[?1c
sSs[?25h[?0c[?25l[?1c
:[?25h[?0cs/S/\c/
[?25l[?1cc
[?25h[?0c[?25l[?1c
tTt[?25h[?0c[?25l[?1c
:[?25h[?0cs/T/^^@/
[?25l[?1c^@t
[?25h[?0c[?25l[?1c
U[?25h[?0c[?25l[?1c
:[?25h[?0cs/U/\L\uuUu\l\EU/
[?25l[?1cuuU
[?25h[?0c[?25l[?1c
V[?25h[?0c[?25l[?1c
:[?25h[?0cs/V/\U\lVvV\u\Ev/
[?25l[?1cvVVv
[?25h[?0c[?25l[?1c/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 203 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/B/\='\\'/
j:s/C/\='^V^M'/
j:s/D/\='\^V^M'/
j:s/E/\='\\^V^M'/
j:s/F/\='\r'/
j:s/G/\='^V^@'/
j:s/H/\='\^V^@'/
j:s/I/\='\\^V^@'/
j:s/J/\='\n'/
j:s/K/\="\r"/
j:s/L/\="\n"/
ENDTEST

TEST_3:
aAa
bBb
cCc
dDd
eEe
fFf
gGg
hHh
iIi[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/\='\'/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\='\\'/
[?25l[?1c\\b
[?25h[?0c
[?25l[?1c:[?25h[?0cs/C/\='^^M'/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/\='\^^M'/
[?25l[?1c\d[?25h[?0c
[?25l[?1c


:[?25h[?0cs/E/\='\\^^M'/
[?25l[?1c\\
efFf[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\='\r'/
[?25l[?1c\rf
[?25h[?0c[?25l[?1c
gGg[?25h[?0c[?25l[?1c
:[?25h[?0cs/G/\='^^@'/
[?25l[?1c
g[?25h[?0c[?25l[?1c
hHh
[?25h[?0c[?25l[?1c
:[?25h[?0cs/H/\='\^^@'/
[?25l[?1c
\h[?25h[?0c[?25l[?1c
iIi
[?25h[?0c[?25l[?1c
:[?25h[?0cs/I/\='\\^^@'/
[?25l[?1c
\\
i[?25h[?0c[?25l[?1c
jJj
[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\='\n'/
[?25l[?1c\nj
[?25h[?0c[?25l[?1c
kKk[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\="\r"/
[?25l[?1c
k[?25h[?0c[?25l[?1c
lLl
[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/\="\n"/
[?25l[?1c
l[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 15 lines, 611 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTj:s/B/\=substitute(submatch(0), '.', '\\', '')/
j:s/C/\=substitute(submatch(0), '.', '^V^M', '')/
j:s/D/\=substitute(submatch(0), '.', '\^V^M', '')/
j:s/E/\=substitute(submatch(0), '.', '\\^V^M', '')/
j:s/F/\=substitute(submatch(0), '.', '\r', '')/
j:s/G/\=substitute(submatch(0), '.', '^V^@', '')/
j:s/H/\=substitute(submatch(0), '.', '\^V^@', '')/
j:s/I/\=substitute(submatch(0), '.', '\\^V^@', '')/
j:s/J/\=substitute(submatch(0), '.', '\n', '')/
j:s/K/\=substitute(submatch(0), '.', "\r", '')/
j:s/L/\=substitute(submatch(0), '.', "\n", '')/
ENDTEST

TEST_4:
aAa
bBb
cCc
dDd
eEe
fFf
gGg
hHh
iIi[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/\=substitute(submatch(0), '.', '\', '')/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/\=substitute(submatch(0), '.', '\\', '')/
[?25l[?1c\
[?25h[?0c
[?25l[?1c:[?25h[?0cs/C/\=substitute(submatch(0), '.', '^^M', '')/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/\=substitute(submatch(0), '.', '\^^M', '')/
[?25l[?1cd[?25h[?0c
[?25l[?1c


:[?25h[?0cs/E/\=substitute(submatch(0), '.', '\\^^M', '')/
[?25l[?1c\efFf[?25h[?0c
[?25l[?1c:[?25h[?0cs/F/\=substitute(submatch(0), '.', '\r', '')/
[?25l[?1c
f[?25h[?0c[?25l[?1c
gGg
[?25h[?0c[?25l[?1c
:[?25h[?0cs/G/\=substitute(submatch(0), '.', '^^@', '')/
[?25l[?1c
g[?25h[?0c[?25l[?1c
hHh
[?25h[?0c[?25l[?1c
:[?25h[?0cs/H/\=substitute(submatch(0), '.', '\^^@', '')/
[?25l[?1c
h[?25h[?0c[?25l[?1c
iIi
[?25h[?0c[?25l[?1c
:[?25h[?0cs/I/\=substitute(submatch(0), '.', '\\^^@', '')/
[?25l[?1c
\i[?25h[?0c[?25l[?1c
jJj
[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\=substitute(submatch(0), '.', '\n', '')/
[?25l[?1c
j[?25h[?0c[?25l[?1c
kKk
[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\=substitute(submatch(0), '.', "\r", '')/
[?25l[?1c
k[?25h[?0c[?25l[?1c
lLl
[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/\=substitute(submatch(0), '.', "\n", '')/
[?25l[?1c
l[?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5 lines, 445 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set cpo&
/^TEST/
j:s/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)/
j:s/B\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1c
TEST_5:[?25h[?0c[?25l[?1c
A123456789
[?25h[?0c[?25l[?1c
:[?25h[?0cs/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) .

submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(

3) . submatch(2) . submatch(1)/
[?25l[?1ci\
i987654321[?25h[?0c[?25l[?1c
B123456789
[?25h[?0c[?25l[?1c
:[?25h[?0cs/B\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=string([submatch(0, 1), sub

match(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), sub

match(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])/
[?25l[?1ci
j[['B123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?25h[?0c[?25l[?1c
/^STARTTEST
STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 80 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST/^TEST/
:set cpo+=/
j:s/A/a/
j:s/B/%/
:set cpo-=/
j:s/C/c/
j:s/D/%/
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST/
[?25l[?1cTEST_6:
A
B[?25h[?0c[?25l[?1c


:[?25h[?0cset cpo+=/
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cs/A/a/
[?25l[?1ca[?25h[?0c
[?25l[?1c:[?25h[?0cs/B/%/
[?25l[?1ca[?25h[?0c[?25l[?1c:[?25h[?0cset cpo-=/
[?25l[?1c[?25h[?0c[?25l[?1cC
D[?25h[?0c[?25l[?1c


:[?25h[?0cs/C/c/
[?25l[?1cc[?25h[?0c
[?25l[?1c:[?25h[?0cs/D/%/
[?25l[?1c%[?25h[?0c[?25l[?1c/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:set magic&
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 11 lines, 303 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST:set cpo&
/^TEST_7/
j:s/A./\=submatch(0)/
j:s/B./\=submatch(0)/
j:s/C./\=strtrans(string(submatch(0, 1)))/
j:s/D.\nD/\=strtrans(string(submatch(0, 1)))/
j:s/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
/^Q$
:s/Q[^\n]Q/\=submatch(0)."foobar"/
:" Avoid :s error breaks dotest map on Windows.
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^TEST_7/
[?25l[?1c
TEST_7:[?25h[?0c[?25l[?1c
A^MA
[?25h[?0c[?25l[?1c
:[?25h[?0cs/A./\=submatch(0)/
[?25l[?1c
A[?25h[?0c[?25l[?1c
B^@B
[?25h[?0c[?25l[?1c
:[?25h[?0cs/B./\=submatch(0)/
[?25l[?1c
B[?25h[?0c[?25l[?1c
C^@C
[?25h[?0c[?25l[?1c
:[?25h[?0cs/C./\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['C^@']C
[?25h[?0c[?25l[?1c
D^@[?25h[?0c[?25l[?1c
:[?25h[?0cs/D.\nD/\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['D^@', 'D']
[?25h[?0c[?25l[?1c
E^@[?25h[?0c[?25l[?1c
:[?25h[?0cs/E\_.\{-}E/\=strtrans(string(submatch(0, 1)))/
[?25l[?1c['E^@', '^@', '^@', '^@', '^@E']
[?25h[?0c[?25l[?1c/[?25h[?0c^Q$
[?25l[?1c
Q[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q[^\n]Q/\=submatch(0)."foobar"/
[?25l[?1cE486: Pattern not found: Q[^\n]Q[?25h[?0c[?25l[?1c:[?25h[?0c" Avoid :s error breaks dotest map on Windows.
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
Q

STARTTEST[?25h[?0c[?25l[?1c
:function! TitleString()
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 177 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTESTlet check = 'foo' =~ 'bar'
  return ""
endfunction
:set titlestring=%{TitleString()}
:/^test_one/s/.*/\="foo\nbar"/
:/^test_two/s/.*/\="foo\nbar"/c
y
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cfunction! TitleString()
[?25l[?1c
:  [?25h[?0c  let check = 'foo' =~ 'bar'

[?25l[?1c:  [?25h[?0c  return ""

[?25l[?1c:  [?25h[?0cendfunction
[?25l[?1cTEST_7:
A[?25h[?0c[?25l[?1c
:[?25h[?0cset titlestring=%{TitleString()}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^test_one/s/.*/\="foo\nbar"/
[?25l[?1cfoo
bar[?25h[?0c[?25l[?1c
:[?25h[?0c/^test_two/s/.*/\="foo\nbar"/c
[?25l[?1c
test_tworeplace with \="foo\nbar" (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c
foobar
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
/^STARTTEST

STARTTEST[?25h[?0c[?25l[?1c
:g/^STARTTEST/.,/^ENDTEST/d
[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 72 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/ENDTEST[?25h[?0c[?25l[?1c
:1;/^Results/,$wq! test.out[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d
[?25l[?1c136 fewer linesaa
c
%TEST_7:AABB['C^@']C['D^@', 'D']
['E^@', '^@', '^@', '^@', '^@E']
Q
Qfoo
bar
foobar[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 134 lines, 574 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test79 = test61; then \
#	  if diff test.out test79.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test79.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test79.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test80.failed test.ok test.out X* viminfo
cp test80.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test80.in
[?25h[?8c[?25h[?0c[?25l[?1c"test80.in" 201 lines, 6298 charactersTest for *sub-replace-special* and *sub-replace-expression* on substitute().
Test for submatch() on substitute().
Test for *:s%* on :substitute.

STARTTEST
:so small.vim
ENDTEST

TEST_1:

STARTTEST
:set magic
:set cpo&
:$put =\"\n\nTEST_1:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
:$put =substitute('D', 'D', 'd', '')
:$put =substitute('E', 'E', '~', '')
:$put =substitute('F', 'F', '\~', '')
:$put =substitute('G', 'G', '\ugg', '')
:$put =substitute('H', 'H', '\Uh\Eh', '')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for *sub-replace-special* and *sub-replace-expression* on substitute().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1142 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =substitute('pPp', 'P', '\b', '')
:$put =substitute('qQq', 'Q', '\t', '')
:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('xXx', 'X', \"\r\", '')
:$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
:$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
/^TEST_2
ENDTEST

TEST_2:

STARTTEST
:set nomagic
:set cpo&
:$put =\"\n\nTEST_2:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_1:\"
[?25l[?1c3 more lines:set cpo&
:$put =\"\n\nTEST_10:\"
:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST

TEST_11:

STARTTEST
:/^Results/,$wq! test.out
ENDTEST

Results of test72:


TEST_1:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', '&&', '')
[?25l[?1c
AA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '\&', '')
[?25l[?1c
&[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l[?1c:let y = substitute('123', '\zs.', 'a', 'g')| $put =y.\zs\ze', 'a', 'g') .', 'a', 'g').\ze1\|\ze', 'a', 'g')zs\|[23]', 'a', 'g')
/^TEST_11ENDTESTTEST_11:STARTTEST
:/^Results/,$wq! test.out
ENDTESTResults of test72:TEST_1:
AA&C123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', 'd', '')
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('E', 'E', '~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('F', 'F', '\~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('G', 'G', '\ugg', '')
[?25l[?1c
Gg[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l[?1c
Hh[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('I', 'I', '\lII', '')
[?25l[?1c
iI[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l[?1c
jJ[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('K', 'K', '\Uk\ek', '')
[?25l[?1c
Kk[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('lLl', 'L', '^^M', '')
[?25l[?1c
l^Ml[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('mMm', 'M', '\r', '')
[?25l[?1c
m^Mm[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('nNn', 'N', '\^^M', '')
[?25l[?1c
n^Mn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('oOo', 'O', '\n', '')
[?25l[?1co
o[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('pPp', 'P', '\b', '')
[?25l[?1c
p^Hp[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('qQq', 'Q', '\t', '')
[?25l[?1c
qq[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('rRr', 'R', '\\', '')
[?25l[?1c
r\r[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('sSs', 'S', '\c', '')
[?25l[?1c
scs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('uUu', 'U', \"\n\", '')
[?25l[?1cu
u[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('vVv', 'V', \"\b\", '')
[?25l[?1c
v^Hv[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('wWw', 'W', \"\\\", '')
[?25l[?1c
w\w[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('xXx', 'X', \"\r\", '')
[?25l[?1c
x^Mx[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
[?25l[?1c
YyyY[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
[?25l[?1c
zZZz[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_2
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('xXx', 'X', \"\r\", '')
:$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
:$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
/^TEST_2
ENDTEST

TEST_2:

STARTTEST
:set nomagic
:set cpo&
:$put =\"\n\nTEST_2:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
:$put =substitute('D', 'D', 'd', '')
:$put =substitute('E', 'E', '~', '')
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 29 lines, 1144 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =substitute('pPp', 'P', '\b', '')
:$put =substitute('qQq', 'Q', '\t', '')
:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('tTt', 'T', \"\r\", '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
:$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
/^TEST_3
ENDTEST

TEST_3:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_3:\"
:let y = substitute('aAa', 'A', '\="\\"', '')| $put =y
:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset nomagic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_2:\"
[?25l[?1c3 more linesHh
iI
jJ
Kk
l^Ml
m^Mm
n^Mn
o
o
p^Hp
qq
r\r
scs
u
u
v^Hv
w\w
x^Mx
YyyY
zZZz


TEST_2:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', '&&', '')
[?25l[?1c
AA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '\&', '')
[?25l[?1c
&[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\0\9\8\7\6\5\4\3\2\1', '')
[?25l[?1cKk
l^Ml
mm
nn
op^Hp
q       q
r\rscs
uv^Hv
w\wx^Mx
YyyY
zZZzTEST_2:
AA&C123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', 'd', '')
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('E', 'E', '~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('F', 'F', '\~', '')
[?25l[?1c
~[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('G', 'G', '\ugg', '')
[?25l[?1c
Gg[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('H', 'H', '\Uh\Eh', '')
[?25l[?1c
Hh[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('I', 'I', '\lII', '')
[?25l[?1c
iI[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('J', 'J', '\LJ\EJ', '')
[?25l[?1c
jJ[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('K', 'K', '\Uk\ek', '')
[?25l[?1c
Kk[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('lLl', 'L', '^^M', '')
[?25l[?1c
l^Ml[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('mMm', 'M', '\r', '')
[?25l[?1c
m^Mm[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('nNn', 'N', '\^^M', '')
[?25l[?1c
n^Mn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('oOo', 'O', '\n', '')
[?25l[?1co
o[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('pPp', 'P', '\b', '')
[?25l[?1c
p^Hp[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('qQq', 'Q', '\t', '')
[?25l[?1c
qq[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('rRr', 'R', '\\', '')
[?25l[?1c
r\r[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('sSs', 'S', '\c', '')
[?25l[?1c
scs[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('tTt', 'T', \"\r\", '')
[?25l[?1c
t^Mt[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('uUu', 'U', \"\n\", '')
[?25l[?1cu
u[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('vVv', 'V', \"\b\", '')
[?25l[?1c
v^Hv[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('wWw', 'W', \"\\\", '')
[?25l[?1c
w\w[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
[?25l[?1c
XxxX[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
[?25l[?1c
yYYy[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_3
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('tTt', 'T', \"\r\", '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
:$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
/^TEST_3
ENDTEST

TEST_3:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_3:\"
:let y = substitute('aAa', 'A', '\="\\"', '')| $put =y
:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y
:let y = substitute('eEe', 'E', '\="\\\\^V^M"', '')     | $put =y
:let y = substitute('fFf', 'F', '\="\\r"', '')| $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 642 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('jJj', 'J', '\="\\n"', '')| $put =y
:let y = substitute('kKk', 'K', '\="\r"', '')| $put =y
:let y = substitute('lLl', 'L', '\="\n"', '')| $put =y
/^TEST_4
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_3:\"
[?25l[?1c3 more linesHh
iI
jJ
Kk
l^Ml
m^Mm
n^Mn
o
o
p^Hp
qq
r\r
scs
t^Mt
u
u
v^Hv
w\w
XxxX
yYYy


TEST_3:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('aAa', 'A', '\="\\"', '')           | $put =y
[?25l[?1c
a\a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('bBb', 'B', '\="\\\\"', '')         | $put =y
[?25l[?1c
b\\b[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('cCc', 'C', '\="^^M"', '')         | $put =y
[?25l[?1c
c^Mc[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('dDd', 'D', '\="\\^^M"', '')       | $put =y
[?25l[?1c
d\^Md[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('eEe', 'E', '\="\\\\^^M"', '')     | $put =y
[?25l[?1c
e\\^Me[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('fFf', 'F', '\="\\r"', '')          | $put =y
[?25l[?1c
f\rf[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('jJj', 'J', '\="\\n"', '')          | $put =y
[?25l[?1c
j\nj[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('kKk', 'K', '\="\r"', '')           | $put =y
[?25l[?1c
k^Mk[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('lLl', 'L', '\="\n"', '')           | $put =y
[?25l[?1cl
l[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_4
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('bBb', 'B', '\="\\\\"', '')| $put =y
:let y = substitute('cCc', 'C', '\="^V^M"', '')| $put =y
:let y = substitute('dDd', 'D', '\="\\^V^M"', '')| $put =y
:let y = substitute('eEe', 'E', '\="\\\\^V^M"', '')     | $put =y
:let y = substitute('fFf', 'F', '\="\\r"', '')| $put =y
:let y = substitute('jJj', 'J', '\="\\n"', '')| $put =y
:let y = substitute('kKk', 'K', '\="\r"', '')| $put =y
:let y = substitute('lLl', 'L', '\="\n"', '')| $put =y
/^TEST_4
ENDTEST

TEST_4:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_4:\"
:let y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')| $put =y
:let y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '')     | $put =y
:let y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^V^M", "")', '')     | $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 13 lines, 912 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^V^M", "")',
'')   | $put =y
:let y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^V^M", "")', '') | $put =y
:let y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', '')| $put =y
:let y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '')| $put =y
:let y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')| $put =y
:let y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')| $put =y
/^TEST_5
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_4:\"
[?25l[?1c3 more linest^Mt
u
u
v^Hv
w\w
XxxX
yYYy


TEST_3:
a\a
b\\b
c^Mc
d\^Md
e\\^Me
f\rf
j\nj
k^Mk
l
l


TEST_4:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')

      | $put =y
[?25l[?1cu

v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '

')     | $put =y
[?25l[?1cu
v^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^^M", "")', '')

    | $put =y
[?25l[?1cv^Hv
w\wXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^^M", "")', '

')   | $put =y
[?25l[?1cw\w
XxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^^M", "")',

'') | $put =y
[?25l[?1cXxxX
yYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', ''

)      | $put =y
[?25l[?1cyYYyTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mf[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', ''

)      | $put =y
[?25l[?1cTEST_3:
a\a
b\\bc^Mc
d\^Md
e\\^Me
f\rfj\njk^Mk
llTEST_4:
a\a
b\bc^Mc
d^Md
e\^Me
ff
jj[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')

      | $put =y
[?25l[?1cTEST_3:
a\ab\\b
c^Mc
d\^Md
e\\^Me
f\rfj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')

      | $put =y
[?25l[?1cb\\b
c^Mc
d\^Md
e\\^Me
f\rfj\njk^Mk
llTEST_4:
a\a
b\bc^Mc
d^Md
e\^Me
ff
jjk^Mk
l
l[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_5
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '')| $put =y
:let y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')| $put =y
:let y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')| $put =y
/^TEST_5
ENDTEST

TEST_5:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])', '')
/^TEST_6
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 543 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTENDTEST[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_5:\"
[?25l[?1c3 more linese\\^Me
f\rf
j\nj
k^Mk
l
l


TEST_4:
a\a
b\b
c^Mc
d^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . subm

atch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
[?25l[?1cf\rf
j\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)

', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), su

bmatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), su

bmatch(1, 1)])', '')
[?25l[?1cj\nj
k^Mk
lTEST_4:
a\ab\b
c^Mc
dd
e\^Me
f^Mfjk^Mk
lTEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']][?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_6
[?25l[?1csearch hit BOTTOM, continuing at TOP:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=string([submatch(0, 1), submatch(9, 1), submatch(8, 1), submatch(7, 1), submatch(6, 1), submatch(5, 1), submatch(4, 1), submatch(3, 1), submatch(2, 1), submatch(1, 1)])', '')
/^TEST_6
ENDTEST

TEST_6:

STARTTEST
:set magic&
:$put =\"\n\nTEST_6:\"
:set cpo+=/
:$put =substitute('A', 'A', 'a', '')
:$put =substitute('B', 'B', '%', '')
:set cpo-=/
:$put =substitute('C', 'C', 'c', '')
:$put =substitute('D', 'D', '%', '')
/^TEST_7
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 216 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1cTEST_7:[?25h[?0c[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_6:\"
[?25l[?1c3 more linesl


TEST_4:
a\a
b\b
c^Mc
d^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0cset cpo+=/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A', 'A', 'a', '')
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '%', '')
[?25l[?1c
%[?25h[?0c[?25l[?1c
:[?25h[?0cset cpo-=/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('C', 'C', 'c', '')
[?25l[?1c
c[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', '%', '')
[?25l[?1c
%[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_7
[?25l[?1csearch hit BOTTOM, continuing at TOP:set magic&
:$put =\"\n\nTEST_6:\"
:set cpo+=/
:$put =substitute('A', 'A', 'a', '')
:$put =substitute('B', 'B', '%', '')
:set cpo-=/
:$put =substitute('C', 'C', 'c', '')
:$put =substitute('D', 'D', '%', '')
/^TEST_7
ENDTEST

TEST_7:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A^V^MA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
:$put =substitute('-bb', '\zeb', 'a', 'g')
:$put =substitute('-bb', '\ze', 'c', 'g')
/^TEST_8
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 9 lines, 313 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_7:\"
[?25l[?1c3 more linesd^Md
e\^Me
f^Mf
j
j
k^Mk
l
l


TEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
a
%
c
%


TEST_7:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =substitute('A^^MA', 'A.', '\=submatch(0)', '')
[?25l[?1c
A^MA[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
[?25l[?1cB
B[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
[?25l[?1c['B
']B[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('-bb', '\zeb', 'a', 'g')
[?25l[?1c
-abab[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('-bb', '\ze', 'c', 'g')
[?25l[?1c
c-cbcbc[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_8
[?25l[?1csearch hit BOTTOM, continuing at TOP:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A^V^MA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=string(submatch(0, 1))', '')
:$put =substitute('-bb', '\zeb', 'a', 'g')
:$put =substitute('-bb', '\ze', 'c', 'g')
/^TEST_8
ENDTEST

TEST_8:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 10 lines, 186 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTyy/^TEST_9:
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_8:\"
[?25l[?1c3 more linesTEST_5:
A123456789987654321
[['A123456789'], ['9'], ['8'], ['7'], ['6'], ['5'], ['4'], ['3'], ['2'], ['1']]


TEST_6:
a
%
c
%


TEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put =',,X'
[?25l[?1c
,,X[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|X\)/\1N/g
[?25l[?1cN,,NX
[?25h[?0c[?25l[?1c:[?25h[?0c$put =',,Y'
[?25l[?1c
,,Y[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|Y\)/\1N/gc
[?25l[?1c,
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cN,,NY
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =',,Z'
[?25l[?1c
,,Z[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|Z\)/\1N/gc
[?25l[?1c,
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cN,,Z
replace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c,NZ
[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_9:
[?25l[?1csearch hit BOTTOM, continuing at TOP:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
yy/^TEST_9:
ENDTEST

TEST_9:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
ENDTEST

TEST_10:
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6 lines, 82 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_9:\"
[?25l[?1c3 more linesa
%
c
%


TEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
N,,NX
N,,NY
N,,NZ


TEST_9:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put ='xxx'
[?25l[?1c
xxx[?25h[?0c[?25l[?1c
:[?25h[?0cs/x/X/gc
[?25l[?1cx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cXx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cXx
replace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1cx[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_10:
[?25l[?1csearch hit BOTTOM, continuing at TOPTEST_9:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
ENDTEST

TEST_10:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_10:\"
:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 584 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset magic&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\n\nTEST_10:\"
[?25l[?1c3 more linesTEST_7:
A^MA
B
B
['B
']B
-abab
c-cbcbc


TEST_8:
N,,NX
N,,NY
N,,NZ


TEST_9:
XXx


TEST_10:
3 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet y = substitute('123', '\zs', 'a', 'g')             | $put =y
[?25l[?1c
a1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\zs.', 'a', 'g')            | $put =y
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '.\zs', 'a', 'g')            | $put =y
[?25l[?1c
1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\ze', 'a', 'g')             | $put =y
[?25l[?1c
a1a2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '\ze.', 'a', 'g')            | $put =y
[?25l[?1c
a1a2a3[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '.\ze', 'a', 'g')            | $put =y
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '1\|\ze', 'a', 'g')          | $put =y
[?25l[?1c
aa2a3a[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
[?25l[?1c
1aaa[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_11
[?25l[?1csearch hit BOTTOM, continuing at TOP:let y = substitute('123', '\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\zs.', 'a', 'g')| $put =y
:let y = substitute('123', '.\zs', 'a', 'g')| $put =y
:let y = substitute('123', '\ze', 'a', 'g')| $put =y
:let y = substitute('123', '\ze.', 'a', 'g')| $put =y
:let y = substitute('123', '.\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\|\ze', 'a', 'g')| $put =y
:let y = substitute('123', '1\zs\|[23]', 'a', 'g')      | $put =y
/^TEST_11
ENDTEST

TEST_11:

STARTTEST
:/^Results/,$wq! test.out
ENDTEST

Results of test72:


TEST_1:
AA
&
search hit BOTTOM, continuing at TOP[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 26 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1c"test.out" [New File] 131 lines, 617 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test80 = test61; then \
#	  if diff test.out test80.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test80.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test80.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test82.failed test.ok test.out X* viminfo
cp test82.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test82.in
[?25h[?8c[?25h[?0c[?25l[?1c"test82.in" 103 lines, 3166 charactersTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
Also test "g~ap".

STARTTEST
:so small.vim
:if !has("multi_byte")
: e! test.ok
: w! test.out
: qa!
:endif
:set enc=utf8
ggdG:
:
:function! Ch(a, op, b, expected)
:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 97 lines, 3055 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:call append(0, printf('%d checks passed', b:passed))
:"
:" test that g~ap changes one paragraph only.
:new
iabcd

defg^[gg0g~ap:let lns = getline(1,3)
:q!
:call append(line('$'), lns)
:"
:wq! test.out
ENDTEST

~                                                                               ~                                                                               [?25h[?0c
[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("multi_byte")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor[?25h[?0c[?25l[?1c


:[?25h[?0cset enc=utf8
[?25l[?1c:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:call append(0, printf('%d checks passed', b:passed))
:"
:" test that g~ap changes one paragraph only.
:new
iabcd

defg^[gg0g~ap:let lns = getline(1,3)
:q!
:call append(line('$'), lns)
:"
:wq! test.out
ENDTEST

~                                                                               ~                                                                               [?25h[?0c[?25l[?1cTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
Also test "g~ap".

STARTTEST
:so small.vim
:if !has("multi_byte")
: e! test.ok
: w! test.out
: qa!
:endif
:set enc=utf8
ggdG:
:
:function! Ch(a, op, b, expected)
:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Ch(a, op, b, expected)
[?25l[?1c
:  [?25h[?0c:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected

[?25l[?1c:    [?25h[?0c:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a

:op, a:b, a:expected))

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    let b:passed += 1

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Chk(a, b, result)
[?25l[?1c
:  [?25h[?0c:  if a:result == 0

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 0)

[?25l[?1c:    [?25h[?0c:  elseif a:result > 0

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 1)

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 0)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 1)

[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 0)

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Check(a, b, result)
[?25l[?1c
:  [?25h[?0c:  call Chk(a:a, a:b, a:result)

[?25l[?1c:  [?25h[?0c:  call Chk(a:b, a:a, -a:result)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! LT(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, -1)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! GT(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, 1)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! EQ(a, b)
[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, 0)

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:passed=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('', '')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('', 'a')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('abc', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('Abc', 'abC')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('ab', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('AB', 'abc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('ab', 'aBc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xb9\xd0\xa6\

xd0\xa3\xd0\xba\xd0\x95\xd0\xbd')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xaf\xd1\x86\

xd1\x83\xd0\xba\xd0\xb5\xd0\xbd')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa', 'k')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xe2\x84\xaa', 'kkkkkk')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\x

aakk\xe2\x84\xa6')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('Abc\x80', 'AbC\x80')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('Abc\x80', 'AbC\x81')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('Abc', 'AbC\x80')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('abc\x80DEF', 'abc\x80def')  " case folding stops at the first bad cha

racter
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xc3XYZ', '\xc3xyz')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xef\xbc\xba', '\xef\xbd\x9a')  " FF3A (upper), FF5A (lower)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall GT('\xef\xbc\xba', '\xef\xbc\xff')  " first string is ok and equals \xef\

xbd\x9a after folding, second string is illegal and was left unchanged, then the

strings were bytewise compared
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall LT('\xc3', '\xc3\x83')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.

2X', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('Xy

Z\xc2\x%.2XuVw', n)) | endfor
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, printf('%d checks passed', b:passed))
[?25l[?1c3732 checks passed[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test that g~ap changes one paragraph only.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               [No Name]                                                                       3732 checks passedtest82.in [+]                                                                   [?25h[?0c[?25l[?1cabcddefg[+][?25h[?0c[?25l[?1cABCD
[?25h[?0c[?25l[?1c:[?25h[?0clet lns = getline(1,3)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c3732 checks passed

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), lns)
[?25l[?1cABCDdefg[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 5 lines, 31 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test82 = test61; then \
#	  if diff test.out test82.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test82.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test82.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test84.failed test.ok test.out X* viminfo
cp test84.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test84.in
[?25h[?8c[?25h[?0c[?25l[?1c"test84.in" 35 lines, 786 charactersTests for curswant not changing when setting an option

STARTTEST
:so small.vim
:/^start target options$/+1,/^end target options$/-1 yank
:let target_option_names = split(@0)
:function TestCurswant(option_name)
:  normal! ggf8j
:  let curswant_before = winsaveview().curswant
:  execute 'let' '&'.a:option_name '=' '&'.a:option_name
:  let curswant_after = winsaveview().curswant
:  return [a:option_name, curswant_before, curswant_after]
:endfunction
:
:new
:put =['1234567890', '12345']
:1 delete _
:let result = []
:for option_name in target_option_names
:  call add(result, TestCurswant(option_name))
:endfor
:
:new[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for curswant not changing when setting an option[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 637 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _
:write test.out
:
:qall!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start target options$/+1,/^end target options$/-1 yank
[?25l[?1c3 lines yanked[?25h[?0c[?25l[?1c:[?25h[?0clet target_option_names = split(@0)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction TestCurswant(option_name)
[?25l[?1c
:  [?25h[?0c:  normal! ggf8j

[?25l[?1c:  [?25h[?0c:  let curswant_before = winsaveview().curswant

[?25l[?1c:  [?25h[?0c:  execute 'let' '&'.a:option_name '=' '&'.a:option_name

[?25l[?1c:  [?25h[?0c:  let curswant_after = winsaveview().curswant

[?25l[?1c:  [?25h[?0c:  return [a:option_name, curswant_before, curswant_after]

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:  normal! ggf8j
:  let curswant_before = winsaveview().curswant
:  execute 'let' '&'.a:option_name '=' '&'.a:option_name
:  let curswant_after = winsaveview().curswant
:  return [a:option_name, curswant_before, curswant_after]
:endfunction[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       endfornew
:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _write test.outqall!
ENDTESTtest84.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cput =['1234567890', '12345']
[?25l[?1c123456789012345[+][?25h[?0c[?25l[?1c:[?25h[?0c1 delete _
[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet result = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor option_name in target_option_names
[?25l[?1c
:  [?25h[?0c:  call add(result, TestCurswant(option_name))

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c1234567890
12345[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1234567890
12345
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   :1 delete _
:write test.out
:
:qall!
ENDTEST

test84.in                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cput =map(copy(result), 'join(v:val, '' '')')
[?25l[?1c3 more linestabstop 7 4timeoutlen 7 7ttimeoutlen 7 7[+][?25h[?0c[?25l[?1c:[?25h[?0c1 delete _
[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cwrite test.out
[?25l[?1c"test.out" [New File] 3 lines, 43 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqall!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test84 = test61; then \
#	  if diff test.out test84.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test84.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test84.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test88.failed test.ok test.out X* viminfo
cp test88.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test88.in
[?25h[?8c[?25h[?0c[?25l[?1c"test88.in" 99 lines, 1449 charactersvim: set ft=vim

Tests for correct display (cursor column position) with +conceal and
tabulators.

STARTTEST
:so small.vim
:if !has('conceal')
   e! test.ok
   wq! test.out
:endif
:" Conceal settings.
:set conceallevel=2
:set concealcursor=nc
:syntax match test /|/ conceal
:" Save current cursor position. Only works in <expr> mode, can't be used
:" with :normal because it moves the cursor to the command line. Thanks to ZyX
:" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
:let positions = []
:nnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
:" Start test.
/^start:
:normal ztj[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cvim: set ft=vim[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 82 lines, 1216 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:normal W
GGk
:normal W
GGk
:normal W
GGk
:normal $
GGk
:" Display result.
:call append('$', 'end:')
:call append('$', positions)
:/^end/,$wq! test.out
ENDTEST

start:
.concealed.     text
|concealed|     text.concealed.     text|concealed|     text

.a.     .b.     .c.     .d.
|a|     |b|     |c|     |d|[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('conceal')
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:normal W
GGk
:normal W[?25h[?0c[?25l[?1c:[?25h[?0c" Conceal settings.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset conceallevel=2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset concealcursor=nc
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyntax match test /|/ conceal
[?25l[?1cconcealed  concealed  


a       b       c       d[?25h[?0c[?25l[?1c:[?25h[?0c" Save current cursor position. Only works in <expr> mode, can't be used
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" with :normal because it moves the cursor to the command line. Thanks to ZyX
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet positions = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Start test.
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ztj
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:let positions += ['2:1']
[?25h[?0c[?25l[?1c:[?25h[?0c" We should end up in the same column when running these commands on the two
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" lines.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['2:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['2:20']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['3:20']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:8']
[?25h[?0c[?25l[?1c:[?25h[?0c" Same for next test block.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['5:28']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:8']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal ft
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['6:28']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:1']
[?25h[?0c[?25l[?1c:[?25h[?0c" And check W with multiple tabs and conceals in a line.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['8:27']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0j
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0cset lbr
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0cset list listchars=tab:>-
[?25l[?1c>------

>------->----
>------->------>----.b.>----.c.>----
a>------b>------c>------[?25h[?0c[?25l[?1c:[?25h[?0cnormal 0
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:1']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:9']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:17']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal W
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:25']
[?25h[?0c[?25l[?1c:[?25h[?0cnormal $
[?25l[?1c[?25h[?0c[?25l[?1c:let positions += ['9:26']
[?25h[?0c[?25l[?1c:[?25h[?0c" Display result.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', 'end:')
[?25l[?1cend:[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', positions)
[?25l[?1c2:12:172:203:13:173:205:85:255:286:86:256:288:1[?25h[?0c[?25l[?1c:[?25h[?0c/^end/,$wq! test.out
[?25l[?1c"test.out" [New File] 29 lines, 135 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test88 = test61; then \
#	  if diff test.out test88.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test88.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test88.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test90.failed test.ok test.out X* viminfo
cp test90.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test90.in
[?25h[?8c[?25h[?0c[?25l[?1c"test90.in" 53 lines, 1204 charactersTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :

STARTTEST
:so small.vim
:if !has('cryptv') || !exists('*sha256')
   e! test.ok
   wq! test.out
:endif
:"
:let testcase='test for empty string: '
:if sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for 1 char: '
:if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb'
: let res='ok'
:else[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 47 lines, 1114 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for contains non-ascii char: '
:if sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:/^start:/,$wq! test.out
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('cryptv') || !exists('*sha256')
[?25l[?1c
:  [?25h[?0c   e! test.ok

[?25l[?1c:  [?25h[?0c   wq! test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for empty string: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b785

2b855'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'[?25h[?0c[?25l[?1c

:[?25h[?0c$put =testcase.res
[?25l[?1c
test for empty string: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for 1 char: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785af

ee48bb'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1c
test for 1 char: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for 3 chars: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("abc") ==# 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61

f20015ad'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'
:else[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1ctest for 3 chars: ok
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for contains meta char: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8c

c39ed110ca776'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c: let res='ok'
:else
: let res='ng'
:endif[?25h[?0c[?25l[?1c

:[?25h[?0c$put =testcase.res
[?25l[?1ctest for contains meta char: ok[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet testcase='test for contains non-ascii char: '
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb

0b8d27db8d5feaa813953'
[?25l[?1c:  [?25h[?0c: let res='ok'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: let res='ng'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c: let res='ok'
:else
: let res='ng'
:endif[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res
[?25l[?1c
test for contains non-ascii char: ok[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 6 lines, 143 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test90 = test61; then \
#	  if diff test.out test90.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test90.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test90.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test91.failed test.ok test.out X* viminfo
cp test91.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test91.in
[?25h[?8c[?25h[?0c[?25l[?1c"test91.in" 116 lines, 3240 charactersTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().
vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"
:" Use strings to test for memory leaks.
:" First, check that in an empty window, gettabvar() returns the correct value
:let t:testvar='abcd'
:$put =string(gettabvar(1,'testvar'))
:$put =string(gettabvar(1,'testvar'))
:" Test for getbufvar()
:let b:var_num = '1234'
:let def_num = '5678'
:$put =string(getbufvar(1, 'var_num'))
:$put =string(getbufvar(1, 'var_num', def_num))
:$put =string(getbufvar(1, ''))
:$put =string(getbufvar(1, '', def_num))
:unlet b:var_num
:$put =string(getbufvar(1, 'var_num', def_num))
:$put =string(getbufvar(1, ''))
:$put =string(getbufvar(1, '', def_num))[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 109 lines, 3127 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:tabnext
:3wincmd w
:unlet w:var_dict
:tabrewind
:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:$put =string(gettabwinvar(2, 9, ''))
:$put =string(gettabwinvar(2, 9, '', def_dict))
:$put =string(gettabwinvar(9, 3, ''))
:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict
:$put =string(gettabwinvar(2, 3, '&nux'))
:$put =string(gettabwinvar(2, 3, '&nux', 1))
:tabonly
:"
:/^start/,$wq! test.out
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Use strings to test for memory leaks.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" First, check that in an empty window, gettabvar() returns the correct value
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet t:testvar='abcd'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(gettabvar(1,'testvar'))
[?25l[?1c
'abcd'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(1,'testvar'))
[?25l[?1c
'abcd'[?25h[?0c[?25l[?1c
:[?25h[?0c" Test for getbufvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:var_num = '1234'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_num = '5678'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, 'var_num'))
[?25l[?1c
'1234'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, 'var_num', def_num))
[?25l[?1c
'1234'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, ''))
[?25l[?1c
{'var_num': '1234'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '', def_num))
[?25l[?1c
{'var_num': '1234'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet b:var_num
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, 'var_num', def_num))
[?25l[?1c
'5678'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '', def_num))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(9, '', def_num))
[?25l[?1c
'5678'[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_num
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getbufvar(1, '&autoindent'))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '&autoindent', 1))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Open new window with forced option values
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew ++ff=dos ++bin ++enc=iso-8859-2
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       {'var_num': '1234'}

'5678'{}''
'5678'
0test91.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0clet otherff = getbufvar(bufnr('%'), '&fileformat')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet otherbin = getbufvar(bufnr('%'), '&bin')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet otherfenc = getbufvar(bufnr('%'), '&fenc')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1c:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict:$put =string(gettabwinvar(2, 3, '&nux')):$put =string(gettabwinvar(2, 3, '&nux', 1)):tabonly:":/^start/,$wq! test.outENDTESTstart:'abcd''abcd''1234'{'var_num': '1234'}
'5678'

{}
'''5678'

0[?25h[?0c[?25l[?1c:[?25h[?0c$put =otherff
[?25l[?1c
dos[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(otherbin)
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0c$put =otherfenc
[?25l[?1c
iso-8859-2[?25h[?0c[?25l[?1c
:[?25h[?0cunlet otherff otherbin otherfenc
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for getwinvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet w:var_str = "Dance"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_str = "Chance"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getwinvar(1, 'var_str'))
[?25l[?1c
'Dance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, 'var_str', def_str))
[?25l[?1c
'Dance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, ''))
[?25l[?1c
{'var_str': 'Dance'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '', def_str))
[?25l[?1c
{'var_str': 'Dance'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet w:var_str
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(getwinvar(1, 'var_str', def_str))
[?25l[?1c
'Chance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '', def_str))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(9, '', def_str))
[?25l[?1c
'Chance'[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '&nu'))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '&nu',  1))
[?25l[?1c
0[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_str
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for gettabvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet t:var_list = [1, 2, 3]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet t:other = 777
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_list = [4, 5, 6, 7]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X{'var_num': '1234'}
'5678'
{}
{}
''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list'))
[?25l[?1c
[1, 2, 3][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list', def_list))
[?25l[?1c
[1, 2, 3][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, ''))
[?25l[?1c
{'var_list': [1, 2, 3], 'other': 777}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '', def_list))
[?25l[?1c
{'var_list': [1, 2, 3], 'other': 777}[?25h[?0c[?25l[?1c
:[?25h[?0ctablast
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cunlet t:var_list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(9, '', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '&nu'))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '&nu', def_list))
[?25l[?1c
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabonly
[?25l[?1cdos[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" test for gettabwinvar()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]                                                         X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabnew
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ctabprev
[?25l[?1c + test91.in  [No Name]  [No Name]                                              X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c2 [No Name]  [No Name]  X[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0csplit
[?25l[?1c + test91.in  3 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0cvert split
[?25l[?1c4 X||||||~~~~~[No Name]                              [?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name]                                [No Name]                               X[?25h[?0c[?25l[?1c:[?25h[?0clet w:var_dict = {'dict': 'tabwin'}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet def_dict = {'dict2': 'newval'}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd b
[?25l[?1c[No Name]                              [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[4, 5, 6, 7]
''
[4, 5, 6, 7]
''
[4, 5, 6, 7]
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict'))
[?25l[?1c
{'dict': 'tabwin'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l[?1c
{'dict': 'tabwin'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, ''))
[?25l[?1c
{'var_dict': {'dict': 'tabwin'}}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l[?1c
{'var_dict': {'dict': 'tabwin'}}[?25h[?0c[?25l[?1c
:[?25h[?0ctabnext
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ||||||~                                       
~                                       
~                                       
~                                       
~                                       
[No Name]                                ~                                      ~                                      ~                                      ~                                      ~                                      [No Name]                              ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1c[No Name]                              [No Name]                                                                        X[?25h[?0c[?25l[?1c:[?25h[?0cunlet w:var_dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c + test91.in  4 [No Name]  [No Name]                                            X{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
{'var_list': [1, 2, 3], 'other': 777}
{'var_list': [1, 2, 3], 'other': 777}
[4, 5, 6, 7]
''
[4, 5, 6, 7]
''
[4, 5, 6, 7]
{'dict': 'tabwin'}
{'dict': 'tabwin'}
{'var_dict': {'dict': 'tabwin'}}
{'var_dict': {'dict': 'tabwin'}}
[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, ''))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '', def_dict))
[?25l[?1c
{}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 9, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 9, '', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(9, 3, ''))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(9, 3, '', def_dict))
[?25l[?1c
{'dict2': 'newval'}[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_dict
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(gettabwinvar(2, 3, '&nux'))
[?25l[?1c
''[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '&nux', 1))
[?25l[?1c
1[?25h[?0c[?25l[?1c
:[?25h[?0ctabonly
[?25l[?1c0[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 50 lines, 530 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test91 = test61; then \
#	  if diff test.out test91.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test91.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test91.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test94.failed test.ok test.out X* viminfo
cp test94.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test94.in
[?25h[?8c[?25h[?0c[?25l[?1c"test94.in" 256 lines, 4824 charactersTest for Visual mode and operators

Tests for the two kinds of operations: Those executed with Visual mode
followed by an operator and those executed via Operator-pending mode. Also
part of the test are mappings, counts, and repetition with the . command.

Test cases:
- Visual modes (v V CTRL-V) followed by an operator; count; repeating
- Visual mode maps; count; repeating
  - Simple
  - With an Ex command (custom text object)
- Operator-pending mode maps
  - Simple
  - With Ex command moving the cursor
  - With Ex command and Visual selection (custom text object)
- Patch 7.3.879: Properly abort Ex command in Operator-pending mode

STARTTEST
:so small.vim
:set enc=utf-8 nocp viminfo+=nviminfo
:
:" User functions
:function MoveToCap()[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Visual mode and operators[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 211 lines, 3837 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTkv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '
:set selection=exclusive
0v3l^[gvcxxx^[
:$put ='---'
:/^start:/+2,$w! test.out
:q!
ENDTEST

start:

apple banana cherry

line 1 line 1
line 2 line 2
line 3 line 3
line 4 line 4
line 5 line 5
line 6 line 6[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf-8 nocp viminfo+=nviminfo
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '
:set selection=exclusive
0v3l^[gvcxxx^[
:$put ='---'
:/^start:/+2,$w! test.out
:q!
ENDTEST

start:

apple banana cherry

line 1 line 1
line 2 line 2
line 3 line 3
line 4 line 4
line 5 line 5
line 6 line 6[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" User functions
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction MoveToCap()
[?25l[?1c
:  [?25h[?0c:  call search('\u', 'W')

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'[?25h[?0c[?25l[?1c:[?25h[?0cfunction SelectInCaps()
[?25l[?1c
:  [?25h[?0c:  let [line1, col1] = searchpos('\u', 'bcnW')

[?25l[?1c:  [?25h[?0c:  let [line2, col2] = searchpos('.\u', 'nW')

[?25l[?1c:  [?25h[?0c:  call setpos("'<", [0, line1, col1, 0])

[?25l[?1c:  [?25h[?0c:  call setpos("'>", [0, line2, col2, 0])

[?25l[?1c:  [?25h[?0c:  normal! gv

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1ckv3lyjv3lpgvcxxx^[
:$put ='---'
:
:$put =''
:$put ='gv in exclusive select mode without operation'
:$put ='zzz '[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual modes followed by operator
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^apple
[?25l[?1c[?25h[?0ca[?25l[?1c-- VISUAL --[?25h[?0c[?25l[?1cp[?25h[?0c[?25l[?1cle banana cherry[?25h[?0c[?25l[?1c banana cherry[?25h[?0c [?25l[?1cbanan-- VISUAL --[?25h[?0c[?25l[?1c
a  cherry[?25h[?0c[?25l[?1cy[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^line 1
[?25l[?1c[?25h[?0c[?25l[?1cline 1 line 1 -- VISUAL LINE --[?25h[?0c[?25l[?1cINSERT --newline[?25h[?0c[?25l[?1c-- INSERT --newline[?25h[?0c[?25l[?1c
line 3 line 3 
line 4 line 4 


-- VISUAL LINE --[?25h[?0c[?25l[?1cline 5 line 5line 6 line 6xxxxxxxxxxxxx[?25h[?0c[?25l[?1cxxxxxxxxxxxxx
xxxxxxxxxxxxx[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^xxxx
[?25l[?1c[?25h[?0c[?25l[?1c


-- VISUAL BLOCK --[?25h[?0c[?25l[?1cx
[?25h[?0c[?25l[?1cx
x[?25h[?0c[?25l[?1cINSERT --  
  [?25h[?0c [?25l[?1c


-- INSERT --  
    [?25h[?0c [?25l[?1c
xxxx
    xxxx
xxxxxxxx
xxxxxxxxxxxxx
-- VISUAL BLOCK --[?25h[?0c[?25l[?1c
-- INSERT ------
    ----
xxxx----
xxxx----[?25h[?0c-[?25l[?1c-- INSERT ------------------[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual mode maps (movement and text object)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap W /\u/s-1<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cvnoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Kiwi
[?25l[?1cKiwiRaspberryDateWatermelonPeach[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c/\u/s-1
Kiw[?25h[?0c[?25l[?1c
-- INSERT --NoRaspberryDateWatermelonPeach[?25h[?0co[?25l[?1c
-- INSERT --NoberryDateWatermelonPeach[?25h[?0coberry[?25l[?1cDateWat
-- VISUAL --[?25h[?0c[?25l[?1crmelonPeach[?25h[?0c[?25l[?1cach[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Jambu
[?25l[?1c
JambuRambutanBananaTangerineMango[?25h[?0cJa[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c:'<,'>call SelectInCaps()
Jamb[?25h[?0c[?25l[?1c
-- INSERT ---RambutanBananaTangerineMango[?25h[?0c-[?25l[?1c
-- INSERT ---tanBananaTangerineMango[?25h[?0c-[?25l[?1ctanBanana
-- VISUAL --[?25h[?0c[?25l[?1c
--angerineMango[?25h[?0ca[?25l[?1cgo[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Operator-pending mode maps (movement and text object)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap W /\u/<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap <Leader>W :<C-U>call MoveToCap()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conoremap iW :<C-U>call SelectInCaps()<CR>
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Pineapple
[?25l[?1cPineappleQuinceLoganberryOrangeGrapefruitKiwiZ[?25h[?0c[?25l[?1c
/\u/
-QuinceLoganberryOrangeGrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---LoganberryOrangeGrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---GrapefruitKiwiZ[?25h[?0c-[?25l[?1c
/\u/
-- INSERT ---Z[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Juniper
[?25l[?1c
JuniperDurianZ[?25h[?0c[?25l[?1c
:call MoveToCap()
Whavcre
[?25h[?0c[?25l[?1c:call MoveToCap()
Qhevna[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^Lemon
[?25l[?1c
LemonNectarineZ[?25h[?0c[?25l[?1c
:call SelectInCaps()
[?25h[?0c[?25l[?1cLemonLemonNectarineZ
Lemo[?25h[?0cn[?25l[?1c:call SelectInCaps()
NewNectarineZ[?25h[?0cwNecta[?25l[?1c
:call SelectInCaps()
wZ[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^zzzz
[?25l[?1czzzz[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noma | let v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1cE21: Cannot make changes, 'modifiable' is off[?25h[?0c[?25l[?1c:[?25h[?0cset ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed'
[?25l[?1c
ok[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset noma | let v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0cset ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok'
[?25l[?1c
ok[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: replace last line'
[?25l[?1c
characterwise visual mode: replace last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0clet @" = 'x'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v:errmsg='.v:errmsg
[?25l[?1c
v:errmsg=[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete middle line'
[?25l[?1c
characterwise visual mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- VISUAL --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cb
c
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete middle two line'
[?25l[?1c
characterwise visual mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- VISUAL --[?25h[?0c[?25l[?1ca 
[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='characterwise visual mode: delete last line'
[?25l[?1c
characterwise visual mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise visual mode: delete last two line'
[?25l[?1c
characterwise visual mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1cb 
[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Select mode maps
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>End> <End>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>Down> <Down>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csnoremap <lt>Del> <Del>
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete middle line'
[?25l[?1c
characterwise select mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- SELECT --[?25h[?0c[?25l[?1ca[?25h[?0c[?25l[?1cb
c
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete middle two line'
[?25l[?1c
characterwise select mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c


-- SELECT --[?25h[?0c[?25l[?1ca 
[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='characterwise select mode: delete last line'
[?25l[?1c
characterwise select mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c
-- SELECT --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='characterwise select mode: delete last two line'
[?25l[?1c
characterwise select mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1c

-- SELECT --[?25h[?0c[?25l[?1cb 
[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete middle line'
[?25l[?1c
linewise select mode: delete middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1ca 


-- SELECT LINE --[?25h[?0c[?25l[?1cbc
~                                                                               [?25h[?0c
[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete middle two line'
[?25l[?1c
linewise select mode: delete middle two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1ca 


-- SELECT LINE --[?25h[?0c[?25l[?1ca
b 
[?25h[?0c[?25l[?1cc~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='linewise select mode: delete last line'
[?25l[?1c
linewise select mode: delete last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1cc 
-- SELECT LINE --[?25h[?0c[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='linewise select mode: delete last two line'
[?25l[?1c
linewise select mode: delete last two line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='a'
[?25l[?1c
a[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='b'
[?25l[?1c
b[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='c'
[?25l[?1c
c[?25h[?0c[?25l[?1cb 

-- SELECT LINE --[?25h[?0c[?25l[?1cb
c 
[?25h[?0c[?25l[?1c~                                                                               ~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c$put ='---'
[?25l[?1c---[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='v_p: replace last character with line register at middle line'
[?25l[?1c
v_p: replace last character with line register at middle line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0cbb[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1cccc
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at middle line selecting

newline'
[?25l[?1clinewise select mode: delete middle two line
c---linewise select mode: delete last line
ab
---linewise select mode: delete last two line
a---v_p: replace last character with line register at middle line
aaabbaaaccc
---v_p: replace last character with line register at middle line selecting newline[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0cbb[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1cb[?25h[?0c[?25l[?1caaa[?25h[?0c[?25l[?1c
ccc
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at last line'
[?25l[?1c
v_p: replace last character with line register at last line[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0ccc[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='v_p: replace last character with line register at last line selecting n

ewline'
[?25l[?1caaa
bbaaaccc
---v_p: replace last character with line register at middle line selecting newline
aaabbaaa
ccc
---v_p: replace last character with line register at last line
aaabbb
ccaaa---v_p: replace last character with line register at last line selecting newline[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='aaa'
[?25l[?1c
aaa[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='bbb'
[?25l[?1c
bbb[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ccc'
[?25l[?1c
ccc[?25h[?0c[?25l[?1c
:[?25h[?0c-2yank
[?25l[?1c[?25h[?0ccc[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cc[?25h[?0c[?25l[?1c
aaa[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='gv in exclusive select mode after operation'
[?25l[?1c
gv in exclusive select mode after operation[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='zzz '
[?25l[?1c
zzz[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='äà '
[?25l[?1c
äÃ[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c

-- VISUAL --[?25h[?0c[?25l[?1czzz[?25h[?0c[?25l[?1c
zzz[?25h[?0c
[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1cäÃ[?25h[?0c[?25l[?1c
zzz[?25h[?0c[?25l[?1c
-- VISUAL --zzz[?25h[?0c[?25l[?1cINSERTxxx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='gv in exclusive select mode without operation'
[?25l[?1c
gv in exclusive select mode without operation[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='zzz '
[?25l[?1c
zzz[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c
-- VISUAL --[?25h[?0c[?25l[?1czzz[?25h[?0c[?25l[?1c
zzz[?25h[?0c[?25l[?1c
-- VISUAL --zzz[?25h[?0c[?25l[?1cINSERTxxx[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='---'
[?25l[?1c
---[?25h[?0c[?25l[?1c
:[?25h[?0c/^start:/+2,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 123L, 1328C written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test94 = test61; then \
#	  if diff test.out test94.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test94.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test94.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test95.failed test.ok test.out X* viminfo
cp test95.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test95.in
[?25h[?8c[?25h[?0c[?25l[?1c"test95.in" 141 lines, 5827 charactersTest for regexp patterns with multi-byte support, using utf-8.
See test64 for the non-multi-byte tests.

A pattern that gives the expected result produces OK, so that we know it was
actually tried.

STARTTEST
:so small.vim
:so mbyte.vim
:set nocp encoding=utf-8 viminfo+=nviminfo nomore
:" tl is a List of Lists with:
:"    2: test auto/old/new  0: test auto/old  1: test auto/new
:"    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 = []
:
:"""" Multi-byte character tests. These will fail unless vim is compiled
:"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for regexp patterns with multi-byte support, using utf-8.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 131 lines, 5590 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:endif
:      endfor
:      unlet i
:    endif
:  endfor
:endfor
:unlet t tl e l
:
:" check that 'ambiwidth' does not change the meaning of \p
:set regexpengine=1 ambiwidth=single
:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=1 ambiwidth=double
:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=single
:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=double
:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
:
:/\%#=1^Results/,$wq! test.out
ENDTEST

Results of test95:
~                                                                               [?25h[?0c
[?25l[?1c


:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp encoding=utf-8 viminfo+=nviminfo nomore
[?25l[?1c:endif
:      endfor
:      unlet i
:    endif
:  endfor
:endfor
:unlet t tl e l
:
:" check that 'ambiwidth' does not change the meaning of \p
:set regexpengine=1 ambiwidth=single
:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=1 ambiwidth=double
:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=single
:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=double
:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
:
:/\%#=1^Results/,$wq! test.out
ENDTEST

Results of test95:
~                                                                               [?25h[?0c[?25l[?1c


:[?25h[?0c" tl is a List of Lists with:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    2: test auto/old/new  0: test auto/old  1: test auto/new
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    regexp pattern
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    text to test the pattern on
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected match (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 1 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    expected submatch 2 (optional)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"    etc.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  When there is no match use only the first two items.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tl = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Multi-byte character tests. These will fail unless vim is compiled
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[[=a=]]\+', 'ddaãâbcd', 'aãâ'])^I^I^I^I^I^I^I^I" equivalence

classes
[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0ccall add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oij

asoifjos'])
[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0ccall add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna']

)[?25l[?1c:endif[?25h[?0c[?25l[?1c


:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" this is not a normal "i" but 0xec
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p\+', 'ìa', 'ìa'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\p*', 'aあ', 'aあ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test recognition of some character classes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\i\+', '&*¨xx ', 'xx'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '\f\+', '&*<9f>fname ', 'fname'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test composing character matching
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.ม', 'xมม่x yมy', 'yม'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '.มม่', 'xมม่x yมy', 'xมม่'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\u05b9\u05bb", " y\u05b9 x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, ".\u05b9\u05bb", " y\u05bb x\u05b9\u05bb ", "x\u05b9\u05bb"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "a", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ca", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "a\u0300", "ca\u0300t", "a\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'a\%C', "ca\u0300t", "a\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ca\%C', "ca\u0300t", "ca\u0300"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ca\%Ct', "ca\u0300t", "ca\u0300t"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Test \Z
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ú\Z', 'x'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'יהוה\Z', 'יהוה', 'יהוה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְהווָה\Z', 'יהוה', 'יהוה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'יהוה\Z', 'ייְהווָה', 'ייְהווָה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְהווָה\Z', 'ייְהווָה', 'ייְהווָה'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, 'ייְ\Z', 'ווְייַ', 'ייַ'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200d\u05b9x\\Z", "xק\u200dxy", "ק\u200dx"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200dx\\Z", "xק\u200d\u05b9xy", "ק\u200d\u05b9x"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "ק\u200dx\\Z", "xק\u200dxy", "ק\u200dx"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\\Z", "xyz"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\\Z\u05b9", "xyz"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\u05b9\\Z", "xy\u05b9z", "y\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, "\\Z\u05b9", "xy\u05b9z", "y\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\u05b9\\+\\Z", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [1, "\\Z\u05b9\\+", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Combining different tests and features
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tl, [2, '[^[=a=]]\+', 'ddaãâbcd', 'dd'])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"""" Run the tests
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor t in tl
[?25l[?1c
:  [?25h[?0c:  let re = t[0]

[?25l[?1c:  [?25h[?0c:  let pat = t[1]

[?25l[?1c:  [?25h[?0c:  let text = t[2]

[?25l[?1c:  [?25h[?0c:  let matchidx = 3

[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]

[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re == 1

[?25l[?1c:      [?25h[?0c:      continue

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine

[?25l[?1c:    [?25h[?0c:    try

[?25l[?1c:      [?25h[?0c:      let l = matchlist(text, pat)

[?25l[?1c:      [?25h[?0c:    catch

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", caused an exception: \"' . v:exception . '\"'

[?25l[?1c:      [?25h[?0c:    endtry

[?25l[?1c:    [?25h[?0c:" check the match itself

[?25l[?1c:    [?25h[?0c:    if len(l) == 0 && len(t) > matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", did not match, expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    elseif len(l) > 0 && len(t) == matchidx

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te

xt . '\", match: \"' . l[0] . '\", expected no match'

[?25l[?1c:      [?25h[?0c:    elseif len(t) > matchidx && l[0] != t[matchidx]

[?25l[?1c:      [?25h[?0c:      $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: \"' . te
t . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'

[?25l[?1c:      [?25h[?0c:    else

[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:    if len(l) > 0

[?25l[?1c:      [?25h[?0c:"   check all the nine submatches

[?25l[?1c:      [?25h[?0c:      for i in range(1, 9)

[?25l[?1c:[?25h[?0c:        if len(t) <= matchidx + i

[?25l[?1c:[?25h[?0c:          let e = ''

[?25l[?1c:[?25h[?0c:        else

[?25l[?1c:[?25h[?0c:          let e = t[matchidx + i]

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:        if l[i] != e

[?25l[?1c:[?25h[?0c:          $put ='ERROR ' . engine . ': pat: \"' . pat . '\", text: 
"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'

[?25l[?1c:[?25h[?0c:        endif

[?25l[?1c:[?25h[?0c:      endfor

[?25l[?1c:      [?25h[?0c:      unlet i

[?25l[?1c:      [?25h[?0c:    endif

[?25l[?1c:    [?25h[?0c:  endfor

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl e l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" check that 'ambiwidth' does not change the meaning of \p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset regexpengine=1 ambiwidth=single
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 1 ambi single: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=1 ambiwidth=double
[?25l[?1cOK 0 - ק<200d>x\Z
OK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 1 ambi double: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=2 ambiwidth=single
[?25l[?1cOK 1 - ק<200d>x\Z
OK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
eng 1 ambi double: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 2 ambi single: 0[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=2 ambiwidth=double
[?25l[?1cOK 2 - ק<200d>x\Z
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\Z
OK 1 - ֹ\Z
OK 2 - ֹ\Z
OK 0 - \Zֹ
OK 1 - \Zֹ
OK 2 - \Zֹ
OK 0 - ֹ\+\Z
OK 2 - ֹ\+\Z
OK 0 - \Zֹ\+
OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
eng 1 ambi double: 0
eng 2 ambi single: 0
[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
[?25l[?1c
eng 2 ambi double: 0[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/\%#=1^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 140L, 2022C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test95 = test61; then \
#	  if diff test.out test95.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test95.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test95.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test98.failed test.ok test.out X* viminfo
cp test98.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test98.in
[?25h[?8c[?25h[?0c[?25l[?1c"test98.in" 43 lines, 908 charactersTest for 'scrollbind' causing an unexpected scroll of one of the windows.
STARTTEST
:so small.vim
:" We don't want the status line to cause problems:
:set laststatus=0
:let g:totalLines = &lines * 20
:let middle = g:totalLines / 2
:wincmd n
:wincmd o
:for i in range(1, g:totalLines)
:    call setline(i, 'LINE ' . i)
:endfor
:exe string(middle)
:normal zt
:normal M
:aboveleft vert new
:for i in range(1, g:totalLines)
:    call setline(i, 'line ' . i)
:endfor
:exe string(middle)
:normal zt
:normal M
:" Execute the following two command at once to reproduce the problem.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for 'scrollbind' causing an unexpected scroll of one of the windows.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 791 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:setl scb | wincmd p
:setl scb
:wincmd w
:let topLineLeft = line('w0')
:wincmd p
:let topLineRight = line('w0')
:setl noscrollbind
:wincmd p
:setl noscrollbind
:q!
:%del _
:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight))
:w! test.out
:brewind
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" We don't want the status line to cause problems:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset laststatus=0
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:totalLines = &lines * 20
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet middle = g:totalLines / 2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd n
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cwincmd o
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(1, g:totalLines)
[?25l[?1c
:  [?25h[?0c:    call setline(i, 'LINE ' . i)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cLINE 1
LINE 2
LINE 3LINE 4LINE 5LINE 6LINE 7LINE 8LINE 9LINE 10LINE 11LINE 12LINE 13LINE 14LINE 15LINE 16LINE 17LINE 18LINE 19LINE 20LINE 21LINE 22LINE 23[?25h[?0c[?25l[?1c:[?25h[?0cexe string(middle)
[?25l[?1cLINE 229
LINE 230
LINE 231
LINE 232
LINE 233
LINE 234
LINE 235
LINE 236
LINE 237
LINE 238
LINE 239
LINE 240
LINE 241
LINE 242
LINE 243
LINE 244
LINE 245
LINE 246
LINE 247
LINE 248
LINE 249
LINE 250
LINE 251[?25h[?0c[?25l[?1c:[?25h[?0cnormal zt
[?25l[?1cLINE 252
LINE 253
LINE 254
LINE 255
LINE 256
LINE 257
LINE 258
LINE 259
LINE 260
LINE 261
LINE 262[?25h[?0c[?25l[?1c:[?25h[?0cnormal M
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0caboveleft vert new
[?25l[?1c        |||||||||||||||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       LINE 240LINE 241LINE 242LINE 243LINE 244LINE 245LINE 246LINE 247LINE 248LINE 249LINE 250LINE 251LINE 252LINE 253LINE 254LINE 255LINE 256LINE 257LINE 258LINE 259LINE 260LINE 261LINE 262[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(1, g:totalLines)
[?25l[?1c
:  [?25h[?0c:    call setline(i, 'line ' . i)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1cline 1|
line 2|
line 3                                  
line 4                                  
line 5                                  
line 6                                  
line 7                                  
line 8                                  
line 9                                  
line 10                                 
line 11                                 
line 12                                 
line 13                                 
line 14                                 
line 15                                 
line 16                                 
line 17                                 
line 18                                 
line 19                                 
line 20                                 
line 21                                 
line 22                                 
line 23                                 LINE 240LINE 241[?25h[?0c[?25l[?1c:[?25h[?0cexe string(middle)
[?25l[?1c2293023123223323423523623723823924024124224324424524624748495051[?25h[?0c[?25l[?1c:[?25h[?0cnormal zt
[?25l[?1cline 240                                
line 241                                
line 242                                
line 243                                
line 244                                
line 245                                
line 246                                
line 247                                
line 248                                
line 249                                
line 250                                
line 251                                
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        line 252
line 253
line 254
line 255
line 256
line 257
line 258
line 259
line 260
line 261
line 262[?25h[?0c[?25l[?1c:[?25h[?0cnormal M
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Execute the following two command at once to reproduce the problem.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl scb | wincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl scb
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet topLineLeft = line('w0')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet topLineRight = line('w0')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl noscrollbind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1cLINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINELINE[?25h[?0c[?25l[?1c:[?25h[?0c%del _
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, 'Difference between the top lines (left - right): ' . string(t

opLineLeft - topLineRight))
[?25l[?1cDifference between the top lines (left - right): 0[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 1 line, 51 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test98.in" 43 lines, 908 characters:normal M:" Execute the following two command at once to reproduce the problem.:setl scb | wincmd p:setl scb:wincmd w:let topLineLeft = line('w0'):wincmd p:let topLineRight = line('w0'):setl noscrollbind:wincmd p:setl noscrollbind:q!:%del _:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight)):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test98 = test61; then \
#	  if diff test.out test98.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test98.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test98.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test99.failed test.ok test.out X* viminfo
cp test99.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test99.in
[?25h[?8c[?25h[?0c[?25l[?1c"test99.in" 69 lines, 1400 charactersTests for regexp with multi-byte encoding and various magic settings.
Test matchstr() with a count and multi-byte chars.
See test44 for exactly the same test with re=1.

STARTTEST
:so mbyte.vim
:set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
:set re=2
/^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
f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for regexp with multi-byte encoding and various magic settings.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 43 lines, 931 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
: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
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
[?25l[?1c:" l Test what 7.3.192 fixed
/^l
:s/ \?/ /g
:?^1?,$w! test.out
:e! test.out
: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
:[?25h[?0c" Test \%u, [\u] and friends
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c\%u20ac
[?25l[?1c
/[?25h[?0c[\u4f7f\u5929]\+
[?25l[?1c
/[?25h[?0c\%U12345678
[?25l[?1c
/[?25h[?0c[\U1234abcd\u1234\uabcd]
[?25l[?1c
/[?25h[?0c\%d21879b
[?25l[?1c
:[?25h[?0c" Test backwards search from a multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cx
[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" l Test what 7.3.192 fixed
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^l
[?25l[?1c
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
#@/bin/sh -c "if test -f test.out -a test99 = test61; then \
#	  if diff test.out test99.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test99.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test99.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test103.failed test.ok test.out X* viminfo
cp test103.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test103.in
[?25h[?8c[?25h[?0c[?25l[?1c"test103.in" 37 lines, 823 charactersTest for visual mode not being reset causing E315 error.
STARTTEST
:so small.vim
:enew
:let g:msg="Everything's fine."
:function! TriggerTheProblem()
:" At this point there is no visual selection because :call reset it.
:" Let's restore the selection:
:normal gv
:'<,'>del _
:try
:exe "normal \<Esc>"
:catch /^Vim\%((\a\+)\)\=:E315/
:echom 'Snap! E315 error!'
:let g:msg='Snap! E315 error!'
:endtry
:endfunction
:enew
:setl buftype=nofile
:call append(line('$'), 'Delete this line.')
:"
:"
:" NOTE: this has to be done by a call to a function because executing :del the[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for visual mode not being reset causing E315 error.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 723 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"ex-way will require the colon operator which resets the visual mode thus
:"preventing the problem:
:"
GV:call TriggerTheProblem()
:%del _
:call append(line('$'), g:msg)
:w! test.out
:brewind
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cenew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet g:msg="Everything's fine."
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! TriggerTheProblem()
[?25l[?1c
:  [?25h[?0c:^I" At this point there is no visual selection because :call reset it.

[?25l[?1c:  [?25h[?0c:^I" Let's restore the selection:

[?25l[?1c:  [?25h[?0c:^Inormal gv

[?25l[?1c:  [?25h[?0c:^I'<,'>del _

[?25l[?1c:  [?25h[?0c:^Itry

[?25l[?1c:    [?25h[?0c:^I^Iexe "normal \<Esc>"

[?25l[?1c:    [?25h[?0c:^Icatch /^Vim\%((\a\+)\)\=:E315/

[?25l[?1c:    [?25h[?0c:^I^Iechom 'Snap! E315 error!'

[?25l[?1c:    [?25h[?0c:^I^Ilet g:msg='Snap! E315 error!'

[?25l[?1c:    [?25h[?0c:^Iendtry

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cenew
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetl buftype=nofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), 'Delete this line.')
[?25l[?1cDelete this line.[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" NOTE: this has to be done by a call to a function because executing :del the
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"       ex-way will require the colon operator which resets the visual mode th

us[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"       preventing the problem:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c
[?25l[?1cDelete this line. 
[?25h[?0c[?25l[?1c:'<,'>[?25h[?0ccall TriggerTheProblem()
[?25l[?1c~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c%del _
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), g:msg)
[?25l[?1cEverything's fine.[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 2 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test103.in" 37 lines, 823 characters:endtry
:endfunction:enew:setl buftype=nofile:call append(line('$'), 'Delete this line.'):":":" NOTE: this has to be done by a call to a function because executing :del the:"       ex-way will require the colon operator which resets the visual mode thus:"       preventing the problem::"GV:call TriggerTheProblem():%del _:call append(line('$'), g:msg):w! test.out:brewindENDTESTSTARTTEST:qa!ENDTEST[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1 line, 5 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c


/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test103 = test61; then \
#	  if diff test.out test103.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test103.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test103.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test104.failed test.ok test.out X* viminfo
cp test104.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test104.in
[?25h[?8c[?25h[?0c[?25l[?1c"test104.in" 30 lines, 698 charactersTests for :let.  vim: set ft=vim ts=8 :

STARTTEST
:so small.vim
:set runtimepath+=./sautest
:" Test to not autoload when assigning.  It causes internal error.
:try
:  let Test104#numvar = function('tr')
:  $put ='OK: ' . string(Test104#numvar)
:catch
:  $put ='FAIL: ' . v:exception
:endtry
:let a = 1
:let b = 2
:for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0
== 1 ? "a" : "b"}']
:  try
:    redir => messages
:    execute 'let' letargs
:    redir END
:    $put ='OK:'
:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')
:  catch[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :let.  vim: set ft=vim ts=8 :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 24 lines, 618 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:    $put ='FAIL: ' . v:exception
:    redir END
:  endtry
:endfor
:/^Results/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset runtimepath+=./sautest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test to not autoload when assigning.  It causes internal error.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  let Test104#numvar = function('tr')

[?25l[?1c:  [?25h[?0c:  $put ='OK: ' . string(Test104#numvar)

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:  $put ='FAIL: ' . v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c:catch
:  $put ='FAIL: ' . v:exception
:endtry
:let a = 1
:let b = 2
:for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0
== 1 ? "a" : "b"}']
:  try:    redir => messages
:    execute 'let' letargsEND$put ='OK:'$put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')
:  catch'FAIL: ' . v:exception  redir END
:  endtryendfor/^Results/,$wq! test.out
ENDTESTResults of test104:
OK: function('tr')[?25h[?0c[?25l[?1c
:[?25h[?0clet a = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b = 2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0

== 1 ? "a" : "b"}']
[?25l[?1c:  [?25h[?0c:  try

[?25l[?1c:    [?25h[?0c:    redir => messages

[?25l[?1c:    [?25h[?0c:    execute 'let' letargs

[?25l[?1ca#1

b#2

:    [?25h[?0c:    redir END

[?25l[?1c:    [?25h[?0c:    $put ='OK:'

[?25l[?1c:    [?25h[?0c:    $put =split(substitute(messages, '\n', '\0  ', 'g'), '\n')

[?25l[?1c:    [?25h[?0c:  catch

[?25l[?1c:    [?25h[?0c:    $put ='FAIL: ' . v:exception

[?25l[?1c:    [?25h[?0c:    redir END

[?25l[?1c:    [?25h[?0c:  endtry

[?25l[?1c:  [?25h[?0c:endfor

[?25l[?1cb#2

b#2

a#1

a#1

b#2

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 13 lines, 244 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test104 = test61; then \
#	  if diff test.out test104.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test104.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test104.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test107.failed test.ok test.out X* viminfo
cp test107.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test107.in
[?25h[?8c[?25h[?0c[?25l[?1c"test107.in" 38 lines, 717 charactersTests for adjusting window and contents     vim: set ft=vim :

STARTTEST
:so small.vim
:new
:call setline(1, range(1,256))
:let r=[]
:func! GetScreenStr(row)
:   let str = ""
:   for c in range(1,3)
:let str .= nr2char(screenchar(a:row, c))
:   endfor
:   return str
:endfunc
:
:exe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
:
:exe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for adjusting window and contents     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 32 lines, 628 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(r, [line("w0"), s3])
:
:exe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:"/^start:/,$wq! test.out
ENDTESTtest107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, range(1,256))
[?25l[?1c1
234567891011[+][?25h[?0c[?25l[?1c:[?25h[?0clet r=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc! GetScreenStr(row)
[?25l[?1c
:  [?25h[?0c:   let str = ""

[?25l[?1c:  [?25h[?0c:   for c in range(1,3)

[?25l[?1c:    [?25h[?0c:       let str .= nr2char(screenchar(a:row, c))

[?25l[?1c:    [?25h[?0c:   endfor

[?25l[?1c:  [?25h[?0c:   return str

[?25l[?1c:  [?25h[?0c:endfunc
[?25l[?1c1
2
3
4
5
6[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
[?25l[?1c[No Name] [+]                                                                   :let s3=GetScreenStr(1)test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
[?25l[?1c50
51
52
53
54
55
56
57
58
59
[No Name] [+]                                                                   :let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST

test107.in                                                                      [?25h[?0c[?25l[?1c

:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
[?25l[?1c59
60
61
62
63
64
65
66
67
68
[No Name] [+]                                                                   :let s3=GetScreenStr(1)
::wincmd p
:call add(r, [line("w0"), s3])
:
:bwipeout!
:$put=r
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
ENDTEST

test107.in                                                                      [?25h[?0c[?25l[?1c

:[?25h[?0clet s3=GetScreenStr(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c:wincmd p
[?25l[?1c[No Name] [+]                                                                   test107.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, [line("w0"), s3])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipeout!
[?25l[?1c::exe ":norm! \<C-W>t\<C-W>=1Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
::exe ":norm! \<C-W>t\<C-W>=50Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
:wincmd p
:call add(r, [line("w0"), s3])
:exe ":norm! \<C-W>t\<C-W>=59Gzt\<C-W>w\<C-W>+"
:let s3=GetScreenStr(1)
::wincmd pcall add(r, [line("w0"), s3])bwipeout!
:$put=rcall garbagecollect(1)
:":/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0c$put=r
[?25l[?1c3 more linesstart:
[1, '1  ']
[50, '50 ']
[59, '59 ']3 more lines[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 4 lines, 42 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test107 = test61; then \
#	  if diff test.out test107.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test107.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test107.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test108.failed test.ok test.out X* viminfo
cp test108.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test108.in
[?25h[?8c[?25h[?0c[?25l[?1c"test108.in" 88 lines, 1329 charactersTests for backtrace debug commands.     vim: set ft=vim :

STARTTEST
:so small.vim
:lang mess C
:function! Foo()
:   let var1 = 1
:   let var2 = Bar(var1) + 9
:   return var2
:endfunction
:
:function! Bar(var)
:    let var1 = 2 + a:var
:    let var2 = Bazz(var1) + 4
:    return var2
:endfunction
:
:function! Bazz(var)
:    let var1 = 3 + a:var
:    let var3 = "another var"
:    return var1
:endfunction
:new[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for backtrace debug commands.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 83 lines, 1251 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTup
b
echo "fil is not frame or finish, it is file"
fil
echo "\n- relative backtrace movement\n"
fr -1
frame
fra +1
fram
echo "\n- go beyond limits does not crash\n"
fr 100
fra
frame -40
fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang mess C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Foo()
[?25l[?1c
:  [?25h[?0c:   let var1 = 1

[?25l[?1c:  [?25h[?0c:   let var2 = Bar(var1) + 9

[?25l[?1c:  [?25h[?0c:   return var2

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Bar(var)
[?25l[?1c
:  [?25h[?0c:    let var1 = 2 + a:var

[?25l[?1c:  [?25h[?0c:    let var2 = Bazz(var1) + 4

[?25l[?1c:  [?25h[?0c:    return var2

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! Bazz(var)
[?25l[?1c
:  [?25h[?0c:    let var1 = 3 + a:var

[?25l[?1c:  [?25h[?0c:    let var3 = "another var"

[?25l[?1c:  [?25h[?0c:    return var1

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cup
b
echo "fil is not frame or finish, it is file"
fil[?25h[?0c[?25l[?1c
:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       echo "\n- final result 19:"
cont:0debuggreedy
:redir END$put =out
:w! test.out
:qa!ENDTESTtest108.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0cdebuggreedy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdebug echo Foo()
[?25l[?1cEntering Debug mode.  Type "cont" to continue.

cmd: echo Foo()

>[?25h[?0cstep

[?25l[?1cfunction Foo

line 1: let var1 = 1

>[?25h[?0cstep

[?25l[?1cfunction Foo

line 2: let var2 = Bar(var1) + 9

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 1: let var1 = 2 + a:var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 2: let var2 = Bazz(var1) + 4

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 1: let var1 = 3 + a:var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho "- show backtrace:\n"

[?25l[?1c- show backtrace:

>[?25h[?0cbacktrace

[?25l[?1c  2 function Foo[2]

  1 Bar[2]

->0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho "\nshow variables on different levels:\n"

[?25l[?1c
show variables on different levels:

>[?25h[?0cecho var1

[?25l[?1c6
>[?25h[?0cup

[?25l[?1c>[?25h[?0cback

[?25l[?1c  2 function Foo[2]

->1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho var1

[?25l[?1c3
>[?25h[?0cu

[?25l[?1c>[?25h[?0cbt

[?25l[?1c->2 function Foo[2]

  1 Bar[2]

  0 Bazz

line 2: let var3 = "another var"

>[?25h[?0cecho var1

[?25l[?1c1
>[?25h[?0cecho "\n- undefined vars:\n"

[?25l[?1c
- undefined vars:

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 3: return var1

>[?25h[?0cframe 2

[?25l[?1c>[?25h[?0cecho "undefined var3 on former level:"

[?25l[?1cundefined var3 on former level:

>[?25h[?0cecho var3

[?25l[?1cError detected while processing function Foo[2]..Bar[2]..Bazz:

line    3:

E121: Undefined variable: var3

E15: Invalid expression: var3

>[?25h[?0cfr 0

[?25l[?1c>[?25h[?0cecho "here var3 is defined with \"another var\":"

[?25l[?1chere var3 is defined with "another var":

>[?25h[?0cecho var3

[?25l[?1canother var

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar[2]..Bazz

line 3: End of function

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 3: return var2

>[?25h[?0cstep

[?25l[?1cfunction Foo[2]..Bar

line 3: End of function

>[?25h[?0cup

[?25l[?1c>[?25h[?0cecho "\nundefined var2 on former level"

[?25l[?1c
undefined var2 on former level

>[?25h[?0cecho var2

[?25l[?1cError detected while processing function Foo[2]..Bar:

line    3:

E121: Undefined variable: var2

E15: Invalid expression: var2

>[?25h[?0cdown

[?25l[?1c>[?25h[?0cecho "here var2 is defined with 10:"

[?25l[?1chere var2 is defined with 10:

>[?25h[?0cecho var2

[?25l[?1c10

>[?25h[?0cecho "\n- backtrace movements:\n"

[?25l[?1c
- backtrace movements:

>[?25h[?0cb

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cecho "\nnext command cannot go down, we are on bottom\n"

[?25l[?1c
next command cannot go down, we are on bottom

>[?25h[?0cdown

[?25l[?1cframe is zero

>[?25h[?0cup

[?25l[?1c>[?25h[?0cecho "\nnext command cannot go up, we are on top\n"

[?25l[?1c
next command cannot go up, we are on top

>[?25h[?0cup

[?25l[?1cframe at highest level: 1

>[?25h[?0cb

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cecho "fil is not frame or finish, it is file"

[?25l[?1cfil is not frame or finish, it is file

>[?25h[?0cfil

[?25l[?1c"[No Name]" --No lines in buffer--

>[?25h[?0cecho "\n- relative backtrace movement\n"

[?25l[?1c
- relative backtrace movement

>[?25h[?0cfr -1

[?25l[?1c>[?25h[?0cframe

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cfra +1

[?25l[?1c>[?25h[?0cfram

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cecho "\n- go beyond limits does not crash\n"

[?25l[?1c
- go beyond limits does not crash

>[?25h[?0cfr 100

[?25l[?1cframe at highest level: 1

>[?25h[?0cfra

[?25l[?1c->1 function Foo[2]

  0 Bar

line 3: End of function

>[?25h[?0cframe -40

[?25l[?1cframe is zero

>[?25h[?0cfram

[?25l[?1c  1 function Foo[2]

->0 Bar

line 3: End of function

>[?25h[?0cecho "\n- final result 19:"

[?25l[?1c
- final result 19:

>[?25h[?0ccont

[?25l[?1c19

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c0debuggreedy
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       fram
echo "\n- final result 19:"
cont
:0debuggreedy
:redir END
:$put =out
:w! test.out
:qa!
ENDTEST

test108.in                                                                      [?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =out
[?25l[?1c83 more lines->1 function Foo[2]
  0 Barline 3: End of functionframe is zero  1 function Foo[2]->0 Barline 3: End of function- final result 19:19[+][?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 84 lines, 1390 characters writtentest.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test108 = test61; then \
#	  if diff test.out test108.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test108.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test108.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_autocmd_option.failed test.ok test.out X* viminfo
cp test_autocmd_option.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autocmd_option.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_autocmd_option.in" 77 lines, 2954 charactersTest for option autocommand

STARTTEST
:so small.vim
:if !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! test.out | qa! | endif
:fu! AutoCommand(match)
:let c=g:testcase
:let item=remove(g:options, 0)
:let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Scope:
<%s>\n", item[0], item[1], item[2], item[3])
:let c.=printf("Autocmd Option: <%s>,", a:match)
:let c.=printf(" OldVal: <%s>,", v:option_old)
:let c.=printf(" NewVal: <%s>,", v:option_new)
:let c.=printf(" Scope: <%s>\n", v:option_type)
:call setreg('r', printf("%s\n%s", getreg('r'), c))
:endfu
:au OptionSet * :call AutoCommand(expand("<amatch>"))
:let g:testcase="1: Setting number option\n"
:let g:options=[['number', 0, 1, 'global']]
:set nu
:let g:testcase="2: Setting local number option\n"
:let g:options=[['number', 1, 0, 'local']][?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for option autocommand[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 2896 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:let g:testcase="13: Setting option backspace through setbufvar()\n"
:let g:options=[['backup', '', '1', 'local']]
: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
:call setbufvar(1, '&l:bk', 1)
: "should trigger, use correct option name
:call setbufvar(1, '&backup', 1)
:let g:testcase="14: Setting number option using setwinvar\n"
:let g:options=[['number', 0, 1, 'local']]
:call setwinvar(0, '&number', 1)
:" Write register now, because next test shouldn't output anything.
:$put r
:let @r=''
:let g:testcase="\n15: Setting key option, shouldn't trigger\n"
:let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
:setlocal key=blah
:setlocal key=
:$put =g:testcase
:$put r
:/^dummy text/,$w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! 

test.out | qa! | endif
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"[?25h[?0c[?25l[?1c
:[?25h[?0cfu! AutoCommand(match)
[?25l[?1c
:  [?25h[?0c:^Ilet c=g:testcase

[?25l[?1c:  [?25h[?0c:       let item=remove(g:options, 0)

[?25l[?1c:  [?25h[?0c:       let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Sco

pe: <%s>\n", item[0], item[1], item[2], item[3])

[?25l[?1c:  [?25h[?0c:       let c.=printf("Autocmd Option: <%s>,", a:match)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" OldVal: <%s>,", v:option_old)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" NewVal: <%s>,", v:option_new)

[?25l[?1c:  [?25h[?0c:       let c.=printf(" Scope: <%s>\n", v:option_type)

[?25l[?1c:  [?25h[?0c:       call setreg('r', printf("%s\n%s", getreg('r'), c))

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"
:let g:options=[['backup', '', '1', 'local']]
: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
:call setbufvar(1, '&l:bk', 1)
: "should trigger, use correct option name
:call setbufvar(1, '&backup', 1)
:let g:testcase="14: Setting number option using setwinvar\n"
:let g:options=[['number', 0, 1, 'local']]
:call setwinvar(0, '&number', 1)[?25h[?0c[?25l[?1c
:[?25h[?0cau OptionSet * :call AutoCommand(expand("<amatch>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="1: Setting number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"
     57 :let g:options=[['backup', '', '1', 'local']]
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
     59 :call setbufvar(1, '&l:bk', 1)
     60 : "should trigger, use correct option name
     61 :call setbufvar(1, '&backup', 1)
     62 :let g:testcase="14: Setting number option using setwinvar\n"
     63 :let g:options=[['number', 0, 1, 'local']]
     64 :call setwinvar(0, '&number', 1)
     65 :" Write register now, because next test shouldn't output anything.
     66 :$put r
     67 :let @r=''
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
     70 :setlocal key=blah
     71 :setlocal key=
     72 :$put =g:testcase
     73 :$put r
     74 :/^dummy text/,$w! test.out
     75 :qa!
     76 ENDTEST
     77 dummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="2: Setting local number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 1, 0, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal nonu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n":let g:options=[['backup', '', '1', 'local']]: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger:call setbufvar(1, '&l:bk', 1): "should trigger, use correct option name:call setbufvar(1, '&backup', 1):let g:testcase="14: Setting number option using setwinvar\n":let g:options=[['number', 0, 1, 'local']]:call setwinvar(0, '&number', 1):" Write register now, because next test shouldn't output anything.:$put r:let @r='':let g:testcase="\n15: Setting key option, shouldn't trigger\n":let g:options=[['key', 'invalid', 'invalid1', 'invalid']]:setlocal key=blah:setlocal key=:$put =g:testcase:$put r:/^dummy text/,$w! test.out:qa!ENDTESTdummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="3: Setting global number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nonu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="4: Setting local autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="5: Setting global autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal ai
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="6: Setting global autoindent option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoindent', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ai!
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c Should not print anything, use :noa
[?25l[?1cE492: Not an editor command: Should not print anything, use :noa[?25h[?0c[?25l[?1c:[?25h[?0cnoa :set nonu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="7: Setting several global list and number option\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list nu
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"$
     57 :let g:options=[['backup', '', '1', 'local']]$
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger$
     59 :call setbufvar(1, '&l:bk', 1)$
     60 : "should trigger, use correct option name$
     61 :call setbufvar(1, '&backup', 1)$
     62 :let g:testcase="14: Setting number option using setwinvar\n"$
     63 :let g:options=[['number', 0, 1, 'local']]$
     64 :call setwinvar(0, '&number', 1)$
     65 :" Write register now, because next test shouldn't output anything.$
     66 :$put r$
     67 :let @r=''$
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"$
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]$
     70 :setlocal key=blah$
     71 :setlocal key=$
     72 :$put =g:testcase$
     73 :$put r$
     74 :/^dummy text/,$w! test.out$
     75 :qa!$
     76 ENDTEST$
     77 dummy text$[?25h[?0c[?25l[?1c:[?25h[?0cnoa set nolist nonu
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n":let g:options=[['backup', '', '1', 'local']]: "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger:call setbufvar(1, '&l:bk', 1): "should trigger, use correct option name:call setbufvar(1, '&backup', 1):let g:testcase="14: Setting number option using setwinvar\n":let g:options=[['number', 0, 1, 'local']]:call setwinvar(0, '&number', 1):" Write register now, because next test shouldn't output anything.:$put r:let @r='':let g:testcase="\n15: Setting key option, shouldn't trigger\n":let g:options=[['key', 'invalid', 'invalid1', 'invalid']]:setlocal key=blah:setlocal key=:$put =g:testcase:$put r:/^dummy text/,$w! test.out:qa!ENDTESTdummy text[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="8: Setting global acd\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autochdir', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal acd
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="9: Setting global autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 0, 1, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="10: Setting local autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal ar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="11: Setting global autoread\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['autoread', 1, 0, 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal invar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="12: Setting option backspace through :let\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['backspace', '', 'eol,indent,start', 'global']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet &bs="eol,indent,start"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="13: Setting option backspace through setbufvar()\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['backup', '', '1', 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c "try twice, first time, shouldn't trigger because option name is invalid, sec

ond time, it should trigger
[?25l[?1c:let g:testcase="13: Setting option backspace through setbufvar()\n"[?25h[?0c[?25l[?1c
:[?25h[?0ccall setbufvar(1, '&l:bk', 1)
[?25l[?1cE355: Unknown option: l:bk[?25h[?0c[?25l[?1c:[?25h[?0c "should trigger, use correct option name
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setbufvar(1, '&backup', 1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="14: Setting number option using setwinvar\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['number', 0, 1, 'local']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setwinvar(0, '&number', 1)
[?25l[?1c     56 :let g:testcase="13: Setting option backspace through setbufvar()\n"
     57 :let g:options=[['backup', '', '1', 'local']]
     58 : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger
     59 :call setbufvar(1, '&l:bk', 1)
     60 : "should trigger, use correct option name
     61 :call setbufvar(1, '&backup', 1)
     62 :let g:testcase="14: Setting number option using setwinvar\n"
     63 :let g:options=[['number', 0, 1, 'local']]
     64 :call setwinvar(0, '&number', 1)
     65 :" Write register now, because next test shouldn't output anything.
     66 :$put r
     67 :let @r=''
     68 :let g:testcase="\n15: Setting key option, shouldn't trigger\n"
     69 :let g:options=[['key', 'invalid', 'invalid1', 'invalid']]
     70 :setlocal key=blah
     71 :setlocal key=
     72 :$put =g:testcase
     73 :$put r
     74 :/^dummy text/,$w! test.out
     75 :qa!
     76 ENDTEST
     77 dummy text[?25h[?0c[?25l[?1c:[?25h[?0c" Write register now, because next test shouldn't output anything.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put r
[?25l[?1c60 more lines117Autocmd Option: <autoread>, OldVal: <0>, NewVal: <1>, Scope: <global>11811910: Setting local autoread    120 Expected: Name: <autoread>, Oldval: <0>, NewVal: <1>, Scope: <local>121Autocmd Option: <autoread>, OldVal: <1>, NewVal: <1>, Scope: <local>12212311: Setting global autoread124Expected: Name: <autoread>, Oldval: <1>, NewVal: <0>, Scope: <global>125Autocmd Option: <autoread>, OldVal: <1>, NewVal: <0>, Scope: <global>12612712: Setting option backspace through :let128Expected: Name: <backspace>, Oldval: <>, NewVal: <eol,indent,start>, Scope: <global>129Autocmd Option: <backspace>, OldVal: <>, NewVal: <eol,indent,start>, Scope: <global>131313: Setting option backspace through setbufvar()13Expected: Name: <backup>, Oldval: <>, NewVal: <1>, Scope: <local>13Autocmd Option: <backup>, OldVal: <0>, NewVal: <1>, Scope: <local>131314: Setting number option using setwinvar13xpected: Name: <number>, Oldval: <0>, NewVal: <1>, Scope: <local>13Autocmd Option: <number>, OldVal: <0>, NewVal: <1>, Scope: <local>[?25h[?0c[?25l[?1c:[?25h[?0clet @r=''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:testcase="\n15: Setting key option, shouldn't trigger\n"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:options=[['key', 'invalid', 'invalid1', 'invalid']]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal key=blah
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal key=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:testcase
[?25l[?1c    138 
    139 15: Setting key option, shouldn't trigger[?25h[?0c[?25l[?1c
:[?25h[?0c$put r
[?25l[?1c
    140 [?25h[?0c[?25l[?1c
:[?25h[?0c/^dummy text/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 64 lines, 2700 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_autocmd_option = test61; then \
#	  if diff test.out test_autocmd_option.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_autocmd_option.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autocmd_option.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autoformat_join.in
[?25h[?8c[?25h[?0c[?25l[?1c"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:[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for setting the '[,'] marks when joining lines.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 9 lines, 265 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^\t\t/
[?25l[?1c[?25h[?0c[?25l[?1cattamen consulite per voster honur.
Tua pulchra facies me fay planszer milies[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet a=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^This line/;'}-join
[?25l[?1cThis line.  Should be joined with the next line and with this line


~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet b=string(getpos("'[")).'/'.string(getpos("']"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='First test: Start/End '.string(a)
[?25l[?1cFirst test: Start/End '[0, 16, 1, 0]/[0, 17, 1, 0]'[?25h[?0c[?25l[?1c:[?25h[?0c$put ='Second test: Start/End '.string(b)
[?25l[?1cSecond test: Start/End '[0, 19, 11, 0]/[0, 19, 67, 0]'[?25h[?0c[?25l[?1c:[?25h[?0c/^\t\t/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 292 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_autoformat_join = test61; then \
#	  if diff test.out test_autoformat_join.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_autoformat_join.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_autoformat_join.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_changelist.failed test.ok test.out X* viminfo
cp test_changelist.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_changelist.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_changelist.in" 22 lines, 288 charactersTest changelist position after splitting window
Set 'undolevels' to make changelist for sourced file

STARTTEST
:so small.vim
Gkylp:set ul=100
Gylp:set ul=100
gg
:vsplit
:try
:  normal g;
:  normal ggVGcpass^[
:catch
:  normal ggVGcfail^[
:finally
:  %w! test.out
:endtry
:qa!
ENDTEST

1
2
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest changelist position after splitting window[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 163 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c

[?25l[?1c11[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c22[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0cvsplit
[?25l[?1c|
 window                                 |
Set 'undolevels' to make changelist for |
sourced file|
             |
STARTTEST       |
:so small.vim  |
Gkylp:set ul=100|
Gylp:set ul=100|
gg  |
:vsplit     |
:try                 |
:  normal g;|pass|
:catch  |
:  normal ggVGcfail^[|
:finally|
:  %w! test.out|
:endtry|
:qa!|
ENDTEST|
  |
test_changelist.in [+]                   Test changelist position after splitting windowSet 'undolevels' to make changelist forsourced fileSTARTTEST:so small.vimGkylp:set ul=100Gylp:set ul=100gg:vsplit:try:  normal g;:  normal ggVGcpass^[:catch:  normal ggVGcfail^[:finally:  %w! test.out:endtry:qa!ENDTESTtest_changelist.in [+]                 [?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  normal g;

[?25l[?1c:  [?25h[?0c:  normal ggVGcpass
[?25l[?1c21 fewer lines
:  

:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:  normal ggVGcfail

[?25l[?1c:  

:  [?25h[?0c:finally

[?25l[?1c:  [?25h[?0c:  %w! test.out

[?25l[?1c"test.out" [New File] 1 line, 5 characters written

:  [?25h[?0c:endtry
[?25l[?1cpass||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                          pass~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                      ~                                         [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_changelist = test61; then \
#	  if diff test.out test_changelist.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_changelist.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_changelist.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_close_count.failed test.ok test.out X* viminfo
cp test_close_count.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_close_count.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_close_count.in" 153 lines, 2665 charactersTests for :[count]close! and :[count]hide     vim: set ft=vim :

STARTTEST
:so small.vim
:let tests = []
:for i in range(5)
:new
:endfor
:4wincmd w
:close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:$close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1wincmd w
:2close![?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for :[count]close! and :[count]hide     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 41 lines, 749 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:call add(tests, buffers)
:2wincmd w
:+1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(0, map(copy(tests), 'join(v:val, " ")'))
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:for i in range(5)
:new
:endfor
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:4wincmd w
:.hide[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cclose!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?25h[?0c[?25l[?1c


:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c-1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c+1close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File]test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5[+][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 7 lines, 39 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 15 4 25 27 5 27 5~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c"test_close_count.in" 153 lines, 2665 characters:2wincmd w
:+1close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(0, map(copy(tests), 'join(v:val, " ")'))
:w:only!:b1ENDTESTSTARTTEST:let tests = []:for i in range(5):new:endfor:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers):4wincmd w:.hide:let buffers = [][?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 44 lines, 815 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:2wincmd w
:+hide
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new
:endfor
:1wincmd w
:$ hide
:let buffers = []
:windo call add(buffers, bufnr('%'))[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c.hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :b1
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :only!
:b1
ENDTEST

STARTTEST
test_close_count.in                                                             [?25h[?0c[?25l[?1c


:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c2hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c-hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c+hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 7 lines, 39 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c13 12 11 10 9 113 12 11 9 112 11 9 112 11 9[+][?25h[?0c[?25l[?1c12 9
15 12 9
15 12[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0cw
[?25l[?1c"test.out" 15 lines, 106 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 15 4 25 27 5 27 513 12 11 10 9 113 12 11 9 112 11 9 112 11 912 915 12 9
15 12~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c:+hide:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w:only!:b1ENDTESTSTARTTEST
:let tests = []
:set hidden
:for i in range(5):new:endfor:1wincmd w:$ hide:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers)"test_close_count.in" line 93 of 153 --60%-- col 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 25 lines, 448 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:1wincmd w
:.+close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w
:only!
:b1
ENDTEST

STARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new
:endfor
:4wincmd w
^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$ hide
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$-1 close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0c.+close!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 15 lines, 106 characters6 5 4 2 1
5 4 2 15 4 25 27 5 27 5test.out [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c[+][?25h[?0c[?25l[?1c15 12 915 120 19 18 17 16
20 19 18 16
20 18 16
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0cw
[?25l[?1c"test.out" 19 lines, 143 characters written   [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c6 5 4 2 1
5 4 2 1
5 4 2
5 2
7 5 2
7 5

13 12 11 10 9 1
13 12 11 9 1
12 11 9 1
12 11 9
12 9
15 12 9
15 12

20 19 18 17 16
20 19 18 16
20 18 16

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cb1
[?25l[?1c:.+close!
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
Go^[
:w:only!:b1ENDTESTSTARTTEST
:let tests = []
:set hidden
:for i in range(5)
:new:endfor:4wincmd w
^Wc:let buffers = []:windo call add(buffers, bufnr('%')):call add(tests, buffers)"test_close_count.in" line 121 of 153 --79%-- col 1[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 28 lines, 511 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST1^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
9^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:1wincmd w
2^Wc
:let buffers = []
:windo call add(buffers, bufnr('%'))
:call add(tests, buffers)
:only!
:e! test.out
:call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0clet tests = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor i in range(5)
[?25l[?1c
:  [?25h[?0c:new

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0c4wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       test_close_count.in                                                             [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call append(line('$'), map(copy(tests), 'join(v:val, " ")'))
:w
:qa!
ENDTEST

test_close_count.in                                                             [?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c

:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c1wincmd w
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet buffers = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwindo call add(buffers, bufnr('%'))
[?25l[?1c[No Name]                                                                       [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall add(tests, buffers)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" line 19 of 19 --100%-- col 16 5 4 2 1
5 4 2 15 4 25 27 5 27 513 12 11 10 9 113 12 11 9 112 11 9 112 11 912 915 12 915 1220 19 18 17 1620 19 18 1620 18 16[?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), map(copy(tests), 'join(v:val, " ")'))
[?25l[?1c25 24 23 21 124 23 21 124 23 2124 21[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 23 lines, 183 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_close_count = test61; then \
#	  if diff test.out test_close_count.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_close_count.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_close_count.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_comparators.failed test.ok test.out X* viminfo
cp test_comparators.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_comparators.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_comparators.in" 21 lines, 283 characters" Test for expression comparators.   vim: set ft=vim :


STARTTEST
:so small.vim
:try
:  let oldisident=&isident
:  set isident+=#
:  if 1 is#1
:    $put ='ok'
:  else
:    $put ='ng'
:  endif
:finally
:  let &isident=oldisident
:endtry
:"
:/^marker/+1,$wq! test.out
ENDTEST

marker
~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c" Test for expression comparators.   vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 14 lines, 200 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:  let oldisident=&isident

[?25l[?1c:  [?25h[?0c:  set isident+=#

[?25l[?1c:  [?25h[?0c:  if 1 is#1

[?25l[?1c:    [?25h[?0c:    $put ='ok'

[?25l[?1c:    [?25h[?0c:  else

[?25l[?1c:    [?25h[?0c:    $put ='ng'

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:finally

[?25l[?1c:  [?25h[?0c:  let &isident=oldisident

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c" Test for expression comparators.   vim: set ft=vim :


STARTTEST
:so small.vim
:try
:  let oldisident=&isident
:  set isident+=#
:  if 1 is#1
:    $put ='ok'ok[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^marker/+1,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1 line, 3 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_comparators = test61; then \
#	  if diff test.out test_comparators.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_comparators.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_comparators.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_erasebackword.failed test.ok test.out X* viminfo
cp test_erasebackword.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_erasebackword.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_erasebackword.in" 19 lines, 427 charactersTest for erasing backword

STARTTEST
:so small.vim
:so mbyte.vim
:set encoding=utf-8
G
:/^test/,$w! test.out
:qa!
ENDTEST

test starts here:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for erasing backword[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 12 lines, 362 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest for erasing backword

STARTTEST
:so small.vim
:so mbyte.vim
:set encoding=utf-8
G
o wwwこんにちわ世界ワールドvim ^W^[
o wwwこんにちわ世界ワールドvim ^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^W^[
o wwwこんにちわ世界ワールドvim ^W^W^W^W^W^W^[
:/^test/,$w! test.out
:qa!
ENDTEST

test starts here:

~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c

[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1cド[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
 www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
www[?25h[?0c[?25l[?1cこ[?25h[?0c[?25l[?1cん[?25h[?0c[?25l[?1cに[?25h[?0c[?25l[?1cち[?25h[?0c[?25l[?1cわ[?25h[?0c[?25l[?1c世[?25h[?0c[?25l[?1c界[?25h[?0c[?25l[?1cワ[?25h[?0c[?25l[?1cー[?25h[?0c[?25l[?1cル[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
:[?25h[?0c/^test/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 8 lines, 111 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_erasebackword = test61; then \
#	  if diff test.out test_erasebackword.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_erasebackword.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_erasebackword.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_eval.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_eval.in" 247 lines, 6201 charactersTest for various eval features.   vim: set ft=vim :

Note: system clipboard is saved, changed and restored.

clipboard contents
something else

STARTTEST
:so small.vim
:set encoding=latin1
:set noswapfile
:lang C
:fun AppendRegContents(reg)
  call AppendRegParts(a:reg, getregtype(a:reg), getreg(a:reg), string(getreg(a:reg, 0, 1)), getreg(a:reg, 1), string(getreg(a:reg, 1, 1)))
:endfun
:fun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
  call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)', a:reg, a:type, a:cont, a:strcont, a:cont1, a:strcont1))
endfun
:command -nargs=? AR :call AppendRegContents(<q-args>)
:fun SetReg(...)
    call call('setreg', a:000)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for various eval features.   vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 233 lines, 6010 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=latin1
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun AppendRegContents(reg)
[?25l[?1c
:  [?25h[?0c  call AppendRegParts(a:reg, getregtype(a:reg), getreg(a:reg), string(getreg

(a:reg, 0, 1)), getreg(a:reg, 1), string(getreg(a:reg, 1, 1)))

[?25l[?1c:  [?25h[?0c:endfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n[?25h[?0c[?25l[?1c:[?25h[?0cfun AppendRegParts(reg, type, cont, strcont, cont1, strcont1)
[?25l[?1c
:  [?25h[?0c  call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)', a:re

g, a:type, a:cont, a:strcont, a:cont1, a:strcont1))

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n[?25h[?0c[?25l[?1c:[?25h[?0ccommand -nargs=? AR :call AppendRegContents(<q-args>)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun SetReg(...)
[?25l[?1c
:  [?25h[?0c    call call('setreg', a:000)

[?25l[?1c:  [?25h[?0c    call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))

[?25l[?1c:  [?25h[?0c    call AppendRegContents(a:1)

[?25l[?1c:  [?25h[?0c    if a:1 isnot# '='

[?25l[?1c:    [?25h[?0c        execute "silent normal! Go==\n==\e\"".a:1."P"

[?25l[?1c:    [?25h[?0c    endif

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?25h[?0c[?25l[?1c:[?25h[?0cfun ErrExe(str)
[?25l[?1c
:  [?25h[?0c    call append('$', 'Executing '.a:str)

[?25l[?1c:  [?25h[?0c    try

[?25l[?1c:    [?25h[?0c        execute a:str

[?25l[?1c:    [?25h[?0c    catch

[?25l[?1c:    [?25h[?0c        $put =v:exception

[?25l[?1c:    [?25h[?0c    endtry

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn][?25h[?0c[?25l[?1c:[?25h[?0cfun Test()
[?25l[?1c
:  [?25h[?0c$put ='{{{1 let tests'

[?25l[?1c:  [?25h[?0clet @" = 'abc'

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @" = "abc\n"

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @" = "abc\<C-m>"

[?25l[?1c:  [?25h[?0cAR "

[?25l[?1c:  [?25h[?0clet @= = '"abc"'

[?25l[?1c:  [?25h[?0cAR =

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Basic setreg tests'

[?25l[?1c:  [?25h[?0ccall SetReg('a', 'abcA', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcB', 'v')

[?25l[?1c:  [?25h[?0ccall SetReg('c', 'abcC', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('d', 'abcD', 'V')

[?25l[?1c:  [?25h[?0ccall SetReg('e', 'abcE', 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('f', 'abcF', "\<C-v>")

[?25l[?1c:  [?25h[?0ccall SetReg('g', 'abcG', 'b10')

[?25l[?1c:  [?25h[?0ccall SetReg('h', 'abcH', "\<C-v>10")

[?25l[?1c:  [?25h[?0ccall SetReg('I', 'abcI')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending single lines with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAc', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('A', 'abcAc2','c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBc', 'ca')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBb', 'ba')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBc2','ca')

[?25l[?1c:  [?25h[?0ccall SetReg('b', 'abcBb2','b50a')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('C', 'abcCl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('C', 'abcCc', 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('D', 'abcDb', 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('E', 'abcEb', 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('E', 'abcEl', 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('F', 'abcFc', 'c')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending NL with setreg()'

[?25l[?1c:  [?25h[?0ccall setreg('a', 'abcA2', 'c')

[?25l[?1c:  [?25h[?0ccall setreg('b', 'abcB2', 'v')

[?25l[?1c:  [?25h[?0ccall setreg('c', 'abcC2', 'l')

[?25l[?1c:  [?25h[?0ccall setreg('d', 'abcD2', 'V')

[?25l[?1c:  [?25h[?0ccall setreg('e', 'abcE2', 'b')

[?25l[?1c:  [?25h[?0ccall setreg('f', 'abcF2', "\<C-v>")

[?25l[?1c:  [?25h[?0ccall setreg('g', 'abcG2', 'b10')

[?25l[?1c:  [?25h[?0ccall setreg('h', 'abcH2', "\<C-v>10")

[?25l[?1c:  [?25h[?0ccall setreg('I', 'abcI2')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('A', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('B', "\n", 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('D', "\n", 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('E', "\n")

[?25l[?1c:  [?25h[?0ccall SetReg('F', "\n", 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Setting lists with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('a', ['abcA3'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB3'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('c', ['abcC3'], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('d', ['abcD3'])

[?25l[?1c:  [?25h[?0ccall SetReg('e', [1, 2, 'abc', 3])

[?25l[?1c:  [?25h[?0ccall SetReg('f', [1, 2, 3])

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending lists with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', ['abcA3c'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB3l'], 'la')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ['abcC3b'], 'lb')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ['abcD32'])

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0ccall SetReg('A', ['abcA32'])

[?25l[?1c:  [?25h[?0ccall SetReg('B', ['abcB3c'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ['abcC3l'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ['abcD3b'], 'b')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Appending lists with NL with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('A', ["\n", 'abcA3l2'], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('B', ["\n", 'abcB3c2'], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('C', ["\n", 'abcC3b2'], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('D', ["\n", 'abcD3b50'],'b50')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Setting lists with NLs with setreg()'

[?25l[?1c:  [?25h[?0ccall SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4

-4-2"])

[?25l[?1c:  [?25h[?0ccall SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\na

bcB4c-4-2"], 'c')

[?25l[?1c:  [?25h[?0ccall SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\na

bcC4l-4-2"], 'l')

[?25l[?1c:  [?25h[?0ccall SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\na

bcD4b-4-2"], 'b')

[?25l[?1c:  [?25h[?0ccall SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4

b10-4\nabcE4b10-4-2"], 'b10')

[?25l[?1c:  [?25h[?0c

[?25l[?1c:  [?25h[?0c$put ='{{{1 Search and expressions'

[?25l[?1c:  [?25h[?0ccall SetReg('/', ['abc/'])

[?25l[?1c:  [?25h[?0ccall SetReg('/', ["abc/\n"])

[?25l[?1c:  [?25h[?0ccall SetReg('=', ['"abc/"'])

[?25l[?1c:  [?25h[?0ccall SetReg('=', ["\"abc/\n\""])

[?25l[?1c:  [?25h[?0c$put ='{{{1 System clipboard'

[?25l[?1c:  [?25h[?0cif has('clipboard')

[?25l[?1c:    [?25h[?0c" Save and restore system clipboard.

[?25l[?1c:    [?25h[?0c" If no connection to X-Server is possible, test should succeed.

[?25l[?1c:    [?25h[?0clet _clipreg = ['*', getreg('*'), getregtype('*')]

[?25l[?1c:    [?25h[?0clet _clipopt = &cb

[?25l[?1c:    [?25h[?0clet &cb='unnamed'

[?25l[?1c:    [?25h[?0c5y

[?25l[?1c:    [?25h[?0cAR *

[?25l[?1c:    [?25h[?0ctabdo :windo :echo "hi"

[?25l[?1c:    [?25h[?0c6y

[?25l[?1c:    [?25h[?0cAR *

[?25l[?1c:    [?25h[?0clet &cb=_clipopt

[?25l[?1c:    [?25h[?0ccall call('setreg', _clipreg)

[?25l[?1c:    [?25h[?0celse

[?25l[?1c:    [?25h[?0c  call AppendRegParts('*', 'V', "clipboard contents\n", "['clipboard conte

nts']", "clipboard contents\n", "['clipboard contents']")

[?25l[?1c:    [?25h[?0c  call AppendRegParts('*', 'V', "something else\n", "['something else']", 

"something else\n", "['something else']")

[?25l[?1c:    [?25h[?0cendif

[?25l[?1c:  [?25h[?0c$put ='{{{1 Errors'

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg()')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, 2, 3, 4)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg([], 2)')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, {})')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, 2, [])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg("/", ["1", "2"])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg("=", ["1", "2"])')

[?25l[?1c:  [?25h[?0ccall ErrExe('call setreg(1, ["", "", [], ""])')

[?25l[?1c:  [?25h[?0cendfun
[?25l[?1c:$put =str[:n]
:$put =str[n:n]
:unlet n
:let nn = 3
:$put =str[nn:]
:$put =str[:nn]
:$put =str[nn:nn]
:unlet nn
:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Test()
[?25l[?1chi*: type V; value: something else^@ (['something else']), expr: something else^@
(['something else'])
{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)
Vim(call):E118: Too many arguments for function: setreg
Executing call setreg([], 2)
Vim(call):E730: using List as a String
Executing call setreg(1, {})
Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction SetReg
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction AppendRegContents
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction ErrExe
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction Test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelcommand AR
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name not starting with capital
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! g:test()

[?25l[?1c:  [?25h[?0c:echo "test"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)8: Too many arguments for function: setreg[], 2)730: using List as a String1, {}1Dictionary as a String2, [])0List as a String"/", ["1", "2"])883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])Vim(call):E730: using List as a String
Vim(function):E128: Function name must start with a capital or "s:": g:test()
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name includes a colon
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! b:test()

[?25l[?1c:  [?25h[?0c:echo "test"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1c{{{1 Errors
Executing call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)Vim(function):E128: Function name must start with a capital or "s:": b:test()[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name folowed by #
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c:func! test2() "#

[?25l[?1c:  [?25h[?0c:echo "test2"

[?25l[?1c:  [?25h[?0c:endfunc

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1cExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1)
Vim(call):E119: Not enough arguments for function: setreg
Executing call setreg(1, 2, 3, 4)
Vim(call):E118: Too many arguments for function: setreg
Executing call setreg([], 2)Vim(call):E730: using List as a String
Executing call setreg(1, {})Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a Stringfunction):E128: Function name must start with a capital or "s:": g:test()btest2() "#[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" function name starting with/without "g:", buffer-local funcref.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! g:Foo(n)
[?25l[?1c
:  [?25h[?0c:  $put ='called Foo(' . a:n . ')'

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cExecuting call setreg()
Vim(call):E119: Not enough arguments for function: setreg[?25h[?0c[?25l[?1c
:[?25h[?0clet b:my_func = function('Foo')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall b:my_func(1)
[?25l[?1c
called Foo(1)[?25h[?0c[?25l[?1c
:[?25h[?0cecho g:Foo(2)
[?25l[?1c0
called Foo(2)[?25h[?0c[?25l[?1c
:[?25h[?0cecho Foo(3)
[?25l[?1c0
called Foo(3)[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" script-local function used in Funcref must exist.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso test_eval_func.vim
[?25l[?1cs:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Using $ instead of '$' must give an error
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctry
[?25l[?1c
:  [?25h[?0c: call append($, 'foobar')

[?25l[?1c:  [?25h[?0c:catch

[?25l[?1c:  [?25h[?0c:$put =v:exception

[?25l[?1c:  [?25h[?0c:endtry
[?25l[?1cExecuting call setreg(1, {})
Vim(call):E731: using Dictionary as a String
Executing call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more linesExecuting call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a Stringfunction):E128: Function name must start with a capital or "s:": g:test()btest2() "#
called Foo(123
s:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1func Bar exists: 1
Vim(call):E116: Invalid arguments for function append[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put ='{{{1 getcurpos/setpos'
[?25l[?1c
{{{1 getcurpos/setpos[?25h[?0c[?25l[?1c
/[?25h[?0c^012345678
[?25l[?1csearch hit BOTTOM, continuing at TOP:let b:nn = 4
:$put =str[b:nn:]
:$put =str[:b:nn]
:$put =str[b:nn:b:nn]
:unlet b:nn
:"
:/^start:/+1,$wq! test.out
:" vim: et ts=4 isk-=\: fmr=???,???
:call getchar()
ENDTEST

012345678
012345678

start:
{{{1 let tests
": type v; value: abc (['abc']), expr: abc (['abc'])
": type V; value: abc^@ (['abc']), expr: abc^@ (['abc'])
": type V; value: abc^M^@ (['abc^M']), expr: abc^M^@ (['abc^M'])
=: type v; value: abc (['abc']), expr: "abc" (['"abc"'])
{{{1 Basic setreg tests
{{{2 setreg('a', 'abcA', 'c')
a: type v; value: abcA (['abcA']), expr: abcA (['abcA'])
search hit BOTTOM, continuing at TOP[?25h[?0c012345[?25l[?1c:[?25h[?0clet sp = getcurpos()
[?25l[?1c[?25h[?0c
[?25l[?1c:[?25h[?0ccall setpos('.', sp)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put
[?25l[?1cExecuting call setreg(1, 2, [])
Vim(call):E730: using List as a String
Executing call setreg("/", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg("=", ["1", "2"])
Vim(call):E883: search pattern and expression register may not contain two or more lines
Executing call setreg(1, ["", "", [], ""])
Vim(call):E730: using List as a String
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:": b:test()
Vim(function):E128: Function name must start with a capital or "s:": test2() "#
called Foo(1)
called Foo(2)
called Foo(3)
s:Testje exists: 0
func s:Testje exists: 1
Bar exists: 1
func Bar exists: 1
Vim(call):E116: Invalid arguments for function append
{{{1 getcurpos/setpos
6[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" substring and variable name
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet str = 'abcdef'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet n = 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[n:]
[?25l[?1c
def[?25h[?0c[?25l[?1c
:[?25h[?0c$put =str[:n]
[?25l[?1c
abcd[?25h[?0c[?25l[?1c
:[?25h[?0c$put =str[n:n]
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0cunlet n
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet nn = 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[nn:]
[?25l[?1cdef
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put =str[:nn]
[?25l[?1cabcd[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[nn:nn]
[?25l[?1c
d[?25h[?0c[?25l[?1c
:[?25h[?0cunlet nn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet b:nn = 4
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[b:nn:]
[?25l[?1cef
~                                                                               [?25h[?0c[?25l[?1c

:[?25h[?0c$put =str[:b:nn]
[?25l[?1cabcde[?25h[?0c[?25l[?1c:[?25h[?0c$put =str[b:nn:b:nn]
[?25l[?1c
e[?25h[?0c[?25l[?1c
:[?25h[?0cunlet b:nn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/+1,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 362 lines, 11279 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_eval = test61; then \
#	  if diff test.out test_eval.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_eval.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_eval.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_fixeol.failed test.ok test.out X* viminfo
cp test_fixeol.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_fixeol.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_fixeol.in" 40 lines, 780 charactersTests for 'fixeol'vim: set ft=vim :

STARTTEST
:" use Unix fileformat for consistency
:set ff=unix
:enew!
awith eol^[:w! XXEol
:enew!
:set noeol nofixeol
awithout eol^[:w! XXNoEol
:set eol fixeol
:bwipe XXEol XXNoEol
:"
:" try editing files with 'fixeol' disabled
:e! XXEol
ostays eol^[:set nofixeol
:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol
:w! XXTestNoEol
:bwipe XXEol XXNoEol XXTestEol XXTestNoEol
:set fixeol[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'fixeol'vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 35 lines, 698 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" Append "END" to each file so that we can see what the last written char was.
ggdGaEND^[:w >>XXEol
:w >>XXNoEol
:w >>XXTestEol
:w >>XXTestNoEol
:"
:" Concatenate the results
:e! test.out
a0^[:$r XXEol
:$r XXNoEol
Go1^[:$r XXTestEol
:$r XXTestNoEol
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
2 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol:w! XXTestNoEol:bwipe XXEol XXNoEol XXTestEol XXTestNoEol:set fixeol:":" Append "END" to each file so that we can see what the last written char was.ggdGaEND^[:w >>XXEol:w >>XXNoEol:w >>XXTestEol:w >>XXTestNoEol:":" Concatenate the results:e! test.outa0^[:$r XXEol:$r XXNoEolGo1^[:$r XXTestEol:$r XXTestNoEol:w:qa!ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0c" try editing files with 'fixeol' disabled
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" 1 line, 9 characterswith eol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c
stays eol[?25h[?0c[?25l[?1c:[?25h[?0cset nofixeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! XXTestEol
[?25l[?1c"XXTestEol" [New File] 2 lines, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXNoEol
[?25l[?1c"XXNoEol" [Incomplete last line] 1 line, 11 charactersout eol
~                                                                               [?25h[?0c[?25l[?1c
stays without[?25h[?0c[?25l[?1c:[?25h[?0cset nofixeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! XXTestNoEol
[?25l[?1c"XXTestNoEol" [New File][Incomplete last line] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol XXNoEol XXTestEol XXTestNoEol
[?25l[?1c"test_fixeol.in" 40 lines, 780 characters

4 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fixeol
[?25l[?1c:w! XXTestEol
:e! XXNoEol
ostays without^[:set nofixeol:w! XXTestNoEol:bwipe XXEol XXNoEol XXTestEol XXTestNoEol:set fixeol:":" Append "END" to each file so that we can see what the last written char was.ggdGaEND^[:w >>XXEol:w >>XXNoEol:w >>XXTestEol:w >>XXTestNoEol:":" Concatenate the results:e! test.outa0^[:$r XXEol:$r XXNoEolGo1^[:$r XXTestEol:$r XXTestNoEol:w:qa!ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Append "END" to each file so that we can see what the last written char was.
[?25l[?1c[?25h[?0c[?25l[?1cTests for 'fixeol'vim: set ft=vim :

STARTTEST
:" use Unix fileformat for consistency
:set ff=unix
:enew!
awith eol^[:w! XXEol
:enew!
:set noeol nofixeol
awithout eol^[:w! XXNoEol
:set eol fixeol
:bwipe XXEol XXNoEol
:"
:" try editing files with 'fixeol' disabled
:e! XXEol
ostays eol^[:set nofixeol[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cEND[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXEol
[?25l[?1c"XXEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXNoEol
[?25l[?1c"XXNoEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXTestEol
[?25l[?1c"XXTestEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXTestNoEol
[?25l[?1c"XXTestNoEol" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Concatenate the results
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File][?25h[?0c[?25l[?1c0[?25h[?0c[?25l[?1c:[?25h[?0c$r XXEol
[?25l[?1c"XXEol" 2 lines, 13 characterswith eolEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXNoEol
[?25l[?1c"XXNoEol" 1 line, 15 characterswithout eolEND[?25h[?0c[?25l[?1c
1[?25h[?0c[?25l[?1c:[?25h[?0c$r XXTestEol
[?25l[?1c"XXTestEol" 3 lines, 23 characterswith eolstays eolEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXTestNoEol
[?25l[?1c"XXTestNoEol" 2 lines, 29 characterswithout eolstays withoutEND[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 10 lines, 84 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_fixeol = test61; then \
#	  if diff test.out test_fixeol.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_fixeol.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_fixeol.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_getcwd.failed test.ok test.out X* viminfo
cp test_getcwd.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_getcwd.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_getcwd.in" 96 lines, 2374 charactersTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :

STARTTEST
:so small.vim
:" Do all test in a separate window to avoid E211 when we recursively
:" delete the Xtopdir directory during cleanup
:"
:" This will cause a few errors, do it silently.
:set visualbell
:set nocp viminfo+=nviminfo
:"
:" On windows a swapfile in Xtopdir prevents it from being cleaned up.
:set noswapfile
:"
:function! GetCwdInfo(win, tab)
: let tab_changed = 0
: let mod = ":t"
: if a:tab > 0 && a:tab != tabpagenr()
:   let tab_changed = 1
:   exec "tabnext " . a:tab
: endif
: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)
: if tab_changed[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for getcwd(), haslocaldir(), and :lcdvim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 90 lines, 2273 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:wincmd W
:lcd Xdir2
:call add(r, GetCwdInfo(0, 0))
:wincmd W
:lcd Xdir3
:call add(r, GetCwdInfo(0, 0))
:call add(r, GetCwdInfo(bufwinnr("x"), 0))
:call add(r, GetCwdInfo(bufwinnr("y"), 0))
:call add(r, GetCwdInfo(bufwinnr("z"), 0))
:let tp_nr = tabpagenr()
:tabrewind
:call add(r, GetCwdInfo(3, tp_nr))
:call add(r, GetCwdInfo(2, tp_nr))
:call add(r, GetCwdInfo(1, tp_nr))
:"
:call writefile(r, test_out, "a")
:q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Do all test in a separate window to avoid E211 when we recursively
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" delete the Xtopdir directory during cleanup
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" This will cause a few errors, do it silently.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" On windows a swapfile in Xtopdir prevents it from being cleaned up.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! GetCwdInfo(win, tab)
[?25l[?1c
:  [?25h[?0c: let tab_changed = 0

[?25l[?1c:  [?25h[?0c: let mod = ":t"

[?25l[?1c:  [?25h[?0c: if a:tab > 0 && a:tab != tabpagenr()

[?25l[?1c:    [?25h[?0c:   let tab_changed = 1

[?25l[?1c:    [?25h[?0c:   exec "tabnext " . a:tab

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)

[?25l[?1c:  [?25h[?0c: if tab_changed

[?25l[?1c:    [?25h[?0c:   tabprevious

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: if a:win == 0 && a:tab == 0

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir()

[?25l[?1c:    [?25h[?0c: elseif a:tab == 0

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(a:win), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir(a:win)

[?25l[?1c:    [?25h[?0c: else

[?25l[?1c:    [?25h[?0c:   let dirname = fnamemodify(getcwd(a:win, a:tab), mod)

[?25l[?1c:    [?25h[?0c:   let lflag = haslocaldir(a:win, a:tab)

[?25l[?1c:    [?25h[?0c: endif

[?25l[?1c:  [?25h[?0c: return bufname . ' ' . dirname . ' ' . lflag

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:wincmd W
:lcd Xdir2
:call add(r, GetCwdInfo(0, 0))
:wincmd W
:lcd Xdir3
:call add(r, GetCwdInfo(0, 0))
:call add(r, GetCwdInfo(bufwinnr("x"), 0))
:call add(r, GetCwdInfo(bufwinnr("y"), 0))
:call add(r, GetCwdInfo(bufwinnr("z"), 0))
:let tp_nr = tabpagenr()
:tabrewind
:call add(r, GetCwdInfo(3, tp_nr))
:call add(r, GetCwdInfo(2, tp_nr))
:call add(r, GetCwdInfo(1, tp_nr))
:"
:call writefile(r, test_out, "a")
:q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST
[?25h[?0c[?25l[?1c

:[?25h[?0c" On windows a stale "Xtopdir" directory may exist, remove it so that
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" we start from a clean state.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xtopdir", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet r=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       test_getcwd.in                                                                  [?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet test_out = cwd . '/test.out'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xtopdir')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd Xtopdir
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/<<PKGBUILDDIR>>/src/vim-athena/testdir/test_getcwd.in[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir1')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir2')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall mkdir('Xdir3')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew a
[?25l[?1c"a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :q
:exec "cd " . cwd
:call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-athena/testdir/test_getcwd.in            [?25h[?0c[?25l[?1c:[?25h[?0cnew b
[?25l[?1c"b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :call delete("Xtopdir", "rf")
:qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-athena/testdir/test_getcwd.in            [?25h[?0c[?25l[?1c:[?25h[?0cnew c
[?25l[?1c"c" [New File]~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :qa!
ENDTEST

/<<PKGBUILDDIR>>/src/vim-athena/testdir/test_getcwd.in            [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1cc                                                                               a                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir1
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/Xdir1/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/b/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/a[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                              b                                                                               a                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                                               b                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir3
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/Xdir3/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/b/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/a[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("a"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("b"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("c"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cc                                                                               b                                                              a                                                              /<<PKGBUILDDIR>>/src/vim-athena/testdir/test_getcwd.in            [?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("a"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("b"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("c"), tabpagenr()))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabnew x
[?25l[?1c"x" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  x                                               X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew y
[?25l[?1c"y" [New File]2y  Xy                                                                               x                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew z
[?25l[?1c"z" [New File] 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               z                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               y                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               x                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c3wincmd w
[?25l[?1cz                                                                               x                                                                               x X[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cy                                                                               x                                                                               y X[?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir2
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/Xdir2/b/v/v/s/v/t/X/y  X/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/z/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/y/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/x[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwincmd W
[?25l[?1cz                 Xz                                                                               y                                                                               x                                                              [?25h[?0c[?25l[?1c:[?25h[?0clcd Xdir3
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/Xdir3/b/v/v/s/v/t/X/z  X/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/z/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/y/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtopdir/x[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(0, 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("x"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("y"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall add(r, GetCwdInfo(bufwinnr("z"), 0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tp_nr = tabpagenr()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctabrewind
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-athena/testdir/test_getcwd.in            [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(3, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-athena/testdir/test_getcwd.in            [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(2, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-athena/testdir/test_getcwd.in            [?25h[?0c[?25l[?1c

:[?25h[?0ccall add(r, GetCwdInfo(1, tp_nr))
[?25l[?1c 5 /b/v/v/s/v/t/test_getcwd.in  3 z                                             X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       ENDTEST

/<<PKGBUILDDIR>>/src/vim-athena/testdir/test_getcwd.in            [?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall writefile(r, test_out, "a")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c 4 [No Name]  3 z                                                               X~                                                                               ~                                                                               ~                                                                               c                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               b                                                                               ~                                                                               ~                                                                               ~                                                                               a                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0cexec "cd " . cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdirX/z  XXtopdir/cXtopdir/bXtopdir/a
[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xtopdir", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_getcwd = test61; then \
#	  if diff test.out test_getcwd.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_getcwd.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_getcwd.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_insertcount.failed test.ok test.out X* viminfo
cp test_insertcount.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_insertcount.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_insertcount.in" 14 lines, 204 charactersTests for repeating insert and replace.

STARTTEST
:so small.vim
:/Second
4gro
:/^First/,$wq! test.out
:" get here when failed and in Insert mode
^[:.wq! test.out
ENDTEST

First line
Second line
Last line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for repeating insert and replace.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 111 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/Second
[?25l[?1c[?25h[?0c[?25l[?1cooooecond line
ooo[?25h[?0c
Las[?25l[?1c:[?25h[?0c/^First/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 3 lines, 36 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_insertcount = test61; then \
#	  if diff test.out test_insertcount.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_insertcount.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_insertcount.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listchars.failed test.ok test.out X* viminfo
cp test_listchars.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listchars.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listchars.in" 54 lines, 705 charactersTests for 'listchars' display with 'list' and :list

STARTTEST
:so small.vim
:set ff=unix
:let g:lines = []
:function GetScreenCharsForLine(lnum)
:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val))'), '')
:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\<CR>"
:set listchars+=tab:>-,space:.,trail:<
:set list
:
/^start:/
:normal! jzt
GG
GG
GG
GG
GGH:
:set listchars-=trail:<[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'listchars' display with 'list' and :list[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 25 lines, 431 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTGG
GG
GG
GG
GG:
:put =g:lines
:'[,']w! test.out
ENDTEST[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:lines = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction GetScreenCharsForLine(lnum)
[?25l[?1c
:  [?25h[?0c:  return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val

))'), '')

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:endfunction
:nnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\<CR>"[?25h[?0c[?25l[?1c
:[?25h[?0cnnoremap <expr> GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))

\<CR>"
[?25l[?1c:endfunction[?25h[?0c[?25l[?1c
:[?25h[?0cset listchars+=tab:>-,space:.,trail:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list
[?25l[?1c$.<expr>.GG.":call..$
:set.$
:set.list$
:$$.jzt$
GG$
GG$
GG$
GG$
GGH:$
:set.$
GG$
GG$
GG$
GG$
GG:$
:put.$.$$
$[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c
start:$[?25h[?0c[?25l[?1c
:[?25h[?0cnormal! jzt
[?25l[?1c>-------aa>-----$
..bb>---<<$
...cccc><$
dd........ee<<>-$
<$
$
$
STARTTEST$
:set.listchars+=trail:<$
:set.nolist$
:$
/^start:/$
:redir!.>>.test.out$
:+1,$list$
:redir.END$
:q!$
ENDTEST$
$
start:$
..fff>--<<$
>-------gg>-----$
.....h>-$
iii<<<<><<$[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(1))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(2))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(3))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(4))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(5))
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset listchars-=trail:<
[?25l[?1c.....
.......>..[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(1))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(2))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(3))
[?25h[?0c[?25l[?1c:call add(g:lines, GetScreenCharsForLine(4))
[?25h[?0c
[?25l[?1c:call add(g:lines, GetScreenCharsForLine(5))
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cput =g:lines
[?25l[?1c10 more >-------aa>-----$$
..bb>---<<$$
...cccc><$$
dd........ee<<>-$$
<$$
>-------aa>-----$$
..bb>---..$$
...cccc>.$$
dd........ee..>-$$
.$$10 more lines[?25h[?0c[?25l[?1c:[?25h[?0c'[,']w! test.out
[?25l[?1c"test.out" [New File] 10 lines, 124 characters written[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 8 lines, 93 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:+1,$list$
:redir.END$
:q!$
ENDTEST$[?25h[?0c[?25l[?1c
$[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cset listchars+=trail:<
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nolist
[?25l[?1c   >>  [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^start:/
[?25l[?1c
start:[?25h[?0c[?25l[?1c
:[?25h[?0credir! >> test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c+1,$list
[?25l[?1c..fff>--<<$

>-------gg>-----$

.....h>-$

iii<<<<><<$

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c>-------aa>-----$
..bb>---..$
...cccc>.$
dd........ee..>-$
.$STARTTEST:set listchars+=trail:<
:set nolist
:
/^start:/
:redir! >> test.out+1,$listredir END
:q!ENDTESTstart:  fff
        ggh
iii   [?25h[?0c[?25l[?1c
:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listchars = test61; then \
#	  if diff test.out test_listchars.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listchars.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listchars.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listlbr.failed test.ok test.out X* viminfo
cp test_listlbr.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listlbr.in" 119 lines, 2868 charactersTest for linebreak and list option (non-utf8)

STARTTEST
:so small.vim
:if !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |
endif
:10new|:vsp|:vert resize 20
:put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width)
:let c=''
:for j in range(1,4)
:for i in range(1,a:width)
:let c.=nr2char(screenchar(j, i))
:endfor
:let c.="\n"
:endfor
:return c
:endfu
:fu! DoRecordScreen()
:wincmd l
:$put =printf(\"\n%s\", g:test)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for linebreak and list option (non-utf8)[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 114 lines, 2792 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTESTabcd{ef
ghijklm
no}pqrs^[2k0f{^V^Vc%^[
:"
:let g:test ="Test 11: using block replace mode after wrapping"
:$put =g:test
:set linebreak wrap
Go^[150aa^[yypk147|^Vjr0
:"
:let g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$":set list listchars=space:_,trail:-,tab:>-,eol:$
:$put =g:test
:let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! |

endif
[?25l[?1cabcd{ef[?25h[?0c[?25l[?1c
:[?25h[?0c10new|:vsp|:vert resize 20
[?25l[?1c       ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name]            ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name]                                                  let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =linenorm! zt
:redraw!let line=ScreenChar(winwidth(0))
:call DoRecordScreen()%w! test.outqaENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0cput =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [+][?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz_1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25l[?1cabcdef          
+hijklmn            
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP [?25h[?0c[?25l[?1c:[?25h[?0cfu! ScreenChar(width)
[?25l[?1c
:  [?25h[?0c:^Ilet c=''

[?25l[?1c:  [?25h[?0c:^Ifor j in range(1,4)

[?25l[?1c:    [?25h[?0c:^I    for i in range(1,a:width)

[?25l[?1c:      [?25h[?0c:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l[?1c:      [?25h[?0c:^I    endfor

[?25l[?1c:    [?25h[?0c:           let c.="\n"

[?25l[?1c:    [?25h[?0c:^Iendfor

[?25l[?1c:  [?25h[?0c:^Ireturn c

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0cfu! DoRecordScreen()
[?25l[?1c
:  [?25h[?0c:^Iwincmd l

[?25l[?1c:  [?25h[?0c:^I$put =printf(\"\n%s\", g:test)

[?25l[?1c:  [?25h[?0c:^I$put =g:line

[?25l[?1c:  [?25h[?0c:^Iwincmd p

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 1: set linebreak"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 1: set         
+linebreak          
    abcdef          
+hijklmn            
+pqrstuvwxyz_1060ABCTest 1: set linebreak    abcdef          +hijklmn            +pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP      [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 2: set linebreak + set list"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak list listchars=
[?25l[?1c^Iabcdef hijklmn^I  pqrstuvwxyz_1060ABCDEFGHIJKLMNOP      
              
Test 1: set
+linebreak 
    abcdef
+hijklmn  
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP      [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c^Iabcdef hijklmn^I  |
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
Test 1: set|
+linebreak|
    abcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      |
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz_1060ABCDEFGHIJKLMNOPTest 1: set linebreakabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP~                                                          ~                                                          [No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines    abcdef                                                 +hijklmn                                                   +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                             ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 3: set linebreak nolist"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak
[?25l[?1c    abcdef          hijklmn            pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
           
Test 1: set
+linebreak
    abcdef
+hijklmn            
+pqrstuvwxyz_1060ABC[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
+DEFGHIJKLMNOP      ||
Test 1: set|
+linebreak|
    abcdef|
+hijklmn|
+pqrstuvwxyz_1060ABC|
[No Name] [+]        abcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOPTest 2: set linebreak + set list^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines^Iabcdef hijklmn^I                                         +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Test 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 4: set linebreak with tab and 1 line as long as screen: shou

ld break!"
[?25l[?1cabcdef|^Iabcdef hijklmn^I[?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak ts=8
[?25l[?1c    abcdef[?25h[?0c[?25l[?1c:[?25h[?0clet line="1\t".repeat('a', winwidth(0)-2)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1c      
        
Test 3: set         linebreak nolist
    abcdef
+hijklmn   
+pqrstuvwxyz_1060ABC
+DEFGHIJKLMNOP
1       
+aaaaaaaaaaaaaaaaaa [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c1|
+aaaaaaaaaaaaaaaaaa |||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ^Iabcdef hijklmn^I+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOPTest 3: set linebreak nolistabcdef+hijklmn+pqrstuvwxyz_1060ABC+DEFGHIJKLMNOP[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa +pqrstuvwxyz_1060ABC                                       +DEFGHIJKLMNOP                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     1aaaaaaaaaaaaaaaaaaTest 4: set linebreak with tab and 1 line as long as screen+: should break!1+aaaaaaaaaaaaaaaaaa~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0clet line="_S_\t bla"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cTest 4: set         
+linebreak with tab 
+and 1 line as long 
+as screen: should  
+break!             
1                   
+aaaaaaaaaaaaaaaaaa 
                    
                    
                    ~
~
_S_      bla[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c_S_      bla        
                    
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 5: set linebreak with conceal and set list and tab displayed

by different char (line may not be truncated)"
[?25l[?1c_S_      bla|+pqrstuvwxyz_1060ABC[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab
[?25l[?1cabbbb[?25h[?0c[?25l[?1c:[?25h[?0csyn match ConcealVar contained /_/ conceal
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match All /.*/ contains=ConcealVar
[?25l[?1cSabb[?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 5: set         
+linebreak with     
+conceal and set    
+list and tab       
+displayed by       
+different char     
+(line may not be   
+truncated)         ~                                                          ~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _S_      blaTest 5: set linebreak with conceal and set list and tab dis+played by different char (line may not be truncated)Sabbbbbb bla~~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 6: set linebreak with visual block mode"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet line="REMOVE: this not"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cabbbbbb
~
~          
~              
Test 6: set     nebreak withvisual block mode
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cREMOVE: this not    [?25h[?0c[?25l[?1c:[?25h[?0clet line="REMOVE: aaaaaaaaaaaaa"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1cREMOVE:             
+aaaaaaaaaaaaa      [?25h[?0c[?25l[?1c:[?25h[?0c1/^REMOVE:
[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cR[?25h[?0c[?25l[?1cEMOVE: 
REMOVE:[?25h[?0c[?25l[?1cthis not        
aaaaaaaaaaaaa
~                   [?25h[?0c[?25l[?1c:[?25h[?0c$put
[?25l[?1c~                   
~                   
~                   
Test 6: set         
+linebreak with     
+visual block mode  
this not            
aaaaaaaaaaaaa       
~                   
                    REMOVE:             
REMOVE:[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 7: set linebreak with visual block mode and v_b_A"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cthis not            
aaaaaaaaaaaaa       
REMOVE:             
REMOVE:             
                    
                    
                    
                    
                    
                    Test 7: set
+linebreak with
+visual block mode
+and vbA
~                   
~                   [?25h[?0c[?25l[?1clong line:          [?25h[?0c[?25l[?1c foobar
+foobar foobar      @                   
@                           
             
       
       
           
               
                  
        
                    
                    +foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar foobar
+foobar[?25h[?0c+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar foobar      
+foobar             
                    [?25l[?1cTARGET at
+end[?25h[?0c[?25l[?1c:[?25h[?0cexe "norm! $3B\<C-v>eAx\<Esc>"
[?25l[?1cx at[?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak sbr=
[?25l[?1cfoobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar foobar 
foobar TARGETx at 
end played by different char (line may not be truncated)[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 8: set linebreak with visual char mode and changing block"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 8: set  
linebreak with
visual char mode
and changing block
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c1111-1111-1111-11-  
1111-1111-1111      [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c111[?25h[?0c[?25l[?1c2222[?25h[?0c[?25l[?1c2222[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 9: using redo after block visual mode"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 9: using redo  
after block visual  
mode                [?25h[?0c[?25l[?1c1111-2222-1111-11-  
1111-2222-1111      
Test 9: using redo  
after block visual  
mode                
~                   
                    
                    
                    
                                        
aaa
aaa
a
~                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1ca
a[?25h[?0c[?25l[?1c3 lines changedA
A
A[?25h[?0c[?25l[?1cA
AaA[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 10: using normal commands after block-visual"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 9: using redo  
after block visual  
mode                
                    
AaA                 
AaA                 
A                   
~                   
                    
                    Test 10: using      
normal commands
after block-visual[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak
[?25l[?1c[?25h[?0c[?25l[?1cAaA                 
AaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
                    
                    
                    abcd{ef
ghijklm
no}pqrs[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cpqrs
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 11: using block replace mode after wrapping"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cAaA                 
A                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
~                   
~                   
                    Test 11: using      
block replace mode  
after wrapping[?25h[?0c[?25l[?1c:[?25h[?0cset linebreak wrap
[?25l[?1c[?25h[?0c[?25l[?1cA                   
Test 10: using      
normal commands     
after block-visual  
                    
abcdpqrs            
Test 11: using      
block replace mode  
after wrapping      
                    [?25h[?0c[?25l[?1caaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa        
~                   
~                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1caaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa
~                   
~                   [?25h[?0c[?25l[?1c0
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa@                   
@                   [?25h[?0c[?25l[?1c@                   
@                   
                    
                    
                    
                    
                    
                    
                    
                    aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaa
aaaaaa0aaa
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$

"[?25l[?1caaaaaaaaaaaaaaaaaaaa|~[?25h[?0c[?25l[?1c:[?25h[?0cset list listchars=space:_,trail:-,tab:>-,eol:$
[?25l[?1c$[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0clet line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =line
[?25l[?1ca_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1ca_                  
aaaaaaaaaaaaaaaaaaaa
aa>-----a-$         
~                   
~                   
~                   
                    
                    
                    
                    ~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1ca_|
aaaaaaaaaaaaaaaaaaaa|
aa>-----a-$||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ~~_S_      blaTest 5: set linebreak with conceal and set list and tab displayed by different char (line may not be truncated)Sabbbbbb bla~~~[No Name] [+]                                              :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta "
:$put =line
:$
:norm! zt
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr.in                                                                 [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines$                   
Test_12:_set_       
linebreak_list_     
listchars=space:,   
tab:>-,tail:-,eol:$$
a------------------ 
$                   Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$a aaaaaaaaaaaaaaaaaaaaaaa12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$a_          aaaaaaaaaaaaaaaaaaaaaa>-----a-$[?25h[?0c[?25l[?1c:[?25h[?0c%w! test.out
[?25l[?1c"test.out" [New File] 62 lines, 2030 characters writtentest.out     test.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listlbr = test61; then \
#	  if diff test.out test_listlbr.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listlbr.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_search_mbyte.failed test.ok test.out X* viminfo
cp test_search_mbyte.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_search_mbyte.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_search_mbyte.in" 15 lines, 226 charactersTest for search('multi-byte char', 'bce')

STARTTEST
:source small.vim
:source mbyte.vim
:set encoding=utf-8
:/^Test bce:/+1
:$put =search('A', 'bce', line('.'))
:1;/^Results:/,$wq! test.out
ENDTEST

Results:

Test bce:
A
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for search('multi-byte char', 'bce')[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 140 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0csource small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csource mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1cTest for search('multi-byte char', 'bce')

STARTTEST
:source small.vim
:source mbyte.vim
:set encoding=utf-8
:/^Test bce:/+1
:$put =search('A', 'bce', line('.'))
:1;/^Results:/,$wq! test.out
ENDTEST

Results:

Test bce:
A
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c/^Test bce:/+1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =search('A', 'bce', line('.'))
[?25l[?1c15[?25h[?0c[?25l[?1c:[?25h[?0c1;/^Results:/,$wq! test.out
[?25l[?1c"test.out" [New File] 5 lines, 27 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_search_mbyte = test61; then \
#	  if diff test.out test_search_mbyte.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_search_mbyte.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_search_mbyte.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_utf8.failed test.ok test.out X* viminfo
cp test_utf8.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_utf8.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_utf8.in" 46 lines, 1245 charactersTests for Unicode manipulationsvim: set ft=vim :

STARTTEST
:so small.vim
:set encoding=utf-8
:"
:" Visual block Insert adjusts for multi-byte char
:new
:exe ":norm! gg0l\<C-V>jjIx\<Esc>"
:let r = getline(1, '$')
:"
:bwipeout!
:$put=r
:"
:" Test for built-in function strchars()
:$put=strchars(str)
:$put=strchars(str, 0)
:$put=strchars(str, 1)
:endfor
:"
:" Test for customlist completion[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for Unicode manipulationsvim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 1151 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete2(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete3(lead, line, pos)
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST
[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf-8
[?25l[?1c:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:return ['あ', 'い']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete2(lead, line, pos)
:return ['あたし', 'あたま', 'あたりめ']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:function! CustomComplete3(lead, line, pos)
:return ['Nこ', 'Nん', 'Nぶ']
:endfunction
:command -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"
:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Visual block Insert adjusts for multi-byte char
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       function! CustomComplete3(lead, line, pos)
:       return ['Nこ', 'Nん', 'Nぶ']endfunctioncommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')"call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST test_utf8.in                                                                    [?25h[?0c[?25l[?1c:[?25h[?0ccall setline(1, ["aaa", "あああ", "bbb"])
[?25l[?1caaa
あああbbb[+][?25h[?0c[?25l[?1c:[?25h[?0cexe ":norm! gg0l\<C-V>jjIx\<Esc>"
[?25l[?1cxaa
xあああ
bxbb[?25h[?0c[?25l[?1c:[?25h[?0clet r = getline(1, '$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipeout!
[?25l[?1c:" Test for customlist completion
:function! CustomComplete1(lead, line, pos)
:       return ['あ', 'い']
:endfunction:command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo:call feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it'):":function! CustomComplete2(lead, line, pos):       return ['あたし', 'あたま', 'あたりめ']:endfunction:command -nargs=1 -complete=customlist,CustomComplete2 Test2 echo:call feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')"function! CustomComplete3(lead, line, pos)
:       return ['Nこ', 'Nん', 'Nぶ']
:endfunctionommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
:call feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
:"call garbagecollect(1):/^start:/,$wq! test.out
ENDTEST
 [?25h[?0c[?25l[?1c:[?25h[?0c$put=r
[?25l[?1c3 more linesstart:
axaa
xあああ
bxbb3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for built-in function strchars()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor str in ["a", "あいa", "A\u20dd", "A\u20dd\u20dd", "\u20dd"]
[?25l[?1c
:  [?25h[?0c:^I$put=strchars(str)

[?25l[?1c:  [?25h[?0c:^I$put=strchars(str, 0)

[?25l[?1c:  [?25h[?0c:^I$put=strchars(str, 1)

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:call garbagecollect(1)
:/^start:/,$wq! test.out
ENDTEST

start:axaaxあああbxbb11133322133
1111[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test for customlist completion
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete1(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['あ', 'い']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:call garbagecollect(1)
:/^start:/,$wq! test.out[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test1 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test1 ...'
:$Test1 '
:$pTest1 '
:$puTest1 '
:$putTest1 '
:$put=Test1 ''Test1 '

Test1[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete2(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['あたし', 'あたま', 'あたりめ']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:/^start:/,$wq! test.out
ENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete2 Test2 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test2 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test2 ...あた'
:$Test2 あた'
:$pTest2 あた'
:$puTest2 あた'
:$putTest2 あた'
:$put=Test2 あた''Test2 あた'

Test2 あた[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunction! CustomComplete3(lead, line, pos)
[?25l[?1c
:  [?25h[?0c:^Ireturn ['Nこ', 'Nん', 'Nぶ']

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1cENDTEST[?25h[?0c[?25l[?1c
:[?25h[?0ccommand -nargs=1 -complete=customlist,CustomComplete3 Test3 echo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall feedkeys(":Test3 \<C-L>'\<C-B>$put='\<CR>", 'it')
[?25l[?1c[?25h[?0c[?25l[?1c:Test3 ...N'
:$Test3 N'
:$pTest3 N'
:$puTest3 N'
:$putTest3 N'
:$put=Test3 N''Test3 N'

Test3 N[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 22 lines, 86 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_utf8 = test61; then \
#	  if diff test.out test_utf8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_utf8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_utf8.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_wordcount.failed test.ok test.out X* viminfo
cp test_wordcount.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_wordcount.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_wordcount.in" 126 lines, 2815 charactersTest for wordcount() function

STARTTEST
:so small.vim
:so mbyte.vim
:set enc=utf8
:set selection=inclusive fileformat=unix fileformats=unix
:new
:fu DoRecordWin(...)
:wincmd k
:if exists("a:1")
:call cursor(a:1)
:endif
:let result=[]
:call add(result, g:test)
:call add(result, getline(1, '$'))
:call add(result, wordcount())
:wincmd j
:return result
:endfu
:fu PutInWindow(args)
:wincmd k
:%d _[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for wordcount() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 121 lines, 2753 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:0
v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:let g:test="Test 11: visual mode, single line"
:wincmd k
:set ls=2 stl=%{STL()}
:" start visual mode quickly and select complete buffer
:2
0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:/^RESULT test/,$w! test.out
:qa!
ENDTEST
RESULT test:[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf8
[?25l[?1c:0
v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:let g:test="Test 11: visual mode, single line"
:call PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
:wincmd k
:set ls=2 stl=%{STL()}
:" start visual mode quickly and select complete buffer
:2
0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])
:let log[2]=g:visual_stat
:call Log()
:"
:/^RESULT test/,$w! test.out
:qa!
ENDTEST
RESULT test:
[?25h[?0c[?25l[?1c
:[?25h[?0cset selection=inclusive fileformat=unix fileformats=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       0v$y
:set stl= ls=1
:let log=DoRecordWin([3,99,0])[2]=g:visual_statcall Log()"/^RESULT test/,$w! test.out
:qa!ENDTEST
RESULT test:
test_wordcount.in                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu DoRecordWin(...)
[?25l[?1c
:  [?25h[?0c:^Iwincmd k

[?25l[?1c:  [?25h[?0c:       if exists("a:1")

[?25l[?1c:    [?25h[?0c:           call cursor(a:1)

[?25l[?1c:    [?25h[?0c:       endif

[?25l[?1c:  [?25h[?0c:       let result=[]

[?25l[?1c:  [?25h[?0c:       call add(result, g:test)

[?25l[?1c:  [?25h[?0c:       call add(result, getline(1, '$'))

[?25l[?1c:  [?25h[?0c:       call add(result, wordcount())

[?25l[?1c:  [?25h[?0c:^Iwincmd j

[?25l[?1c:  [?25h[?0c:       return result

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu PutInWindow(args)
[?25l[?1c
:  [?25h[?0c:       wincmd k

[?25l[?1c:  [?25h[?0c:       %d _

[?25l[?1c:  [?25h[?0c:       call append(1, a:args)

[?25l[?1c:  [?25h[?0c:^Iwincmd j

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu Log()
[?25l[?1c
:  [?25h[?0c:   $put ='----'

[?25l[?1c:  [?25h[?0c:   $put =remove(g:log,0)

[?25l[?1c:  [?25h[?0c:   $put =string(g:log)

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cfu! STL()
[?25l[?1c
:  [?25h[?0c:    if mode() =~? 'V'

[?25l[?1c:    [?25h[?0c:       let g:visual_stat=wordcount()

[?25l[?1c:    [?25h[?0c:    endif

[?25l[?1c:  [?25h[?0c:    return string(wordcount())

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 1: empty window"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin()
[?25l[?1c[No Name]                                                                       test_wordcount.in                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 1: empty window
[[''], {'chars': 0, 'cursor_chars': 0, 'words': 0, 'cursor_words': 0, 'bytes': 0, 'cursor_bytes': 0}][+][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 2: some words, cursor at start"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1cone two three[+][?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([1,1,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 2: some words, cursor at start
[['', 'one two three'], {'chars': 15, 'cursor_chars': 1, 'words': 3, 'cursor_words': 0, 'bytes': 15, 'cursor_bytes': 1}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 3: some words, cursor at end"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 3: some words, cursor at end
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3, 'bytes': 15, 'cursor_bytes': 14}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 4: some words, cursor at end, ve=all"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ve=all
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 4: some words, cursor at end, ve=all
[['', 'one two three'], {'chars': 15, 'cursor_chars': 15, 'words': 3, 'cursor_words': 3, 'bytes': 15, 'cursor_bytes': 15}][?25h[?0c[?25l[?1c


:[?25h[?0cset ve=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 5: several lines with words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['one two three', 'one two three', 'one two three'])
[?25l[?1cone two threeone two three--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([4,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 5: several lines with words
[['', 'one two three', 'one two three', 'one two three'], {'chars': 43, 'cursor_chars': 42, 'words': 9, 'cursor_words': 9, 'bytes': 43, 'cursor_bytes': 42}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 6: one line with BOM set"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow('one two three')
[?25l[?1c~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1c[No Name] [+]                                                                   test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset bomb
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xtest
[?25l[?1c"Xtest" [New File] 2 lines, 18 characters writtenXtest        [?25h[?0c[?25l[?1c:[?25h[?0cwincmd j
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 6: one line with BOM set
[['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3, 'bytes': 18, 'cursor_bytes': 14}][?25h[?0c[?25l[?1c


:[?25h[?0cwincmd k
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset nobomb
[?25l[?1c[+][?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtest" 2 lines, 15 characters written   [?25h[?0c[?25l[?1c:[?25h[?0cwincmd j
[?25l[?1cXtest                                                                           test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 7: one line with multibyte words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh'])
[?25l[?1cÄne M¤ne Müh[+]--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([2,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 7: one line with multibyte words
[['', 'Äne M¤ne Müh'], {'chars': 14, 'cursor_chars': 13, 'words': 3, 'cursor_words': 3, 'bytes': 17, 'cursor_bytes': 16}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 8: several lines with multibyte words"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1cund raus bist dü!--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 8: several lines with multibyte words
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'cursor_chars': 31, 'words': 7, 'cursor_words': 7, 'bytes': 36, 'cursor_bytes': 35}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 9: visual mode, complete buffer"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 3985, 'words': 579, 'cursor_words': 560, 'bytes': 4153, 'cursor_bytes': 4007}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c0
[?25l[?1c[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual[?25h[?0c[?25l[?1c 
Äne M¤ne Müh 
und raus bist dü! ds': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36[?25h[?0c[?25l[?1cÄne M¤ne Mühnd raus bist dü!3 lines yankedursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1[?25h[?0c213[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 9: visual mode, complete buffer
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 10: visual mode (empty)"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4170, 'words': 606, 'cursor_words': 587, 'bytes': 4342, 'cursor_bytes': 4196}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c0
[?25l[?1c[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor[?25h[?0c213[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 10: visual mode (empty)
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_bytes': 1}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test="Test 11: visual mode, single line"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0cwincmd k
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0cset ls=2 stl=%{STL()}
[?25l[?1c<ursor_chars': 1, 'words': 7, 'cursor_words': 0, 'bytes': 36, 'cursor_bytes': 1}<: 4347, 'words': 632, 'cursor_words': 613, 'bytes': 4521, 'cursor_bytes': 4377}[?25h[?0c[?25l[?1c:[?25h[?0c" start visual mode quickly and select complete buffer
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c2
[?25l[?1c213[?25h[?0c[?25l[?1cords': 7, 'bytes': 36, 'visual_chars': 1, 'visual_words': 1, 'visual2[?25h[?0c[?25l[?1cÄne M¤ne Mühds': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16[?25h[?0c[?25l[?1c
Äne M¤ne Mühursor_chars': 2, 'words': 7, 'cursor_words': 1, 'bytes': 36, 'cursor_bytes': 3[?25h[?0csor_chars': 15, 'words': 7, 'cursor_words': 4, 'bytes': 36, 'cursor_bytes': 18[?25l[?1c:[?25h[?0cset stl= ls=1
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log=DoRecordWin([3,99,0])
[?25l[?1cXtest [+]                                                                       test_wordcount.in [+]                                                           [?25h[?0c[?25l[?1c:[?25h[?0clet log[2]=g:visual_stat
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall Log()
[?25l[?1c----
Test 11: visual mode, single line
[['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}][?25h[?0c[?25l[?1c


:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^RESULT test/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 34 lines, 1905 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_wordcount = test61; then \
#	  if diff test.out test_wordcount.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_wordcount.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_wordcount.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test11.in
[?25h[?8c[?25h[?0c[?25l[?1c"test11.in" 84 lines, 3366 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for autocommands:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 48 lines, 2298 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:au! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>"))
:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
: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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" drop out when there is no gzip program
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !executable("gzip")
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:au! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>"))
:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
:au! FileReadPost   *.gz   '[,']s/l/L/[?25h[?0c[?25l[?1c:[?25h[?0clet $GZIP = ""
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileChangedShell * echo "caught FileChangedShell"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset bin
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWritePre    *.gz   '[,']!gzip
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau FileWritePost   *.gz   undo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of testfile/,/^end of testfile/w! Xtestfile.gz
[?25l[?1c[?25h[?0c[?25l[?1c11 lines filtered
"Xtestfile.gz" [New File][Incomplete last line] 1 line, 111 characters written

10 more lines; before #1  1 seconds ago

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau FileReadPost    *.gz   '[,']!gzip -d
[?25l[?1c:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
: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[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtestfile.gz                " Read and decompress the testfile
[?25l[?1c"Xtestfile.gz" [Incomplete last line] 1 line, 111 characters
[?25h[?0c[?25l[?1cstart of test.c
/*
 * Here is a new .c file
 */
end of test.c
start of testfile[?25h[?0c[?25l[?1c
:[?25h[?0c?startstart?,$w! test.out      " Write contents of this file
[?25l[?1c"test.out" [New File] 29 lines, 788 characters written[?25h[?0c[?25l[?1c:[?25h[?0cau BufNewFile      *.c    read Xtest.c
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
[?25l[?1csearch hit BOTTOM, continuing at TOP"Xtest.c" [New File] 3 lines, 32 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! foo.c                       " Will load Xtest.c
[?25l[?1c"foo.c" [New File]
"Xtest.c" 3 lines, 32 characters

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau FileAppendPre   *.out  '[,']s/new/NEW/
[?25l[?1c/*
 * Here is a new .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau FileAppendPost  *.out  !cat Xtest.c >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw>>test.out                    " Append it to the output file
[?25l[?1c"test.out" 4 lines, 33 characters appended

:!cat Xtest.c >>test.out

[?25h[?0c
Press ENTER or type command to continue[?25l[?1c:[?25h[?0cau! FileAppendPre
[?25l[?1c/*
 * Here is a NEW .c file
 */
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" setup autocommands to decompress before reading and re-compress afterwards
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPre      *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPre      *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost     *.gz   call rename(expand("<afile>"), expand("<afile>:r"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau BufReadPost     *.gz   exe '!gzip ' . shellescape(expand("<afile>:r"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile.gz                " Edit compressed file
[?25l[?1c:!gzip -d 'Xtestfile.gz'

[?25h[?0c[?25l[?1c"Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters:!gzip 'Xtestfile'

[?25h[?0c[?25l[?1ccaught FileChangedShell

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw>>test.out                    " Append it to the output file
[?25l[?1c"test.out" 11 lines, 357 characters appended

:!cat Xtest.c >>test.out

[?25h[?0c
Press ENTER or type command to continue[?25l[?1c:[?25h[?0cset shelltemp                  " need temp files here
[?25l[?1cstart 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
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  call rename(expand("<afile>"), expand("<afile>") . "

.t")
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  exe 'silent !sed s/e/E/ ' . shellescape(expand("<afi

le>")) . ".t >" . shellescape(expand("<afile>"))
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPre   *.out  exe 'silent !rm ' . shellescape(expand("<afile>")) .

'.t'
[?25l[?1cstart of testfile[?25h[?0c[?25l[?1c:[?25h[?0cau FilterReadPost  *.out  '[,']s/x/X/g
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out                    " Edit the output file
[?25l[?1c"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.cstart of testfileline 2  Abcdefghijklmnopqrstuvwxyzline 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 4  Abcdefghijklmnopqrstuvwxyzline 5  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[?25h[?0c[?25l[?1c:[?25h[?0c23,$!cat
[?25l[?1c[?25h[?0c[?25l[?1c218 substitutions on 15 lines

28 lines filtered

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c23,$s/\r$//                 " remove CR for when sed adds them
[?25l[?1cE486: Pattern not found: \r$
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau! FileReadPre    *.gz   exe 'silent !gzip -d ' . shellescape(expand("<afile>

"))
[?25l[?1cstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE 5  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX[?25h[?0c[?25l[?1c
:[?25h[?0cau  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cau! FileReadPost   *.gz   '[,']s/l/L/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$r Xtestfile.gz             " Read compressed file
[?25l[?1c[?25h[?0c[?25l[?1c"Xtestfile.gz" 11 lines, 357 characters

11 substitutions on 11 lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw                           " write it, after filtering
[?25l[?1c"test.out"61 lines, 1599 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cau!             " remove all autocommands
[?25l[?1cE216: No such group or event: " remove all autocommands

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce               " Edit test.out again
[?25l[?1c"test.out"61 lines, 1599 charactersstartstart
start of testfile
line 2  Abcdefghijklmnopqrstuvwxyz
line 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"test.out" 61 lines, 1599 characters[?25h[?0c[?25l[?1c:[?25h[?0cset nobin ff&   " use the default fileformat for writing
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 61 lines, 1599 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test11 = test61; then \
#	  if diff test.out test11.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test11.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test11.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test52.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for reading and writing files with conversion for Win32.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 57 lines, 1333 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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

[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make this a dummy test for non-Win32 systems
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has("win32") | e! test.ok | wq! test.out | endif
[?25l[?1c"test.ok" 18 lines, 1374 characters

"test.out" [New File] 18 lines, 1374 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test52 = test61; then \
#	  if diff test.out test52.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test52.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test52.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test85.failed test.ok test.out X* viminfo
cp test85.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test85.in
[?25h[?8c[?25h[?0c[?25l[?1c"test85.in" 85 lines, 1868 charactersTest for Lua interface and luaeval() function

STARTTEST
:so small.vim
:so lua.vim
:set nocompatible viminfo+=nviminfo
:lua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
:lua h = vim.dict(); h.list = l
:call garbagecollect()
/^1
:" change buffer contents
:lua curbuf = vim.buffer()
:lua curline = vim.eval"line('.')"
:lua curbuf[curline] = "1 changed line 1"
:" scalar test
:let tmp_string = luaeval('"string"')
:let tmp_1000 = luaeval('1000')
:if printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
:let scalar_res = "OK"
:else
:let scalar_res = "FAILED"
:endif
:call append(search("^1"), "scalar test " . scalar_res)[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for Lua interface and luaeval() function[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 77 lines, 1775 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")
:lua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
:lua d[4] = d[0]
:lua d[5] = d[1]
:lua d[6] = d[2]
:lua d[7] = d[3]
:lua d[3] = nil
:lua d[2] = nil
:lua d[1] = nil
:lua d[0] = nil
:lua d = nil
:$put =string(d)

:?^1?,$w! test.out
:qa!
ENDTEST

1 line 1
2 line 2
3 line 3[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso lua.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua h = vim.dict(); h.list = l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect()
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" change buffer contents
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua curbuf = vim.buffer()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua curline = vim.eval"line('.')"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua curbuf[curline] = "1 changed line 1"
[?25l[?1cchanged line 1
[?25h[?0c[?25l[?1c:[?25h[?0c" scalar test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tmp_string = luaeval('"string"')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tmp_1000 = luaeval('1000')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
[?25l[?1c
:  [?25h[?0c:let scalar_res = "OK"

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:let scalar_res = "FAILED"

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")[?25h[?0c[?25l[?1c


:[?25h[?0ccall append(search("^1"), "scalar test " . scalar_res)
[?25l[?1cscalar test OK
2 line 2[?25h[?0c[?25l[?1c:[?25h[?0c" dictionary containing a list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet tmp = luaeval("h").list[1]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^2/put =tmp
[?25l[?1c
dictionary with list OK[?25h[?0c[?25l[?1c
:[?25h[?0c" circular list (at the same time test lists containing lists)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = l
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet l2 = luaeval("h").list
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif l2[2] == l2
[?25l[?1c
:  [?25h[?0c:let res = "OK"

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:let res = "FAILED"

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")
:lua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")[?25h[?0c[?25l[?1c
:[?25h[?0ccall setline(search("^3"), "circular test " . res)
[?25l[?1c
circular test OK[?25h[?0c[?25l[?1c
:[?25h[?0clet l = []
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l = vim.eval("l")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add(123)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add("abc")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add(vim.eval("[1, 2, 3]"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:add(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert(123)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert("abc")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert(vim.eval("[1, 2, 3]"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l:insert(vim.eval("{'a':1, 'b':2, 'c':3}"))
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[0] = l[0]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[1] = l[1]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = l[2]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[3] = l[3]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[0] = 123
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[1] = "abc"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = vim.eval("[1, 2, 3]")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[3] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[2] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[1] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l[0] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua l = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(l)
[?25l[?1c
[123.0, 'abc', [1, 2, 3], {'a': 1, 'b': 2, 'c': 3}][?25h[?0c[?25l[?1c
:[?25h[?0clet d = {}
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d = vim.eval("d")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[0] = 123
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[1] = "abc"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[2] = vim.eval("[1, 2, 3]")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[4] = d[0]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[5] = d[1]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[6] = d[2]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[7] = d[3]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[3] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[2] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[1] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d[0] = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clua d = nil
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(d)
[?25l[?1c
{'4': 123.0, '5': 'abc', '6': [1, 2, 3], '7': {'a': 1, 'b': 2, 'c': 3}}[?25h[?0c[?25l[?1c
:[?25h[?0c?^1?,$w! test.out
[?25l[?1c"test.out" [New] 7L, 206C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test85 = test61; then \
#	  if diff test.out test85.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test85.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test85.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test86.failed test.ok test.out X* viminfo
cp test86.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test86.in
[?25h[?8c[?25h[?0c[?25l[?1c"test86.in" 1711 lines, 48481 charactersTests for various python features.     vim: set ft=vim :

NOTE: This will cause errors when run under valgrind.
This would require recompiling Python with:
  ./configure --without-pymalloc
See http://svn.python.org/view/python/trunk/Misc/README.valgrind?view=markup

STARTTEST
:so small.vim
:set encoding=latin1
:set noswapfile
:if !has('python') | e! test.ok | wq! test.out | endif
:lang C
:fun Test()
:py import vim
:py cb = vim.current.buffer
:let l = []
:py l=vim.bindeval('l')
:py f=vim.bindeval('function("strlen")')
:" Extending List directly with different types
:py l.extend([1, "as'd", [1, 2, f, {'a': 1}]])
:$put =string(l)
:$put =string(l[-1])[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for various python features.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1700 lines, 48188 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:   endif
:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=latin1
[?25l[?1c:   endif
:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c[?25l[?1c

:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('python') | e! test.ok | wq! test.out | endif
[?25l[?1c"test.ok" 1445 lines, 67439 characters

"test.out" [New File] 1445 lines, 67439 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test86 = test61; then \
#	  if diff test.out test86.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test86.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test86.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test87.failed test.ok test.out X* viminfo
cp test87.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test87.in
[?25h[?8c[?25h[?0c[?25l[?1c"test87.in" 1707 lines, 49069 charactersTests for various python features.     vim: set ft=vim :

STARTTEST
:so small.vim
:set noswapfile
:if !has('python3') | e! test.ok | wq! test.out | endif
:lang C
:fun Test()
:py3 import vim
:py3 cb = vim.current.buffer
:let l = []
:py3 l=vim.bindeval('l')
:py3 f=vim.bindeval('function("strlen")')
:" Extending List directly with different types
:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]
:$put =string(l)
:$put =string(l[-1])
:try
:  $put =string(l[-4])
:catch
:  $put =v:exception[:13]
:endtry
:" List assignment[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for various python features.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 1701 lines, 48985 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:/^start:/,$w! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c
[?25l[?1c

:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noswapfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !has('python3') | e! test.ok | wq! test.out | endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun Test()
[?25l[?1c
:  [?25h[?0c:py3 import vim

[?25l[?1c:  [?25h[?0c:py3 cb = vim.current.buffer

[?25l[?1c:  [?25h[?0c:let l = []

[?25l[?1c:  [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:  [?25h[?0c:py3 f=vim.bindeval('function("strlen")')

[?25l[?1c:  [?25h[?0c:" Extending List directly with different types

[?25l[?1c:  [?25h[?0c:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:$put =string(l[-1])

[?25l[?1c:  [?25h[?0c:try

[?25l[?1c:    [?25h[?0c:  $put =string(l[-4])

[?25l[?1c:    [?25h[?0c:catch

[?25l[?1c:    [?25h[?0c:  $put =v:exception[:13]

[?25l[?1c:    [?25h[?0c:endtry

[?25l[?1c:  [?25h[?0c:" List assignment

[?25l[?1c:  [?25h[?0c:py3 l[0]=0

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:py3 l[-2]=f

[?25l[?1c:  [?25h[?0c:$put =string(l)

[?25l[?1c:  [?25h[?0c:"

[?25l[?1c:  [?25h[?0c:" Extending Dictionary directly with different types

[?25l[?1c:  [?25h[?0c:let d = {}

[?25l[?1c:  [?25h[?0c:fun d.f()

[?25l[?1c:    [?25h[?0c:  return 1

[?25l[?1c:    [?25h[?0c:endfun

[?25l[?1c:    [?25h[?0cpy3 << EOF

[?25l[?1c:    [?25h[?0cd=vim.bindeval('d')

[?25l[?1c:    [?25h[?0cd['1']='asd'

[?25l[?1c:    [?25h[?0cd.update()  # Must not do anything, including throwing errors

[?25l[?1c:    [?25h[?0cd.update(b=[1, 2, f])

[?25l[?1c:    [?25h[?0cd.update((('-1', {'a': 1}),))

[?25l[?1c:    [?25h[?0cd.update({'0': -1})

[?25l[?1c:    [?25h[?0cdk = d.keys()

[?25l[?1c:    [?25h[?0cdv = d.values()

[?25l[?1c:    [?25h[?0cdi = d.items()

[?25l[?1c:    [?25h[?0cdk.sort(key=repr)

[?25l[?1c:    [?25h[?0cdv.sort(key=repr)

[?25l[?1c:    [?25h[?0cdi.sort(key=repr)

[?25l[?1c:    [?25h[?0cEOF

[?25l[?1c:    [?25h[?0c:$put =py3eval('d[''f''](self={})')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(dk)')

[?25l[?1c:    [?25h[?0c:$put =substitute(py3eval('repr(dv)'),'0x\x\+','','g')

[?25l[?1c:    [?25h[?0c:$put =substitute(py3eval('repr(di)'),'0x\x\+','','g')

[?25l[?1c:    [?25h[?0c:for [key, Val] in sort(items(d))

[?25l[?1c:      [?25h[?0c:  $put =string(key) . ' : ' . string(Val)

[?25l[?1c:      [?25h[?0c:  unlet key Val

[?25l[?1c:      [?25h[?0c:endfor

[?25l[?1c:    [?25h[?0c:py3 del dk

[?25l[?1c:    [?25h[?0c:py3 del di

[?25l[?1c:    [?25h[?0c:py3 del dv

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" removing items with del

[?25l[?1c:    [?25h[?0c:py3 del l[2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:try

[?25l[?1c:      [?25h[?0c:   py3 del l[:3]

[?25l[?1c:      [?25h[?0c:   py3 del l[1:]

[?25l[?1c:      [?25h[?0c:catch

[?25l[?1c:      [?25h[?0c:   $put =v:exception

[?25l[?1c:      [?25h[?0c:endtry

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:py3 del d['-1']

[?25l[?1c:    [?25h[?0c:py3 del d['f']

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.get(''b'', 1)'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.pop(''b'')'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.get(''b'', 1)'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l[?1c:    [?25h[?0c:$put =string(py3eval('d.pop(''1'', 2)'))

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.has_key(''0''))')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.has_key(''1''))')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(''0'' in d)')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(''1'' in d)')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(list(iter(d)))')

[?25l[?1c:    [?25h[?0c:$put =string(d)

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.popitem())')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(d.get(''0''))')

[?25l[?1c:    [?25h[?0c:$put =py3eval('repr(list(iter(d)))')

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" removing items out of range: silently skip items that don't exist

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:" The following two ranges delete nothing as they match empty list:

[?25l[?1c:    [?25h[?0c:py3 del l[2:1]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[2:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[2:3]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:4]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:5]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:6]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:" The following two ranges delete nothing as they match empty list:

[?25l[?1c:    [?25h[?0c:py3 del l[-1:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[-2:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:py3 del l[-3:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[-4:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[-5:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[-6:2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[::2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[3:0:-2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 del l[2:4:-2]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" Slice assignment to a list

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[0:0]=['a']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[1:2]=['b']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:4]=['c']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[4:4]=['d']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[-1:2]=['e']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[-10:2]=['f']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:-10]=['g']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = []

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[0:0]=['h']

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:6:2] = [10, 20]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[6:2:-2] = [10, 20]

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[6:2] = ()

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[6:2:1] = ()

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:let l = range(8)

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:py3 l[2:2:1] = ()

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" Locked variables

[?25l[?1c:    [?25h[?0c:let l = [0, 1, 2, 3]

[?25l[?1c:    [?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:    [?25h[?0c:lockvar! l

[?25l[?1c:    [?25h[?0cpy3 << EOF

[?25l[?1c:    [?25h[?0cdef emsg(ei):

[?25l[?1c:    [?25h[?0c    return ei[0].__name__ + ':' + repr(ei[1].args)

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0ctry:

[?25l[?1c:    [?25h[?0c    l[2]='i'

[?25l[?1c:    [?25h[?0cexcept vim.error:

[?25l[?1c:    [?25h[?0c    cb.append('l[2] threw vim.error: ' + emsg(sys.exc_info()))

[?25l[?1c:    [?25h[?0cEOF

[?25l[?1c:    [?25h[?0c:$put =string(l)

[?25l[?1c:    [?25h[?0c:unlockvar! l

[?25l[?1c:    [?25h[?0c:"

[?25l[?1c:    [?25h[?0c:" Function calls

[?25l[?1c:    [?25h[?0cpy3 << EOF

[?25l[?1c:    [?25h[?0cimport sys

[?25l[?1c:    [?25h[?0cimport re

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0cpy33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional

argument but (\d+) were given$')

[?25l[?1c:    [?25h[?0c

[?25l[?1c:    [?25h[?0cdef ee(expr, g=globals(), l=locals()):

[?25l[?1c:    [?25h[?0c    cb = vim.current.buffer

[?25l[?1c:    [?25h[?0c    try:

[?25l[?1c:    [?25h[?0c        try:

[?25l[?1c:    [?25h[?0c            exec(expr, g, l)

[?25l[?1c:    [?25h[?0c        except Exception as e:

[?25l[?1c:    [?25h[?0c            if sys.version_info >= (3, 3) and e.__class__ is AttributeErro

r and str(e).find('has no attribute')>=0 and not str(e).startswith("'vim."):

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + repr((e.__class__, AttributeError(s

tr(e)[str(e).rfind(" '") + 2:-1]))))

[?25l[?1c:    [?25h[?0c            elif sys.version_info >= (3, 3) and e.__class__ is ImportError

and str(e).find('No module named \'') >= 0:

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + repr((e.__class__, ImportError(str(

e).replace("'", '')))))

[?25l[?1c:    [?25h[?0c            elif sys.version_info >= (3, 3) and e.__class__ is TypeError:

[?25l[?1c:    [?25h[?0c                m = py33_type_error_pattern.search(str(e))

[?25l[?1c:    [?25h[?0c                if m:

[?25l[?1c:    [?25h[?0c                    msg = '__call__() takes exactly {0} positional argumen

t ({1} given)'.format(m.group(1), m.group(2))

[?25l[?1c:    [?25h[?0c                    cb.append(expr + ':' + repr((e.__class__, TypeError(ms

g))))

[?25l[?1c:    [?25h[?0c                else:

[?25l[?1c:    [?25h[?0c                    cb.append(expr + ':' + repr((e.__class__, e)))

[?25l[?1c:    [?25h[?0c            elif sys.version_info >= (3, 5) and e.__class__ is ValueError 

and str(e) == 'embedded null byte':

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + repr((TypeError, TypeError('expecte

d bytes with no null'))))

[?25l[?1c:    [?25h[?0c            else:

[?25l[?1c:    [?25h[?0c                msg = repr((e.__class__, e))

[?25l[?1c:    [?25h[?0c                # Some Python versions say can't, others cannot.

[?25l[?1c:    [?25h[?0c                if msg.find('can\'t') > -1:

[?25l[?1c:    [?25h[?0c                    msg = msg.replace('can\'t', 'cannot')

[?25l[?1c:    [?25h[?0c                # Some Python versions use single quote, some double quote

[?25l[?1c:    [?25h[?0c                if msg.find('"cannot ') > -1:

[?25l[?1c:    [?25h[?0c                    msg = msg.replace('"cannot ', '\'cannot ')

[?25l[?1c:    [?25h[?0c                if msg.find(' attributes"') > -1:

[?25l[?1c:    [?25h[?0c                    msg = msg.replace(' attributes"', ' attributes\'')

[?25l[?1c:    [?25h[?0c                cb.append(expr + ':' + msg)

[?25l[?1c:    [?25h[?0c        else:

[?25l[?1c:    [?25h[?0c            cb.append(expr + ':NOT FAILED')

[?25l[?1c:    [?25h[?0c    except Exception as e:

[?25l[?1c:    [?25h[?0c        cb.append(expr + '::' + repr((e.__class__, e)))

[?25l[?1c:    [?25h[?0cEOF

[?25l[?1c:    [?25h[?0c:fun New(...)

[?25l[?1c:      [?25h[?0c:   return ['NewStart']+a:000+['NewEnd']

[?25l[?1c:      [?25h[?0c:endfun

[?25l[?1c:      [?25h[?0c:fun DictNew(...) dict

[?25l[?1c:[?25h[?0c:   return ['DictNewStart']+a:000+['DictNewEnd', self]

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:let l=[function('New'), function('DictNew')]

[?25l[?1c:[?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0c:py3 l.extend(list(l[0](1, 2, 3)))

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:py3 l.extend(list(l[1](1, 2, 3, self={'a': 'b'})))

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:py3 l+=[l[0].name]

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:py3 ee('l[1](1, 2, 3)')

[?25l[?1c:[?25h[?0c:py3 f=l[0]

[?25l[?1c:[?25h[?0c:delfunction New

[?25l[?1c:[?25h[?0c:py3 ee('f(1, 2, 3)')

[?25l[?1c:[?25h[?0c:if has('float')

[?25l[?1c:[?25h[?0c:   let l=[0.0]

[?25l[?1c:[?25h[?0c:   py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0c:   py3 l.extend([0.0])

[?25l[?1c:[?25h[?0c:   $put =string(l)

[?25l[?1c:[?25h[?0c:else

[?25l[?1c:[?25h[?0c:   $put ='[0.0, 0.0]'

[?25l[?1c:[?25h[?0c:endif

[?25l[?1c:[?25h[?0c:let messages=[]

[?25l[?1c:[?25h[?0c:delfunction DictNew

[?25l[?1c:[?25h[?0cpy3 <<EOF

[?25l[?1c:[?25h[?0cimport sys

[?25l[?1c:[?25h[?0cd=vim.bindeval('{}')

[?25l[?1c:[?25h[?0cm=vim.bindeval('messages')

[?25l[?1c:[?25h[?0cdef em(expr, g=globals(), l=locals()):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        exec(expr, g, l)

[?25l[?1c:[?25h[?0c    except Exception as e:

[?25l[?1c:[?25h[?0c        if sys.version_info >= (3, 5) and e.__class__ is ValueError an

d str(e) == 'embedded null byte':

[?25l[?1c:[?25h[?0c            m.extend([TypeError.__name__])

[?25l[?1c:[?25h[?0c        else:

[?25l[?1c:[?25h[?0c            m.extend([e.__class__.__name__])

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cem('d["abc1"]')

[?25l[?1c:[?25h[?0cem('d["abc1"]="\\0"')

[?25l[?1c:[?25h[?0cem('d["abc1"]=vim')

[?25l[?1c:[?25h[?0cem('d[""]=1')

[?25l[?1c:[?25h[?0cem('d["a\\0b"]=1')

[?25l[?1c:[?25h[?0cem('d[b"a\\0b"]=1')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cem('d.pop("abc1")')

[?25l[?1c:[?25h[?0cem('d.popitem()')

[?25l[?1c:[?25h[?0cdel em

[?25l[?1c:[?25h[?0cdel m

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:$put =messages

[?25l[?1c:[?25h[?0c:unlet messages

[?25l[?1c:[?25h[?0c:" locked and scope attributes

[?25l[?1c:[?25h[?0c:let d={} | let dl={} | lockvar dl

[?25l[?1c:[?25h[?0c:for s in split("d dl v: g:")

[?25l[?1c:[?25h[?0c:    let name=tr(s, ':', 's')

[?25l[?1c:[?25h[?0c:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l[?1c:[?25h[?0c:    let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".py3e

val(name.".".v:val)'), ';')

[?25l[?1c:[?25h[?0c:    $put =toput

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:silent! let d.abc2=1

[?25l[?1c:[?25h[?0c:silent! let dl.abc3=1

[?25l[?1c:[?25h[?0c:py3 d.locked=True

[?25l[?1c:[?25h[?0c:py3 dl.locked=False

[?25l[?1c:[?25h[?0c:silent! let d.def=1

[?25l[?1c:[?25h[?0c:silent! let dl.def=1

[?25l[?1c:[?25h[?0c:put ='d:'.string(d)

[?25l[?1c:[?25h[?0c:put ='dl:'.string(dl)

[?25l[?1c:[?25h[?0c:unlet d dl

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:let l=[] | let ll=[] | lockvar ll

[?25l[?1c:[?25h[?0c:for s in split("l ll")

[?25l[?1c:[?25h[?0c:    let name=tr(s, ':', 's')

[?25l[?1c:[?25h[?0c:    execute 'py3 '.name.'=vim.bindeval("'.s.'")'

[?25l[?1c:[?25h[?0c:    let toput=s.' : locked:'.py3eval(name.'.locked')

[?25l[?1c:[?25h[?0c:    $put =toput

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:silent! call extend(l, [0])

[?25l[?1c:[?25h[?0c:silent! call extend(ll, [0])

[?25l[?1c:[?25h[?0c:py3 l.locked=True

[?25l[?1c:[?25h[?0c:py3 ll.locked=False

[?25l[?1c:[?25h[?0c:silent! call extend(l, [1])

[?25l[?1c:[?25h[?0c:silent! call extend(ll, [1])

[?25l[?1c:[?25h[?0c:put ='l:'.string(l)

[?25l[?1c:[?25h[?0c:put ='ll:'.string(ll)

[?25l[?1c:[?25h[?0c:unlet l ll

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" py3eval()

[?25l[?1c:[?25h[?0c:let l=py3eval('[0, 1, 2]')

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:let d=py3eval('{"a": "b", "c": 1, "d": ["e"]}')

[?25l[?1c:[?25h[?0c:$put =sort(items(d))

[?25l[?1c:[?25h[?0c:let v:errmsg = ''

[?25l[?1c:[?25h[?0c:$put ='py3eval(\"None\") = ' . py3eval('None') . v:errmsg

[?25l[?1c:[?25h[?0c:if has('float')

[?25l[?1c:[?25h[?0c:   let f=py3eval('0.0')

[?25l[?1c:[?25h[?0c:   $put =string(f)

[?25l[?1c:[?25h[?0c:else

[?25l[?1c:[?25h[?0c:   $put ='0.0'

[?25l[?1c:[?25h[?0c:endif

[?25l[?1c:[?25h[?0c:" Invalid values:

[?25l[?1c:[?25h[?0c:for e in ['"\0"', '{"\0": 1}', 'undefined_name', 'vim']

[?25l[?1c:[?25h[?0c:   try

[?25l[?1c:[?25h[?0c:      let v=py3eval(e)

[?25l[?1c:[?25h[?0c:   catch

[?25l[?1c:[?25h[?0c:      let toput=e.":\t".v:exception[:13]

[?25l[?1c:[?25h[?0c:      $put =toput

[?25l[?1c:[?25h[?0c:   endtry

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" threading

[?25l[?1c:[?25h[?0c:let l = [0]

[?25l[?1c:[?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0cpy3 <<EOF

[?25l[?1c:[?25h[?0cimport threading

[?25l[?1c:[?25h[?0cimport time

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass T(threading.Thread):

[?25l[?1c:[?25h[?0c    def __init__(self):

[?25l[?1c:[?25h[?0c        threading.Thread.__init__(self)

[?25l[?1c:[?25h[?0c        self.t = 0

[?25l[?1c:[?25h[?0c        self.running = True

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def run(self):

[?25l[?1c:[?25h[?0c        while self.running:

[?25l[?1c:[?25h[?0c            self.t += 1

[?25l[?1c:[?25h[?0c            time.sleep(0.1)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ct = T()

[?25l[?1c:[?25h[?0cdel T

[?25l[?1c:[?25h[?0ct.start()

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:sleep 1

[?25l[?1c:[?25h[?0c:py3 t.running = False

[?25l[?1c:[?25h[?0c:py3 t.join()

[?25l[?1c:[?25h[?0c:" Check if the background thread is working.  Count should be 10, but

on a

[?25l[?1c:[?25h[?0c:" busy system (AppVeyor) it can be much lower.

[?25l[?1c:[?25h[?0c:py3 l[0] = t.t > 4

[?25l[?1c:[?25h[?0c:py3 del time

[?25l[?1c:[?25h[?0c:py3 del threading

[?25l[?1c:[?25h[?0c:py3 del t

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" settrace

[?25l[?1c:[?25h[?0c:let l = []

[?25l[?1c:[?25h[?0c:py3 l=vim.bindeval('l')

[?25l[?1c:[?25h[?0cpy3 <<EOF

[?25l[?1c:[?25h[?0cimport sys

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef traceit(frame, event, arg):

[?25l[?1c:[?25h[?0c    global l

[?25l[?1c:[?25h[?0c    if event == "line":

[?25l[?1c:[?25h[?0c        l += [frame.f_lineno]

[?25l[?1c:[?25h[?0c    return traceit

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef trace_main():

[?25l[?1c:[?25h[?0c    for i in range(5):

[?25l[?1c:[?25h[?0c        pass

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:py3 sys.settrace(traceit)

[?25l[?1c:[?25h[?0c:py3 trace_main()

[?25l[?1c:[?25h[?0c:py3 sys.settrace(None)

[?25l[?1c:[?25h[?0c:py3 del traceit

[?25l[?1c:[?25h[?0c:py3 del trace_main

[?25l[?1c:[?25h[?0c:$put =string(l)

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Slice

[?25l[?1c:[?25h[?0c:py3 ll = vim.bindeval('[0, 1, 2, 3, 4, 5]')

[?25l[?1c:[?25h[?0c:py3 l = ll[:4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[2:]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[:-4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-2:]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[2:4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[4:2]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-4:-2]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-2:-4]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[:]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[0:6]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[-10:10]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[4:2:-1]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[::2]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 l = ll[4:2:1]

[?25l[?1c:[?25h[?0c:$put =string(py3eval('l'))

[?25l[?1c:[?25h[?0c:py3 del l

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Vars

[?25l[?1c:[?25h[?0c:let g:foo = 'bac'

[?25l[?1c:[?25h[?0c:let w:abc3 = 'def'

[?25l[?1c:[?25h[?0c:let b:baz = 'bar'

[?25l[?1c:[?25h[?0c:let t:bar = 'jkl'

[?25l[?1c:[?25h[?0c:try

[?25l[?1c:[?25h[?0c:  throw "Abc"

[?25l[?1c:[?25h[?0c:catch

[?25l[?1c:[?25h[?0c:  put =py3eval('vim.vvars[''exception'']')

[?25l[?1c:[?25h[?0c:endtry

[?25l[?1c:[?25h[?0c:put =py3eval('vim.vars[''foo'']')

[?25l[?1c:[?25h[?0c:put =py3eval('vim.current.window.vars[''abc3'']')

[?25l[?1c:[?25h[?0c:put =py3eval('vim.current.buffer.vars[''baz'']')

[?25l[?1c:[?25h[?0c:put =py3eval('vim.current.tabpage.vars[''bar'']')

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Options

[?25l[?1c:[?25h[?0c:" paste:          boolean, global

[?25l[?1c:[?25h[?0c:" previewheight   number,  global

[?25l[?1c:[?25h[?0c:" operatorfunc:   string,  global

[?25l[?1c:[?25h[?0c:" number:         boolean, window-local

[?25l[?1c:[?25h[?0c:" numberwidth:    number,  window-local

[?25l[?1c:[?25h[?0c:" colorcolumn:    string,  window-local

[?25l[?1c:[?25h[?0c:" statusline:     string,  window-local/global

[?25l[?1c:[?25h[?0c:" autoindent:     boolean, buffer-local

[?25l[?1c:[?25h[?0c:" shiftwidth:     number,  buffer-local

[?25l[?1c:[?25h[?0c:" omnifunc:       string,  buffer-local

[?25l[?1c:[?25h[?0c:" preserveindent: boolean, buffer-local/global

[?25l[?1c:[?25h[?0c:" path:           string,  buffer-local/global

[?25l[?1c:[?25h[?0c:let g:bufs=[bufnr('%')]

[?25l[?1c:[?25h[?0c:new

[?25l[?1c:[?25h[?0c:let g:bufs+=[bufnr('%')]

[?25l[?1c:[?25h[?0c:vnew

[?25l[?1c:[?25h[?0c:let g:bufs+=[bufnr('%')]

[?25l[?1c:[?25h[?0c:wincmd j

[?25l[?1c:[?25h[?0c:vnew

[?25l[?1c:[?25h[?0c:let g:bufs+=[bufnr('%')]

[?25l[?1c:[?25h[?0c:wincmd l

[?25l[?1c:[?25h[?0c:fun RecVars(opt)

[?25l[?1c:[?25h[?0c:  let gval =string(eval('&g:'.a:opt))

[?25l[?1c:[?25h[?0c:  let wvals=join(map(range(1, 4),  'v:val.":".string(getwinvar(v:va

l, "&".a:opt))'))

[?25l[?1c:[?25h[?0c:  let bvals=join(map(copy(g:bufs), 'v:val.":".string(getbufvar(v:va

l, "&".a:opt))'))

[?25l[?1c:[?25h[?0c:  put ='  G: '.gval

[?25l[?1c:[?25h[?0c:  put ='  W: '.wvals

[?25l[?1c:[?25h[?0c:  put ='  B: '.wvals

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef e(s, g=globals(), l=locals()):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        exec(s, g, l)

[?25l[?1c:[?25h[?0c    except Exception as e:

[?25l[?1c:[?25h[?0c        vim.command('return ' + repr(e.__class__.__name__))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef ev(s, g=globals(), l=locals()):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        return eval(s, g, l)

[?25l[?1c:[?25h[?0c    except Exception as e:

[?25l[?1c:[?25h[?0c        vim.command('let exc=' + repr(e.__class__.__name__))

[?25l[?1c:[?25h[?0c        return 0

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:fun E(s)

[?25l[?1c:[?25h[?0c:   python3 e(vim.eval('a:s'))

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:fun Ev(s)

[?25l[?1c:[?25h[?0c:   let r=py3eval('ev(vim.eval("a:s"))')

[?25l[?1c:[?25h[?0c:   if exists('exc')

[?25l[?1c:[?25h[?0c:       throw exc

[?25l[?1c:[?25h[?0c:   endif

[?25l[?1c:[?25h[?0c:   return r

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:py3 gopts1=vim.options

[?25l[?1c:[?25h[?0c:py3 wopts1=vim.windows[2].options

[?25l[?1c:[?25h[?0c:py3 wopts2=vim.windows[0].options

[?25l[?1c:[?25h[?0c:py3 wopts3=vim.windows[1].options

[?25l[?1c:[?25h[?0c:py3 bopts1=vim.buffers[vim.bindeval("g:bufs")[2]].options

[?25l[?1c:[?25h[?0c:py3 bopts2=vim.buffers[vim.bindeval("g:bufs")[1]].options

[?25l[?1c:[?25h[?0c:py3 bopts3=vim.buffers[vim.bindeval("g:bufs")[0]].options

[?25l[?1c:[?25h[?0c:$put ='wopts iters equal: '.py3eval('list(wopts1) == list(wopts

2)')

[?25l[?1c:[?25h[?0c:$put ='bopts iters equal: '.py3eval('list(bopts1) == list(bopts

2)')

[?25l[?1c:[?25h[?0c:py3 gset=set(iter(gopts1))

[?25l[?1c:[?25h[?0c:py3 wset=set(iter(wopts1))

[?25l[?1c:[?25h[?0c:py3 bset=set(iter(bopts1))

[?25l[?1c:[?25h[?0c:set path=.,..,,

[?25l[?1c:[?25h[?0c:let lst=[]

[?25l[?1c:[?25h[?0c:let lst+=[['paste',          1,     0,     1,     2,      1,   

1,      0    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['previewheight',  5,     1,     6,     'a',    0,   

1,      0    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['operatorfunc',   'A',   'B',   'C',   2,      0,   

1,      0    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['number',         0,     1,     1,     0,      1,   

0,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['numberwidth',    2,     3,     5,     -100,   0,   

0,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['colorcolumn',    '+1',  '+2',  '+3',  'abc4',  0,  

 0,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['statusline',     '1',   '2',   '4',   0,      0,   

1,      1    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['autoindent',     0,     1,     1,     2,      1,   

0,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['shiftwidth',     0,     2,     1,     3,      0,   

0,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['omnifunc',       'A',   'B',   'C',   1,      0,   

0,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['preserveindent', 0,     1,     1,     2,      1,   

1,      2    ]]

[?25l[?1c:[?25h[?0c:let lst+=[['path',           '.,,', ',,',  '.',   0,      0,   

1,      2    ]]

[?25l[?1c:[?25h[?0c:for       [oname,            oval1, oval2, oval3, invval, bool,

global, local] in lst

[?25l[?1c:[?25h[?0c:   py3 oname=vim.eval('oname')

[?25l[?1c:[?25h[?0c:   py3 oval1=vim.bindeval('oval1')

[?25l[?1c:[?25h[?0c:   py3 oval2=vim.bindeval('oval2')

[?25l[?1c:[?25h[?0c:   py3 oval3=vim.bindeval('oval3')

[?25l[?1c:[?25h[?0c:   if invval is 0 || invval is 1

[?25l[?1c:[?25h[?0c:       py3 invval=bool(vim.bindeval('invval'))

[?25l[?1c:[?25h[?0c:   else

[?25l[?1c:[?25h[?0c:       py3 invval=vim.bindeval('invval')

[?25l[?1c:[?25h[?0c:   endif

[?25l[?1c:[?25h[?0c:   if bool

[?25l[?1c:[?25h[?0c:       py3 oval1=bool(oval1)

[?25l[?1c:[?25h[?0c:       py3 oval2=bool(oval2)

[?25l[?1c:[?25h[?0c:       py3 oval3=bool(oval3)

[?25l[?1c:[?25h[?0c:   endif

[?25l[?1c:[?25h[?0c:   put ='>>> '.oname

[?25l[?1c:[?25h[?0c:   $put ='  g/w/b:'.py3eval('oname in gset').'/'.py3eval('ona

me in wset').'/'.py3eval('oname in bset')

[?25l[?1c:[?25h[?0c:   $put ='  g/w/b (in):'.py3eval('oname in gopts1').'/'.py3ev

al('oname in wopts1').'/'.py3eval('oname in bopts1')

[?25l[?1c:[?25h[?0c:   for v in ['gopts1', 'wopts1', 'bopts1']

[?25l[?1c:[?25h[?0c:       try

[?25l[?1c:[?25h[?0c:           put ='  p/'.v.': '.Ev('repr('.v.'['''.oname.''

'])')

[?25l[?1c:[?25h[?0c:       catch

[?25l[?1c:[?25h[?0c:           put ='  p/'.v.'! '.v:exception

[?25l[?1c:[?25h[?0c:       endtry

[?25l[?1c:[?25h[?0c:       let r=E(v.'['''.oname.''']=invval')

[?25l[?1c:[?25h[?0c:       if r isnot 0

[?25l[?1c:[?25h[?0c:           put ='  inv: '.string(invval).'! '.r

[?25l[?1c:[?25h[?0c:       endif

[?25l[?1c:[?25h[?0c:       for vv in (v is# 'gopts1' ? [v] : [v, v[:-2].'2', v[

:-2].'3'])

[?25l[?1c:[?25h[?0c:           let val=substitute(vv, '^.opts', 'oval', '')

[?25l[?1c:[?25h[?0c:           let r=E(vv.'['''.oname.''']='.val)

[?25l[?1c:[?25h[?0c:           if r isnot 0

[?25l[?1c:[?25h[?0c:               put ='  '.vv.'! '.r

[?25l[?1c:[?25h[?0c:           endif

[?25l[?1c:[?25h[?0c:       endfor

[?25l[?1c:[?25h[?0c:   endfor

[?25l[?1c:[?25h[?0c:   call RecVars(oname)

[?25l[?1c:[?25h[?0c:   for v in ['wopts3', 'bopts3']

[?25l[?1c:[?25h[?0c:       let r=E('del '.v.'["'.oname.'"]')

[?25l[?1c:[?25h[?0c:       if r isnot 0

[?25l[?1c:[?25h[?0c:           put ='  del '.v.'! '.r

[?25l[?1c:[?25h[?0c:       endif

[?25l[?1c:[?25h[?0c:   endfor

[?25l[?1c:[?25h[?0c:   call RecVars(oname)

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:delfunction RecVars

[?25l[?1c:[?25h[?0c:delfunction E

[?25l[?1c:[?25h[?0c:delfunction Ev

[?25l[?1c:[?25h[?0c:py3 del ev

[?25l[?1c:[?25h[?0c:py3 del e

[?25l[?1c:[?25h[?0c:only

[?25l[?1c:[?25h[?0c:for buf in g:bufs[1:]

[?25l[?1c:[?25h[?0c:   execute 'bwipeout!' buf

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:py3 del gopts1

[?25l[?1c:[?25h[?0c:py3 del wopts1

[?25l[?1c:[?25h[?0c:py3 del wopts2

[?25l[?1c:[?25h[?0c:py3 del wopts3

[?25l[?1c:[?25h[?0c:py3 del bopts1

[?25l[?1c:[?25h[?0c:py3 del bopts2

[?25l[?1c:[?25h[?0c:py3 del bopts3

[?25l[?1c:[?25h[?0c:py3 del oval1

[?25l[?1c:[?25h[?0c:py3 del oval2

[?25l[?1c:[?25h[?0c:py3 del oval3

[?25l[?1c:[?25h[?0c:py3 del oname

[?25l[?1c:[?25h[?0c:py3 del invval

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test buffer object

[?25l[?1c:[?25h[?0c:vnew

[?25l[?1c:[?25h[?0c:put ='First line'

[?25l[?1c:[?25h[?0c:put ='Second line'

[?25l[?1c:[?25h[?0c:put ='Third line'

[?25l[?1c:[?25h[?0c:1 delete _

[?25l[?1c:[?25h[?0c:py3 b=vim.current.buffer

[?25l[?1c:[?25h[?0c:wincmd w

[?25l[?1c:[?25h[?0c:mark a

[?25l[?1c:[?25h[?0c:augroup BUFS

[?25l[?1c:[?25h[?0c:   autocmd BufFilePost * python3 cb.append(vim.eval('expand("<a

buf>")') + ':BufFilePost:' + vim.eval('bufnr("%")'))

[?25l[?1c:[?25h[?0c:   autocmd BufFilePre * python3 cb.append(vim.eval('expand("<ab

uf>")') + ':BufFilePre:' + vim.eval('bufnr("%")'))

[?25l[?1c:[?25h[?0c:augroup END

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0c# Tests BufferAppend and BufferItem

[?25l[?1c:[?25h[?0ccb.append(b[0])

[?25l[?1c:[?25h[?0c# Tests BufferSlice and BufferAssSlice

[?25l[?1c:[?25h[?0ccb.append('abc5') # Will be overwritten

[?25l[?1c:[?25h[?0ccb[-1:] = b[:-2]

[?25l[?1c:[?25h[?0c# Test BufferLength and BufferAssSlice

[?25l[?1c:[?25h[?0ccb.append('def') # Will not be overwritten

[?25l[?1c:[?25h[?0ccb[len(cb):] = b[:]

[?25l[?1c:[?25h[?0c# Test BufferAssItem and BufferMark

[?25l[?1c:[?25h[?0ccb.append('ghi') # Will be overwritten

[?25l[?1c:[?25h[?0ccb[-1] = repr((len(cb) - cb.mark('a')[0], cb.mark('a')[1]))

[?25l[?1c:[?25h[?0c# Test BufferRepr

[?25l[?1c:[?25h[?0ccb.append(repr(cb) + repr(b))

[?25l[?1c:[?25h[?0c# Modify foreign buffer

[?25l[?1c:[?25h[?0cb.append('foo')

[?25l[?1c:[?25h[?0cb[0]='bar'

[?25l[?1c:[?25h[?0cb[0:0]=['baz']

[?25l[?1c:[?25h[?0cvim.command('call append("$", getbufline(%i, 1, "$"))' % b.numbe

r)
[?25l[?1c:[?25h[?0c# Test assigning to name property

[?25l[?1c:[?25h[?0cimport os

[?25l[?1c:[?25h[?0cold_name = cb.name

[?25l[?1c:[?25h[?0ccb.name = 'foo'

[?25l[?1c:[?25h[?0ccb.append(cb.name[-11:].replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0cb.name = 'bar'

[?25l[?1c:[?25h[?0ccb.append(b.name[-11:].replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0ccb.name = old_name

[?25l[?1c:[?25h[?0ccb.append(cb.name[-17:].replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0cdel old_name

[?25l[?1c:[?25h[?0c# Test CheckBuffer

[?25l[?1c:[?25h[?0cfor _b in vim.buffers:

[?25l[?1c:[?25h[?0c    if _b is not cb:

[?25l[?1c:[?25h[?0c        vim.command('bwipeout! ' + str(_b.number))

[?25l[?1c:[?25h[?0cdel _b

[?25l[?1c:[?25h[?0ccb.append('valid: b:%s, cb:%s' % (repr(b.valid), repr(cb.valid))

)
[?25l[?1c:[?25h[?0cfor expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc6")

'):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        exec(expr)

[?25l[?1c:[?25h[?0c    except vim.error:

[?25l[?1c:[?25h[?0c        pass

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        # Usually a SEGV here

[?25l[?1c:[?25h[?0c        # Should not happen in any case

[?25l[?1c:[?25h[?0c        cb.append('No exception for ' + expr)

[?25l[?1c:[?25h[?0cvim.command('cd .')

[?25l[?1c:[?25h[?0cdel b

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.buffers object

[?25l[?1c:[?25h[?0c:set hidden

[?25l[?1c:[?25h[?0c:edit a

[?25l[?1c:[?25h[?0c:buffer #

[?25l[?1c:[?25h[?0c:edit b

[?25l[?1c:[?25h[?0c:buffer #

[?25l[?1c:[?25h[?0c:edit c

[?25l[?1c:[?25h[?0c:buffer #

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0c# Check GCing iterator that was not fully exhausted

[?25l[?1c:[?25h[?0ci = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i:' + str(next(i)))

[?25l[?1c:[?25h[?0c# and also check creating more than one iterator at a time

[?25l[?1c:[?25h[?0ci2 = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i2:' + str(next(i2)))

[?25l[?1c:[?25h[?0ccb.append('i:' + str(next(i)))

[?25l[?1c:[?25h[?0c# The following should trigger GC and not cause any problems

[?25l[?1c:[?25h[?0cdel i

[?25l[?1c:[?25h[?0cdel i2

[?25l[?1c:[?25h[?0ci3 = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i3:' + str(next(i3)))

[?25l[?1c:[?25h[?0cdel i3

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cprevnum = 0

[?25l[?1c:[?25h[?0cfor b in vim.buffers:

[?25l[?1c:[?25h[?0c    # Check buffer order

[?25l[?1c:[?25h[?0c    if prevnum >= b.number:

[?25l[?1c:[?25h[?0c        cb.append('!!! Buffer numbers not in strictly ascending 

order')

[?25l[?1c:[?25h[?0c    # Check indexing: vim.buffers[number].number == number

[?25l[?1c:[?25h[?0c    cb.append(str(b.number) + ':' + repr(vim.buffers[b.number]) 

+ '=' + repr(b))

[?25l[?1c:[?25h[?0c    prevnum = b.number

[?25l[?1c:[?25h[?0cdel prevnum

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append(str(len(vim.buffers)))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cbnums = list(map(lambda b: b.number, vim.buffers))[1:]

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c# Test wiping out buffer with existing iterator

[?25l[?1c:[?25h[?0ci4 = iter(vim.buffers)

[?25l[?1c:[?25h[?0ccb.append('i4:' + str(next(i4)))

[?25l[?1c:[?25h[?0cvim.command('bwipeout! ' + str(bnums.pop(0)))

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    next(i4)

[?25l[?1c:[?25h[?0cexcept vim.error:

[?25l[?1c:[?25h[?0c    pass

[?25l[?1c:[?25h[?0celse:

[?25l[?1c:[?25h[?0c    cb.append('!!!! No vim.error')

[?25l[?1c:[?25h[?0ci4 = iter(vim.buffers)

[?25l[?1c:[?25h[?0cvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l[?1c:[?25h[?0cvim.command('bwipeout! ' + str(bnums.pop(-1)))

[?25l[?1c:[?25h[?0ccb.append('i4:' + str(next(i4)))

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    next(i4)

[?25l[?1c:[?25h[?0cexcept StopIteration:

[?25l[?1c:[?25h[?0c    cb.append('StopIteration')

[?25l[?1c:[?25h[?0cdel i4

[?25l[?1c:[?25h[?0cdel bnums

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.{tabpage,window}list and vim.{tabpage,window} object

s
[?25l[?1c:[?25h[?0c:tabnew 0

[?25l[?1c:[?25h[?0c:tabnew 1

[?25l[?1c:[?25h[?0c:vnew a.1

[?25l[?1c:[?25h[?0c:tabnew 2

[?25l[?1c:[?25h[?0c:vnew a.2

[?25l[?1c:[?25h[?0c:vnew b.2

[?25l[?1c:[?25h[?0c:vnew c.2

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0ccb.append('Number of tabs: ' + str(len(vim.tabpages)))

[?25l[?1c:[?25h[?0ccb.append('Current tab pages:')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef W(w):

[?25l[?1c:[?25h[?0c    if '(unknown)' in repr(w):

[?25l[?1c:[?25h[?0c        return '<window object (unknown)>'

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        return repr(w)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef Cursor(w, start=len(cb)):

[?25l[?1c:[?25h[?0c    if w.buffer is cb:

[?25l[?1c:[?25h[?0c        return repr((start - w.cursor[0], w.cursor[1]))

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        return repr(w.cursor)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cfor t in vim.tabpages:

[?25l[?1c:[?25h[?0c    cb.append('  ' + repr(t) + '(' + str(t.number) + ')' + ': ' 

+ str(len(t.windows)) + ' windows, current is ' + W(t.window))

[?25l[?1c:[?25h[?0c    cb.append('  Windows:')

[?25l[?1c:[?25h[?0c    for w in t.windows:

[?25l[?1c:[?25h[?0c        cb.append('    ' + W(w) + '(' + str(w.number) + ')' + ':

displays buffer ' + repr(w.buffer) + '; cursor is at ' + Cursor(w))

[?25l[?1c:[?25h[?0c        # Other values depend on the size of the terminal, so th

ey are checked partly:

[?25l[?1c:[?25h[?0c        for attr in ('height', 'row', 'width', 'col'):

[?25l[?1c:[?25h[?0c            try:

[?25l[?1c:[?25h[?0c                aval = getattr(w, attr)

[?25l[?1c:[?25h[?0c                if type(aval) is not int:

[?25l[?1c:[?25h[?0c                    raise TypeError

[?25l[?1c:[?25h[?0c                if aval < 0:

[?25l[?1c:[?25h[?0c                    raise ValueError

[?25l[?1c:[?25h[?0c            except Exception as e:

[?25l[?1c:[?25h[?0c                cb.append('!!!!!! Error while getting attribute 

' + attr + ': ' + e.__class__.__name__)

[?25l[?1c:[?25h[?0c        del aval

[?25l[?1c:[?25h[?0c        del attr

[?25l[?1c:[?25h[?0c        w.cursor = (len(w.buffer), 0)

[?25l[?1c:[?25h[?0cdel W

[?25l[?1c:[?25h[?0cdel Cursor

[?25l[?1c:[?25h[?0ccb.append('Number of windows in current tab page: ' + str(len(vi

m.windows)))

[?25l[?1c:[?25h[?0cif list(vim.windows) != list(vim.current.tabpage.windows):

[?25l[?1c:[?25h[?0c    cb.append('!!!!!! Windows differ')

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.current

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef H(o):

[?25l[?1c:[?25h[?0c    return repr(o)

[?25l[?1c:[?25h[?0ccb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l[?1c:[?25h[?0ccb.append('Current window: ' + repr(vim.current.window) + ': ' +

H(vim.current.window) + ' is ' + H(vim.current.tabpage.window))

[?25l[?1c:[?25h[?0ccb.append('Current buffer: ' + repr(vim.current.buffer) + ': ' +

H(vim.current.buffer) + ' is ' + H(vim.current.window.buffer)+ ' is ' + H(vim.c

urrent.tabpage.window.buffer))

[?25l[?1c:[?25h[?0cdel H

[?25l[?1c:[?25h[?0c# Assigning: fails

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    vim.current.window = vim.tabpages[0].window

[?25l[?1c:[?25h[?0cexcept ValueError:

[?25l[?1c:[?25h[?0c    cb.append('ValueError at assigning foreign tab window')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cfor attr in ('window', 'tabpage', 'buffer'):

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        setattr(vim.current, attr, None)

[?25l[?1c:[?25h[?0c    except TypeError:

[?25l[?1c:[?25h[?0c        cb.append('Type error at assigning None to vim.current.'

+ attr)

[?25l[?1c:[?25h[?0cdel attr

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c# Assigning: success

[?25l[?1c:[?25h[?0cvim.current.tabpage = vim.tabpages[-2]

[?25l[?1c:[?25h[?0cvim.current.buffer = cb

[?25l[?1c:[?25h[?0cvim.current.window = vim.windows[0]

[?25l[?1c:[?25h[?0cvim.current.window.cursor = (len(vim.current.buffer), 0)

[?25l[?1c:[?25h[?0ccb.append('Current tab page: ' + repr(vim.current.tabpage))

[?25l[?1c:[?25h[?0ccb.append('Current window: ' + repr(vim.current.window))

[?25l[?1c:[?25h[?0ccb.append('Current buffer: ' + repr(vim.current.buffer))

[?25l[?1c:[?25h[?0ccb.append('Current line: ' + repr(vim.current.line))

[?25l[?1c:[?25h[?0cws = list(vim.windows)

[?25l[?1c:[?25h[?0cts = list(vim.tabpages)

[?25l[?1c:[?25h[?0cfor b in vim.buffers:

[?25l[?1c:[?25h[?0c    if b is not cb:

[?25l[?1c:[?25h[?0c        vim.command('bwipeout! ' + str(b.number))

[?25l[?1c:[?25h[?0cdel b

[?25l[?1c:[?25h[?0ccb.append('w.valid: ' + repr([w.valid for w in ws]))

[?25l[?1c:[?25h[?0ccb.append('t.valid: ' + repr([t.valid for t in ts]))

[?25l[?1c:[?25h[?0cdel w

[?25l[?1c:[?25h[?0cdel t

[?25l[?1c:[?25h[?0cdel ts

[?25l[?1c:[?25h[?0cdel ws

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:tabonly!

[?25l[?1c:[?25h[?0c:only!

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test types

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cfor expr, attr in (

[?25l[?1c:[?25h[?0c    ('vim.vars',                         'Dictionary'),

[?25l[?1c:[?25h[?0c    ('vim.options',                      'Options'),

[?25l[?1c:[?25h[?0c    ('vim.bindeval("{}")',               'Dictionary'),

[?25l[?1c:[?25h[?0c    ('vim.bindeval("[]")',               'List'),

[?25l[?1c:[?25h[?0c    ('vim.bindeval("function(\'tr\')")', 'Function'),

[?25l[?1c:[?25h[?0c    ('vim.current.buffer',               'Buffer'),

[?25l[?1c:[?25h[?0c    ('vim.current.range',                'Range'),

[?25l[?1c:[?25h[?0c    ('vim.current.window',               'Window'),

[?25l[?1c:[?25h[?0c    ('vim.current.tabpage',              'TabPage'),

[?25l[?1c:[?25h[?0c):

[?25l[?1c:[?25h[?0c    cb.append(expr + ':' + attr + ':' + repr(type(eval(expr)) is

getattr(vim, attr)))

[?25l[?1c:[?25h[?0cdel expr

[?25l[?1c:[?25h[?0cdel attr

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test __dir__() method

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cfor name, o in (

[?25l[?1c:[?25h[?0c        ('current',    vim.current),

[?25l[?1c:[?25h[?0c        ('buffer',     vim.current.buffer),

[?25l[?1c:[?25h[?0c        ('window',     vim.current.window),

[?25l[?1c:[?25h[?0c        ('tabpage',    vim.current.tabpage),

[?25l[?1c:[?25h[?0c        ('range',      vim.current.range),

[?25l[?1c:[?25h[?0c        ('dictionary', vim.bindeval('{}')),

[?25l[?1c:[?25h[?0c        ('list',       vim.bindeval('[]')),

[?25l[?1c:[?25h[?0c        ('function',   vim.bindeval('function("tr")')),

[?25l[?1c:[?25h[?0c        ('output',     sys.stdout),

[?25l[?1c:[?25h[?0c    ):

[?25l[?1c:[?25h[?0c    cb.append(name + ':' + ','.join(dir(o)))

[?25l[?1c:[?25h[?0cdel name

[?25l[?1c:[?25h[?0cdel o

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.*.__new__

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Dictionary({})'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Dictionary(a=1)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Dictionary(((''a'', 1),))'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.List()'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.List(iter(''abc7''))'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'')'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4])'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[])'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', self={})'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={})'))

[?25l[?1c:[?25h[?0c:$put ='auto_rebind'

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', auto_rebind=False)')

)
[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], au

to_rebind=False)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[], auto_rebind

=False)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', self={}, auto_rebind

=False)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('vim.Function(''tr'', args=[123, 3, 4], se

lf={}, auto_rebind=False)'))

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test vim.Function

[?25l[?1c:[?25h[?0c:function Args(...)

[?25l[?1c:[?25h[?0c:   return a:000

[?25l[?1c:[?25h[?0c:endfunction

[?25l[?1c:[?25h[?0c:function SelfArgs(...) dict

[?25l[?1c:[?25h[?0c:   return [a:000, self]

[?25l[?1c:[?25h[?0c:endfunction

[?25l[?1c:[?25h[?0c:" The following four lines should not crash

[?25l[?1c:[?25h[?0c:let Pt = function('tr', [[]], {'l': []})

[?25l[?1c:[?25h[?0c:py3 Pt = vim.bindeval('Pt')

[?25l[?1c:[?25h[?0c:unlet Pt

[?25l[?1c:[?25h[?0c:py3 del Pt

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef ecall(out_prefix, func, *args, **kwargs):

[?25l[?1c:[?25h[?0c    line = out_prefix + ': '

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        ret = func(*args, **kwargs)

[?25l[?1c:[?25h[?0c    except Exception:

[?25l[?1c:[?25h[?0c        line += '!exception: ' + emsg(sys.exc_info())

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        line += '!result: ' + str(vim.Function('string')(ret

), 'utf-8')

[?25l[?1c:[?25h[?0c    cb.append(line)

[?25l[?1c:[?25h[?0ca = vim.Function('Args')

[?25l[?1c:[?25h[?0cpa1 = vim.Function('Args', args=['abcArgsPA1'])

[?25l[?1c:[?25h[?0cpa2 = vim.Function('Args', args=[])

[?25l[?1c:[?25h[?0cpa3 = vim.Function('Args', args=['abcArgsPA3'], self={'abcSe

lfPA3': 'abcSelfPA3Val'})

[?25l[?1c:[?25h[?0cpa4 = vim.Function('Args', self={'abcSelfPA4': 'abcSelfPA4Va

l'})

[?25l[?1c:[?25h[?0ccb.append('a: ' + repr(a))

[?25l[?1c:[?25h[?0ccb.append('pa1: ' + repr(pa1))

[?25l[?1c:[?25h[?0ccb.append('pa2: ' + repr(pa2))

[?25l[?1c:[?25h[?0ccb.append('pa3: ' + repr(pa3))

[?25l[?1c:[?25h[?0ccb.append('pa4: ' + repr(pa4))

[?25l[?1c:[?25h[?0csa = vim.Function('SelfArgs')

[?25l[?1c:[?25h[?0cpsa1 = vim.Function('SelfArgs', args=['abcArgsPSA1'])

[?25l[?1c:[?25h[?0cpsa2 = vim.Function('SelfArgs', args=[])

[?25l[?1c:[?25h[?0cpsa3 = vim.Function('SelfArgs', args=['abcArgsPSA3'], self={

'abcSelfPSA3': 'abcSelfPSA3Val'})

[?25l[?1c:[?25h[?0cpsa4 = vim.Function('SelfArgs', self={'abcSelfPSA4': 'abcSel

fPSA4Val'})

[?25l[?1c:[?25h[?0cpsa5 = vim.Function('SelfArgs', self={'abcSelfPSA5': 'abcSel

fPSA5Val'}, auto_rebind=0)

[?25l[?1c:[?25h[?0cpsa6 = vim.Function('SelfArgs', args=['abcArgsPSA6'], self={

'abcSelfPSA6': 'abcSelfPSA6Val'}, auto_rebind=())

[?25l[?1c:[?25h[?0cpsa7 = vim.Function('SelfArgs', args=['abcArgsPSA7'], auto_r

ebind=[])

[?25l[?1c:[?25h[?0cpsa8 = vim.Function('SelfArgs', auto_rebind=False)

[?25l[?1c:[?25h[?0cpsa9 = vim.Function('SelfArgs', self={'abcSelfPSA9': 'abcSel

fPSA9Val'}, auto_rebind=True)

[?25l[?1c:[?25h[?0cpsaA = vim.Function('SelfArgs', args=['abcArgsPSAA'], self={

'abcSelfPSAA': 'abcSelfPSAAVal'}, auto_rebind=1)

[?25l[?1c:[?25h[?0cpsaB = vim.Function('SelfArgs', args=['abcArgsPSAB'], auto_r

ebind={'abcARPSAB': 'abcARPSABVal'})

[?25l[?1c:[?25h[?0cpsaC = vim.Function('SelfArgs', auto_rebind=['abcARPSAC'])

[?25l[?1c:[?25h[?0ccb.append('sa: ' + repr(sa))

[?25l[?1c:[?25h[?0ccb.append('psa1: ' + repr(psa1))

[?25l[?1c:[?25h[?0ccb.append('psa2: ' + repr(psa2))

[?25l[?1c:[?25h[?0ccb.append('psa3: ' + repr(psa3))

[?25l[?1c:[?25h[?0ccb.append('psa4: ' + repr(psa4))

[?25l[?1c:[?25h[?0ccb.append('psa5: ' + repr(psa5))

[?25l[?1c:[?25h[?0ccb.append('psa6: ' + repr(psa6))

[?25l[?1c:[?25h[?0ccb.append('psa7: ' + repr(psa7))

[?25l[?1c:[?25h[?0ccb.append('psa8: ' + repr(psa8))

[?25l[?1c:[?25h[?0ccb.append('psa9: ' + repr(psa9))

[?25l[?1c:[?25h[?0ccb.append('psaA: ' + repr(psaA))

[?25l[?1c:[?25h[?0ccb.append('psaB: ' + repr(psaB))

[?25l[?1c:[?25h[?0ccb.append('psaC: ' + repr(psaC))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cpsar = vim.Function('SelfArgs', args=[{'abcArgsPSAr': 'abcAr

gsPSArVal'}], self={'abcSelfPSAr': 'abcSelfPSArVal'})

[?25l[?1c:[?25h[?0cpsar.args[0]['abcArgsPSAr2'] = [psar.self, psar.args[0]]

[?25l[?1c:[?25h[?0cpsar.self['rec'] = psar

[?25l[?1c:[?25h[?0cpsar.self['self'] = psar.self

[?25l[?1c:[?25h[?0cpsar.self['args'] = psar.args

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ctry:

[?25l[?1c:[?25h[?0c    cb.append('psar: ' + repr(psar))

[?25l[?1c:[?25h[?0cexcept Exception:

[?25l[?1c:[?25h[?0c    cb.append('!!!!!!!! Caught exception: ' + emsg(sys.exc_i

nfo()))

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:$put ='s(a): '.string(py3eval('a'))

[?25l[?1c:[?25h[?0c:$put ='s(pa1): '.string(py3eval('pa1'))

[?25l[?1c:[?25h[?0c:$put ='s(pa2): '.string(py3eval('pa2'))

[?25l[?1c:[?25h[?0c:$put ='s(pa3): '.string(py3eval('pa3'))

[?25l[?1c:[?25h[?0c:$put ='s(pa4): '.string(py3eval('pa4'))

[?25l[?1c:[?25h[?0c:$put ='s(sa): '.string(py3eval('sa'))

[?25l[?1c:[?25h[?0c:$put ='s(psa1): '.string(py3eval('psa1'))

[?25l[?1c:[?25h[?0c:$put ='s(psa2): '.string(py3eval('psa2'))

[?25l[?1c:[?25h[?0c:$put ='s(psa3): '.string(py3eval('psa3'))

[?25l[?1c:[?25h[?0c:$put ='s(psa4): '.string(py3eval('psa4'))

[?25l[?1c:[?25h[?0c:$put ='s(psa5): '.string(py3eval('psa5'))

[?25l[?1c:[?25h[?0c:$put ='s(psa6): '.string(py3eval('psa6'))

[?25l[?1c:[?25h[?0c:$put ='s(psa7): '.string(py3eval('psa7'))

[?25l[?1c:[?25h[?0c:$put ='s(psa8): '.string(py3eval('psa8'))

[?25l[?1c:[?25h[?0c:$put ='s(psa9): '.string(py3eval('psa9'))

[?25l[?1c:[?25h[?0c:$put ='s(psaA): '.string(py3eval('psaA'))

[?25l[?1c:[?25h[?0c:$put ='s(psaB): '.string(py3eval('psaB'))

[?25l[?1c:[?25h[?0c:$put ='s(psaC): '.string(py3eval('psaC'))

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:for v in ['sa', 'psa1', 'psa2', 'psa3', 'psa4', 'psa5', 'ps

a6', 'psa7', 'psa8', 'psa9', 'psaA', 'psaB', 'psaC']

[?25l[?1c:[?25h[?0c:   let d = {'f': py3eval(v)}

[?25l[?1c:[?25h[?0c:   $put ='d.'.v.'(): '.string(d.f())

[?25l[?1c:[?25h[?0c:endfor

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a()', a, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa1()', pa1, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa2()', pa2, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa3()', pa3, )

[?25l[?1c:[?25h[?0c:py3 ecall('pa4()', pa4, )

[?25l[?1c:[?25h[?0c:py3 ecall('sa()', sa, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa1()', psa1, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa2()', psa2, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa3()', psa3, )

[?25l[?1c:[?25h[?0c:py3 ecall('psa4()', psa4, )

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a(42, 43)', a, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa1(42, 43)', pa1, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa2(42, 43)', pa2, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa3(42, 43)', pa3, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('pa4(42, 43)', pa4, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('sa(42, 43)', sa, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa1(42, 43)', psa1, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa2(42, 43)', psa2, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa3(42, 43)', psa3, 42, 43)

[?25l[?1c:[?25h[?0c:py3 ecall('psa4(42, 43)', psa4, 42, 43)

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a(42, self={"20": 1})', a, 42, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa1(42, self={"20": 1})', pa1, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('pa2(42, self={"20": 1})', pa2, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('pa3(42, self={"20": 1})', pa3, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('pa4(42, self={"20": 1})', pa4, 42, self={'20': 1

})
[?25l[?1c:[?25h[?0c:py3 ecall('sa(42, self={"20": 1})', sa, 42, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa1(42, self={"20": 1})', psa1, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa2(42, self={"20": 1})', psa2, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa3(42, self={"20": 1})', psa3, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa4(42, self={"20": 1})', psa4, 42, self={'20':

1})

[?25l[?1c:[?25h[?0c:

[?25l[?1c:[?25h[?0c:py3 ecall('a(self={"20": 1})', a, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa1(self={"20": 1})', pa1, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa2(self={"20": 1})', pa2, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa3(self={"20": 1})', pa3, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('pa4(self={"20": 1})', pa4, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('sa(self={"20": 1})', sa, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa1(self={"20": 1})', psa1, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa2(self={"20": 1})', psa2, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa3(self={"20": 1})', psa3, self={'20': 1})

[?25l[?1c:[?25h[?0c:py3 ecall('psa4(self={"20": 1})', psa4, self={'20': 1})

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef s(v):

[?25l[?1c:[?25h[?0c    if v is None:

[?25l[?1c:[?25h[?0c        return repr(v)

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        return str(vim.Function('string')(v), 'utf-8')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.args: ' + s(a.args))

[?25l[?1c:[?25h[?0ccb.append('pa1.args: ' + s(pa1.args))

[?25l[?1c:[?25h[?0ccb.append('pa2.args: ' + s(pa2.args))

[?25l[?1c:[?25h[?0ccb.append('pa3.args: ' + s(pa3.args))

[?25l[?1c:[?25h[?0ccb.append('pa4.args: ' + s(pa4.args))

[?25l[?1c:[?25h[?0ccb.append('sa.args: ' + s(sa.args))

[?25l[?1c:[?25h[?0ccb.append('psa1.args: ' + s(psa1.args))

[?25l[?1c:[?25h[?0ccb.append('psa2.args: ' + s(psa2.args))

[?25l[?1c:[?25h[?0ccb.append('psa3.args: ' + s(psa3.args))

[?25l[?1c:[?25h[?0ccb.append('psa4.args: ' + s(psa4.args))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.self: ' + s(a.self))

[?25l[?1c:[?25h[?0ccb.append('pa1.self: ' + s(pa1.self))

[?25l[?1c:[?25h[?0ccb.append('pa2.self: ' + s(pa2.self))

[?25l[?1c:[?25h[?0ccb.append('pa3.self: ' + s(pa3.self))

[?25l[?1c:[?25h[?0ccb.append('pa4.self: ' + s(pa4.self))

[?25l[?1c:[?25h[?0ccb.append('sa.self: ' + s(sa.self))

[?25l[?1c:[?25h[?0ccb.append('psa1.self: ' + s(psa1.self))

[?25l[?1c:[?25h[?0ccb.append('psa2.self: ' + s(psa2.self))

[?25l[?1c:[?25h[?0ccb.append('psa3.self: ' + s(psa3.self))

[?25l[?1c:[?25h[?0ccb.append('psa4.self: ' + s(psa4.self))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.name: ' + s(a.name))

[?25l[?1c:[?25h[?0ccb.append('pa1.name: ' + s(pa1.name))

[?25l[?1c:[?25h[?0ccb.append('pa2.name: ' + s(pa2.name))

[?25l[?1c:[?25h[?0ccb.append('pa3.name: ' + s(pa3.name))

[?25l[?1c:[?25h[?0ccb.append('pa4.name: ' + s(pa4.name))

[?25l[?1c:[?25h[?0ccb.append('sa.name: ' + s(sa.name))

[?25l[?1c:[?25h[?0ccb.append('psa1.name: ' + s(psa1.name))

[?25l[?1c:[?25h[?0ccb.append('psa2.name: ' + s(psa2.name))

[?25l[?1c:[?25h[?0ccb.append('psa3.name: ' + s(psa3.name))

[?25l[?1c:[?25h[?0ccb.append('psa4.name: ' + s(psa4.name))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append('a.auto_rebind: ' + s(a.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa1.auto_rebind: ' + s(pa1.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa2.auto_rebind: ' + s(pa2.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa3.auto_rebind: ' + s(pa3.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('pa4.auto_rebind: ' + s(pa4.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('sa.auto_rebind: ' + s(sa.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa1.auto_rebind: ' + s(psa1.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa2.auto_rebind: ' + s(psa2.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa3.auto_rebind: ' + s(psa3.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa4.auto_rebind: ' + s(psa4.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa5.auto_rebind: ' + s(psa5.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa6.auto_rebind: ' + s(psa6.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa7.auto_rebind: ' + s(psa7.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa8.auto_rebind: ' + s(psa8.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psa9.auto_rebind: ' + s(psa9.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psaA.auto_rebind: ' + s(psaA.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psaB.auto_rebind: ' + s(psaB.auto_rebind))

[?25l[?1c:[?25h[?0ccb.append('psaC.auto_rebind: ' + s(psaC.auto_rebind))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdel s

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdel a

[?25l[?1c:[?25h[?0cdel pa1

[?25l[?1c:[?25h[?0cdel pa2

[?25l[?1c:[?25h[?0cdel pa3

[?25l[?1c:[?25h[?0cdel pa4

[?25l[?1c:[?25h[?0cdel sa

[?25l[?1c:[?25h[?0cdel psa1

[?25l[?1c:[?25h[?0cdel psa2

[?25l[?1c:[?25h[?0cdel psa3

[?25l[?1c:[?25h[?0cdel psa4

[?25l[?1c:[?25h[?0cdel psa5

[?25l[?1c:[?25h[?0cdel psa6

[?25l[?1c:[?25h[?0cdel psa7

[?25l[?1c:[?25h[?0cdel psa8

[?25l[?1c:[?25h[?0cdel psa9

[?25l[?1c:[?25h[?0cdel psaA

[?25l[?1c:[?25h[?0cdel psaB

[?25l[?1c:[?25h[?0cdel psaC

[?25l[?1c:[?25h[?0cdel psar

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdel ecall

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test stdout/stderr

[?25l[?1c:[?25h[?0c:redir => messages

[?25l[?1c:[?25h[?0c:py3 sys.stdout.write('abc8') ; sys.stdout.write('def')

[?25l[?1c:[?25h[?0c:py3 sys.stderr.write('abc9') ; sys.stderr.write('def')

[?25l[?1c:[?25h[?0c:py3 sys.stdout.writelines(iter('abcA'))

[?25l[?1c:[?25h[?0c:py3 sys.stderr.writelines(iter('abcB'))

[?25l[?1c:[?25h[?0c:redir END

[?25l[?1c:[?25h[?0c:$put =string(substitute(messages, '\d\+', '', 'g'))

[?25l[?1c:[?25h[?0c:" Test subclassing

[?25l[?1c:[?25h[?0c:fun Put(...)

[?25l[?1c:[?25h[?0c:   $put =string(a:000)

[?25l[?1c:[?25h[?0c:   return a:000

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cclass DupDict(vim.Dictionary):

[?25l[?1c:[?25h[?0c    def __setitem__(self, key, value):

[?25l[?1c:[?25h[?0c        super(DupDict, self).__setitem__(key, value)

[?25l[?1c:[?25h[?0c        super(DupDict, self).__setitem__('dup_' + key, val

ue)

[?25l[?1c:[?25h[?0cdd = DupDict()

[?25l[?1c:[?25h[?0cdd['a'] = 'b'

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass DupList(vim.List):

[?25l[?1c:[?25h[?0c    def __getitem__(self, idx):

[?25l[?1c:[?25h[?0c        return [super(DupList, self).__getitem__(idx)] * 2

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdl = DupList()

[?25l[?1c:[?25h[?0cdl2 = DupList(iter('abcC'))

[?25l[?1c:[?25h[?0cdl.extend(dl2[0])

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass DupFun(vim.Function):

[?25l[?1c:[?25h[?0c    def __call__(self, arg):

[?25l[?1c:[?25h[?0c        return super(DupFun, self).__call__(arg, arg)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdf = DupFun('Put')

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:$put =string(sort(keys(py3eval('dd'))))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dl'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dl2'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('df(2)'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dl') is# py3eval('dl'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('dd') is# py3eval('dd'))

[?25l[?1c:[?25h[?0c:$put =string(py3eval('df'))

[?25l[?1c:[?25h[?0c:delfunction Put

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdel DupDict

[?25l[?1c:[?25h[?0cdel DupList

[?25l[?1c:[?25h[?0cdel DupFun

[?25l[?1c:[?25h[?0cdel dd

[?25l[?1c:[?25h[?0cdel dl

[?25l[?1c:[?25h[?0cdel dl2

[?25l[?1c:[?25h[?0cdel df

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test chdir

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cimport os

[?25l[?1c:[?25h[?0cfnamemodify = vim.Function('fnamemodify')

[?25l[?1c:[?25h[?0ccb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0ccb.append(vim.eval('@%'))

[?25l[?1c:[?25h[?0cos.chdir('..')

[?25l[?1c:[?25h[?0cpath = fnamemodify('.', ':p:h:t')

[?25l[?1c:[?25h[?0cif path != b'src':

[?25l[?1c:[?25h[?0c  # Running tests from a shadow directory, so move up anot

her level

[?25l[?1c:[?25h[?0c  # This will result in @% looking like shadow/testdir/tes

t87.in, hence the

[?25l[?1c:[?25h[?0c  # slicing to remove the leading path and path separator

[?25l[?1c:[?25h[?0c  os.chdir('..')

[?25l[?1c:[?25h[?0c  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0c  cb.append(vim.eval('@%')[len(path)+1:].replace(os.path.s

ep, '/'))

[?25l[?1c:[?25h[?0c  os.chdir(path)

[?25l[?1c:[?25h[?0celse:

[?25l[?1c:[?25h[?0c  cb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0c  cb.append(vim.eval('@%').replace(os.path.sep, '/'))

[?25l[?1c:[?25h[?0cdel path

[?25l[?1c:[?25h[?0cos.chdir('testdir')

[?25l[?1c:[?25h[?0ccb.append(str(fnamemodify('.', ':p:h:t')))

[?25l[?1c:[?25h[?0ccb.append(vim.eval('@%'))

[?25l[?1c:[?25h[?0cdel fnamemodify

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test errors

[?25l[?1c:[?25h[?0c:fun F() dict

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0c:fun D()

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cd = vim.Dictionary()

[?25l[?1c:[?25h[?0cned = vim.Dictionary(foo='bar', baz='abcD')

[?25l[?1c:[?25h[?0cdl = vim.Dictionary(a=1)

[?25l[?1c:[?25h[?0cdl.locked = True

[?25l[?1c:[?25h[?0cl = vim.List()

[?25l[?1c:[?25h[?0cll = vim.List('abcE')

[?25l[?1c:[?25h[?0cll.locked = True

[?25l[?1c:[?25h[?0cnel = vim.List('abcO')

[?25l[?1c:[?25h[?0cf = vim.Function('string')

[?25l[?1c:[?25h[?0cfd = vim.Function('F')

[?25l[?1c:[?25h[?0cfdel = vim.Function('D')

[?25l[?1c:[?25h[?0cvim.command('delfunction D')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef subexpr_test(expr, name, subexprs):

[?25l[?1c:[?25h[?0c    cb.append('>>> Testing %s using %s' % (name, expr)

)
[?25l[?1c:[?25h[?0c    for subexpr in subexprs:

[?25l[?1c:[?25h[?0c        ee(expr % subexpr)

[?25l[?1c:[?25h[?0c    cb.append('<<< Finished')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef stringtochars_test(expr):

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'StringToChars', (

[?25l[?1c:[?25h[?0c        '1',       # Fail type checks

[?25l[?1c:[?25h[?0c        'b"\\0"',  # Fail PyString_AsStringAndSize(obj

ect, , NULL) check

[?25l[?1c:[?25h[?0c        '"\\0"',   # Fail PyString_AsStringAndSize(byt

es, , NULL) check

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass Mapping(object):

[?25l[?1c:[?25h[?0c    def __init__(self, d):

[?25l[?1c:[?25h[?0c        self.d = d

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __getitem__(self, key):

[?25l[?1c:[?25h[?0c        return self.d[key]

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def keys(self):

[?25l[?1c:[?25h[?0c        return self.d.keys()

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def items(self):

[?25l[?1c:[?25h[?0c        return self.d.items()

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef convertfrompyobject_test(expr, recurse=True):

[?25l[?1c:[?25h[?0c    # pydict_to_tv

[?25l[?1c:[?25h[?0c    stringtochars_test(expr % '{%s : 1}')

[?25l[?1c:[?25h[?0c    if recurse:

[?25l[?1c:[?25h[?0c        convertfrompyobject_test(expr % '{"abcF" : %s}

', False)

[?25l[?1c:[?25h[?0c    # pymap_to_tv

[?25l[?1c:[?25h[?0c    stringtochars_test(expr % 'Mapping({%s : 1})')

[?25l[?1c:[?25h[?0c    if recurse:

[?25l[?1c:[?25h[?0c        convertfrompyobject_test(expr % 'Mapping({"abc

G" : %s})', False)

[?25l[?1c:[?25h[?0c    # pyseq_to_tv

[?25l[?1c:[?25h[?0c    iter_test(expr)

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'ConvertFromPyObject', (

[?25l[?1c:[?25h[?0c        'None',                 # Not conversible

[?25l[?1c:[?25h[?0c        '{b"": 1}',             # Empty key not allowe

d
[?25l[?1c:[?25h[?0c        '{"": 1}',              # Same, but with unico

de object

[?25l[?1c:[?25h[?0c        'FailingMapping()',     #

[?25l[?1c:[?25h[?0c        'FailingMappingKey()',  #

[?25l[?1c:[?25h[?0c        'FailingNumber()',      #

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef convertfrompymapping_test(expr):

[?25l[?1c:[?25h[?0c    convertfrompyobject_test(expr)

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'ConvertFromPyMapping', 

(
[?25l[?1c:[?25h[?0c        '[]',

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef iter_test(expr):

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, '*Iter*', (

[?25l[?1c:[?25h[?0c        'FailingIter()',

[?25l[?1c:[?25h[?0c        'FailingIterNext()',

[?25l[?1c:[?25h[?0c    ))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cdef number_test(expr, natural=False, unsigned=False):

[?25l[?1c:[?25h[?0c    if natural:

[?25l[?1c:[?25h[?0c        unsigned = True

[?25l[?1c:[?25h[?0c    return subexpr_test(expr, 'NumberToLong', (

[?25l[?1c:[?25h[?0c        '[]',

[?25l[?1c:[?25h[?0c        'None',

[?25l[?1c:[?25h[?0c    ) + (('-1',) if unsigned else ())

[?25l[?1c:[?25h[?0c    + (('0',) if natural else ()))

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingTrue(object):

[?25l[?1c:[?25h[?0c    def __bool__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('bool')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingIter(object):

[?25l[?1c:[?25h[?0c    def __iter__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('iter')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingIterNext(object):

[?25l[?1c:[?25h[?0c    def __iter__(self):

[?25l[?1c:[?25h[?0c        return self

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __next__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('next')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingIterNextN(object):

[?25l[?1c:[?25h[?0c    def __init__(self, n):

[?25l[?1c:[?25h[?0c        self.n = n

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __iter__(self):

[?25l[?1c:[?25h[?0c        return self

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def __next__(self):

[?25l[?1c:[?25h[?0c        if self.n:

[?25l[?1c:[?25h[?0c            self.n -= 1

[?25l[?1c:[?25h[?0c            return 1

[?25l[?1c:[?25h[?0c        else:

[?25l[?1c:[?25h[?0c            raise NotImplementedError('next N')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingMappingKey(object):

[?25l[?1c:[?25h[?0c    def __getitem__(self, item):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('getitem:mappingkey'

)
[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def keys(self):

[?25l[?1c:[?25h[?0c        return list("abcH")

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingMapping(object):

[?25l[?1c:[?25h[?0c    def __getitem__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('getitem:mapping')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0c    def keys(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('keys')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingList(list):

[?25l[?1c:[?25h[?0c    def __getitem__(self, idx):

[?25l[?1c:[?25h[?0c        if i == 2:

[?25l[?1c:[?25h[?0c            raise NotImplementedError('getitem:list')

[?25l[?1c:[?25h[?0c        else:

[?25l[?1c:[?25h[?0c            return super(FailingList, self).__getitem_

_(idx)

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass NoArgsCall(object):

[?25l[?1c:[?25h[?0c    def __call__(self):

[?25l[?1c:[?25h[?0c        pass

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingCall(object):

[?25l[?1c:[?25h[?0c    def __call__(self, path):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('call')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0cclass FailingNumber(object):

[?25l[?1c:[?25h[?0c    def __int__(self):

[?25l[?1c:[?25h[?0c        raise NotImplementedError('int')

[?25l[?1c:[?25h[?0c

[?25l[?1c:[?25h[?0ccb.append("> Output")

[?25l[?1c:[?25h[?0ccb.append(">> OutputSetattr")

[?25l[?1c:[?25h[?0cee('del sys.stdout.softspace')

[?25l[?1c:[?25h[?0cnumber_test('sys.stdout.softspace = %s', unsigned=True

)
[?25l[?1c:[?25h[?0cnumber_test('sys.stderr.softspace = %s', unsigned=True

)
[?25l[?1c:[?25h[?0cee('assert sys.stdout.isatty()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.seekable()==False')

[?25l[?1c:[?25h[?0cee('sys.stdout.close()')

[?25l[?1c:[?25h[?0cee('sys.stdout.flush()')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.isatty()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.seekable()==False')

[?25l[?1c:[?25h[?0cee('sys.stderr.close()')

[?25l[?1c:[?25h[?0cee('sys.stderr.flush()')

[?25l[?1c:[?25h[?0cee('sys.stdout.attr = None')

[?25l[?1c:[?25h[?0ccb.append(">> OutputWrite")

[?25l[?1c:[?25h[?0cee('assert sys.stdout.writable()==True')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.readable()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.writable()==True')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.readable()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.closed()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.closed()==False')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.errors=="strict"')

[?25l[?1c:[?25h[?0cee('assert sys.stderr.errors=="strict"')

[?25l[?1c:[?25h[?0cee('assert sys.stdout.encoding==sys.stderr.encoding')

[?25l[?1c:[?25h[?0cee('sys.stdout.write(None)')

[?25l[?1c:[?25h[?0ccb.append(">> OutputWriteLines")

[?25l[?1c:[?25h[?0cee('sys.stdout.writelines(None)')

[?25l[?1c:[?25h[?0cee('sys.stdout.writelines([1])')

[?25l[?1c:[?25h[?0citer_test('sys.stdout.writelines(%s)')

[?25l[?1c:[?25h[?0ccb.append("> VimCommand")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.command(%s)')

[?25l[?1c:[?25h[?0cee('vim.command("", 2)')

[?25l[?1c:[?25h[?0c#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l[?1c:[?25h[?0ccb.append("> VimToPython")

[?25l[?1c:[?25h[?0c#! Not checked: everything: needs errors in internal p

ython functions

[?25l[?1c:[?25h[?0ccb.append("> VimEval")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.eval(%s)')

[?25l[?1c:[?25h[?0cee('vim.eval("", FailingTrue())')

[?25l[?1c:[?25h[?0c#! Not checked: everything: needs errors in internal p

ython functions

[?25l[?1c:[?25h[?0ccb.append("> VimEvalPy")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.bindeval(%s)')

[?25l[?1c:[?25h[?0cee('vim.eval("", 2)')

[?25l[?1c:[?25h[?0c#! Not checked: vim->python exceptions translating: ch

ecked later

[?25l[?1c:[?25h[?0ccb.append("> VimStrwidth")

[?25l[?1c:[?25h[?0cstringtochars_test('vim.strwidth(%s)')

[?25l[?1c:[?25h[?0ccb.append("> VimForeachRTP")

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(None)')

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(NoArgsCall())')

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(FailingCall())')

[?25l[?1c:[?25h[?0cee('vim.foreach_rtp(int, 2)')

[?25l[?1c:[?25h[?0ccb.append('> import')

[?25l[?1c:[?25h[?0cold_rtp = vim.options['rtp']

[?25l[?1c:[?25h[?0cvim.options['rtp'] = os.getcwd().replace('\\', '\\\\')

.replace(',', '\\,')

[?25l[?1c:[?25h[?0cee('import xxx_no_such_module_xxx')

[?25l[?1c:[?25h[?0cee('import failing_import')

[?25l[?1c:[?25h[?0cee('import failing')

[?25l[?1c:[?25h[?0cvim.options['rtp'] = old_rtp

[?25l[?1c:[?25h[?0cdel old_rtp

[?25l[?1c:[?25h[?0ccb.append("> Options")

[?25l[?1c:[?25h[?0ccb.append(">> OptionsItem")

[?25l[?1c:[?25h[?0cee('vim.options["abcQ"]')

[?25l[?1c:[?25h[?0cee('vim.options[""]')

[?25l[?1c:[?25h[?0cstringtochars_test('vim.options[%s]')

[?25l[?1c:[?25h[?0ccb.append(">> OptionsContains")

[?25l[?1c:[?25h[?0cstringtochars_test('%s in vim.options')

[?25l[?1c:[?25h[?0ccb.append("> Dictionary")

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryConstructor")

[?25l[?1c:[?25h[?0cee('vim.Dictionary("abcI")')

[?25l[?1c:[?25h[?0c##! Not checked: py_dict_alloc failure

[?25l[?1c:[?25h[?0ccb.append(">> DictionarySetattr")

[?25l[?1c:[?25h[?0cee('del d.locked')

[?25l[?1c:[?25h[?0cee('d.locked = FailingTrue()')

[?25l[?1c:[?25h[?0cee('vim.vvars.locked = False')

[?25l[?1c:[?25h[?0cee('d.scope = True')

[?25l[?1c:[?25h[?0cee('d.xxx = True')

[?25l[?1c:[?25h[?0ccb.append(">> _DictionaryItem")

[?25l[?1c:[?25h[?0cee('d.get("a", 2, 3)')

[?25l[?1c:[?25h[?0cstringtochars_test('d.get(%s)')

[?25l[?1c:[?25h[?0cee('d.pop("a")')

[?25l[?1c:[?25h[?0cee('dl.pop("a")')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryContains")

[?25l[?1c:[?25h[?0cee('"" in d')

[?25l[?1c:[?25h[?0cee('0 in d')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryIterNext")

[?25l[?1c:[?25h[?0cee('for i in ned: ned["a"] = 1')

[?25l[?1c:[?25h[?0cdel i

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryAssItem")

[?25l[?1c:[?25h[?0cee('dl["b"] = 1')

[?25l[?1c:[?25h[?0cstringtochars_test('d[%s] = 1')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('d["a"] = %s')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryUpdate")

[?25l[?1c:[?25h[?0ccb.append(">>> kwargs")

[?25l[?1c:[?25h[?0ccb.append(">>> iter")

[?25l[?1c:[?25h[?0cee('d.update(FailingMapping())')

[?25l[?1c:[?25h[?0cee('d.update([FailingIterNext()])')

[?25l[?1c:[?25h[?0cee('d.update([FailingIterNextN(1)])')

[?25l[?1c:[?25h[?0citer_test('d.update(%s)')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('d.update(%s)')

[?25l[?1c:[?25h[?0cstringtochars_test('d.update(((%s, 0),))')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('d.update((("a", %s),))')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryPopItem")

[?25l[?1c:[?25h[?0cee('d.popitem(1, 2)')

[?25l[?1c:[?25h[?0ccb.append(">> DictionaryHasKey")

[?25l[?1c:[?25h[?0cee('d.has_key()')

[?25l[?1c:[?25h[?0ccb.append("> List")

[?25l[?1c:[?25h[?0ccb.append(">> ListConstructor")

[?25l[?1c:[?25h[?0cee('vim.List(1, 2)')

[?25l[?1c:[?25h[?0cee('vim.List(a=1)')

[?25l[?1c:[?25h[?0citer_test('vim.List(%s)')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('vim.List([%s])')

[?25l[?1c:[?25h[?0ccb.append(">> ListItem")

[?25l[?1c:[?25h[?0cee('l[1000]')

[?25l[?1c:[?25h[?0ccb.append(">> ListAssItem")

[?25l[?1c:[?25h[?0cee('ll[1] = 2')

[?25l[?1c:[?25h[?0cee('l[1000] = 3')

[?25l[?1c:[?25h[?0ccb.append(">> ListAssSlice")

[?25l[?1c:[?25h[?0cee('ll[1:100] = "abcJ"')

[?25l[?1c:[?25h[?0citer_test('l[:] = %s')

[?25l[?1c:[?25h[?0cee('nel[1:10:2]  = "abcK"')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cee('nel[1:10:2]  = "a"')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cee('nel[1:1:-1]  = "a"')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cee('nel[:] = FailingIterNextN(2)')

[?25l[?1c:[?25h[?0ccb.append(repr(tuple(nel)))

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('l[:] = [%s]')

[?25l[?1c:[?25h[?0ccb.append(">> ListConcatInPlace")

[?25l[?1c:[?25h[?0citer_test('l.extend(%s)')

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('l.extend([%s])')

[?25l[?1c:[?25h[?0ccb.append(">> ListSetattr")

[?25l[?1c:[?25h[?0cee('del l.locked')

[?25l[?1c:[?25h[?0cee('l.locked = FailingTrue()')

[?25l[?1c:[?25h[?0cee('l.xxx = True')

[?25l[?1c:[?25h[?0ccb.append("> Function")

[?25l[?1c:[?25h[?0ccb.append(">> FunctionConstructor")

[?25l[?1c:[?25h[?0ccb.append(">>> FunctionConstructor")

[?25l[?1c:[?25h[?0cee('vim.Function("123")')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx")')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx#non#existent#function#xxx")')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx2", arg

s=[])')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx3", sel

f={})')

[?25l[?1c:[?25h[?0cee('vim.Function("xxx_non_existent_function_xxx4", arg

s=[], self={})')

[?25l[?1c:[?25h[?0ccb.append(">>> FunctionNew")

[?25l[?1c:[?25h[?0cee('vim.Function("tr", self="abcFuncSelf")')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", args=427423)')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", self="abcFuncSelf2", args="abcF

uncArgs2")')

[?25l[?1c:[?25h[?0cee('vim.Function(self="abcFuncSelf2", args="abcFuncArg

s2")')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", "", self="abcFuncSelf2", args="

abcFuncArgs2")')

[?25l[?1c:[?25h[?0cee('vim.Function("tr", "")')

[?25l[?1c:[?25h[?0ccb.append(">> FunctionCall")

[?25l[?1c:[?25h[?0cconvertfrompyobject_test('f(%s)')

[?25l[?1c:[?25h[?0cconvertfrompymapping_test('fd(self=%s)')

[?25l[?1c:[?25h[?0ccb.append("> TabPage")

[?25l[?1c:[?25h[?0ccb.append(">> TabPageAttr")

[?25l[?1c:[?25h[?0cee('vim.current.tabpage.xxx')

[?25l[?1c:[?25h[?0ccb.append("> TabList")

[?25l[?1c:[?25h[?0ccb.append(">> TabListItem")

[?25l[?1c:[?25h[?0cee('vim.tabpages[1000]')

[?25l[?1c:[?25h[?0ccb.append("> Window")

[?25l[?1c:[?25h[?0ccb.append(">> WindowAttr")

[?25l[?1c:[?25h[?0cee('vim.current.window.xxx')

[?25l[?1c:[?25h[?0ccb.append(">> WindowSetattr")

[?25l[?1c:[?25h[?0cee('vim.current.window.buffer = 0')

[?25l[?1c:[?25h[?0cee('vim.current.window.cursor = (100000000, 100000000)

')
[?25l[?1c:[?25h[?0cee('vim.current.window.cursor = True')

[?25l[?1c:[?25h[?0cnumber_test('vim.current.window.height = %s', unsigned

=True)

[?25l[?1c:[?25h[?0cnumber_test('vim.current.window.width = %s', unsigned=

True)

[?25l[?1c:[?25h[?0cee('vim.current.window.xxxxxx = True')

[?25l[?1c:[?25h[?0ccb.append("> WinList")

[?25l[?1c:[?25h[?0ccb.append(">> WinListItem")

[?25l[?1c:[?25h[?0cee('vim.windows[1000]')

[?25l[?1c:[?25h[?0ccb.append("> Buffer")

[?25l[?1c:[?25h[?0ccb.append(">> StringToLine (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[0] = "\\na"')

[?25l[?1c:[?25h[?0cee('vim.current.buffer[0] = b"\\na"')

[?25l[?1c:[?25h[?0ccb.append(">> SetBufferLine (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[0] = True')

[?25l[?1c:[?25h[?0ccb.append(">> SetBufferLineList (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[:] = True')

[?25l[?1c:[?25h[?0cee('vim.current.buffer[:] = ["\\na", "bc"]')

[?25l[?1c:[?25h[?0ccb.append(">> InsertBufferLines (indirect)")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.append(None)')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.append(["\\na", "bc"])')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.append("\\nbc")')

[?25l[?1c:[?25h[?0ccb.append(">> RBItem")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[100000000]')

[?25l[?1c:[?25h[?0ccb.append(">> RBAsItem")

[?25l[?1c:[?25h[?0cee('vim.current.buffer[100000000] = ""')

[?25l[?1c:[?25h[?0ccb.append(">> BufferAttr")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.xxx')

[?25l[?1c:[?25h[?0ccb.append(">> BufferSetattr")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.name = True')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.xxx = True')

[?25l[?1c:[?25h[?0ccb.append(">> BufferMark")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.mark(0)')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.mark("abcM")')

[?25l[?1c:[?25h[?0cee('vim.current.buffer.mark("!")')

[?25l[?1c:[?25h[?0ccb.append(">> BufferRange")

[?25l[?1c:[?25h[?0cee('vim.current.buffer.range(1, 2, 3)')

[?25l[?1c:[?25h[?0ccb.append("> BufMap")

[?25l[?1c:[?25h[?0ccb.append(">> BufMapItem")

[?25l[?1c:[?25h[?0cee('vim.buffers[100000000]')

[?25l[?1c:[?25h[?0cnumber_test('vim.buffers[%s]', natural=True)

[?25l[?1c:[?25h[?0ccb.append("> Current")

[?25l[?1c:[?25h[?0ccb.append(">> CurrentGetattr")

[?25l[?1c:[?25h[?0cee('vim.current.xxx')

[?25l[?1c:[?25h[?0ccb.append(">> CurrentSetattr")

[?25l[?1c:[?25h[?0cee('vim.current.line = True')

[?25l[?1c:[?25h[?0cee('vim.current.buffer = True')

[?25l[?1c:[?25h[?0cee('vim.current.window = True')

[?25l[?1c:[?25h[?0cee('vim.current.tabpage = True')

[?25l[?1c:[?25h[?0cee('vim.current.xxx = True')

[?25l[?1c:[?25h[?0cdel d

[?25l[?1c:[?25h[?0cdel ned

[?25l[?1c:[?25h[?0cdel dl

[?25l[?1c:[?25h[?0cdel l

[?25l[?1c:[?25h[?0cdel ll

[?25l[?1c:[?25h[?0cdel nel

[?25l[?1c:[?25h[?0cdel f

[?25l[?1c:[?25h[?0cdel fd

[?25l[?1c:[?25h[?0cdel fdel

[?25l[?1c:[?25h[?0cdel subexpr_test

[?25l[?1c:[?25h[?0cdel stringtochars_test

[?25l[?1c:[?25h[?0cdel Mapping

[?25l[?1c:[?25h[?0cdel convertfrompyobject_test

[?25l[?1c:[?25h[?0cdel convertfrompymapping_test

[?25l[?1c:[?25h[?0cdel iter_test

[?25l[?1c:[?25h[?0cdel number_test

[?25l[?1c:[?25h[?0cdel FailingTrue

[?25l[?1c:[?25h[?0cdel FailingIter

[?25l[?1c:[?25h[?0cdel FailingIterNext

[?25l[?1c:[?25h[?0cdel FailingIterNextN

[?25l[?1c:[?25h[?0cdel FailingMapping

[?25l[?1c:[?25h[?0cdel FailingMappingKey

[?25l[?1c:[?25h[?0cdel FailingList

[?25l[?1c:[?25h[?0cdel NoArgsCall

[?25l[?1c:[?25h[?0cdel FailingCall

[?25l[?1c:[?25h[?0cdel FailingNumber

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:delfunction F

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test import

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0csys.path.insert(0, os.path.join(os.getcwd(), 'python_b

efore'))

[?25l[?1c:[?25h[?0csys.path.append(os.path.join(os.getcwd(), 'python_afte

r'))

[?25l[?1c:[?25h[?0cvim.options['rtp'] = os.getcwd().replace(',', '\\,').r

eplace('\\', '\\\\')

[?25l[?1c:[?25h[?0cl = []

[?25l[?1c:[?25h[?0cdef callback(path):

[?25l[?1c:[?25h[?0c    l.append(os.path.relpath(path))

[?25l[?1c:[?25h[?0cvim.foreach_rtp(callback)

[?25l[?1c:[?25h[?0ccb.append(repr(l))

[?25l[?1c:[?25h[?0cdel l

[?25l[?1c:[?25h[?0cdef callback(path):

[?25l[?1c:[?25h[?0c    return os.path.relpath(path)

[?25l[?1c:[?25h[?0ccb.append(repr(vim.foreach_rtp(callback)))

[?25l[?1c:[?25h[?0cdel callback

[?25l[?1c:[?25h[?0cfrom module import dir as d

[?25l[?1c:[?25h[?0cfrom modulex import ddir

[?25l[?1c:[?25h[?0ccb.append(d + ',' + ddir)

[?25l[?1c:[?25h[?0cimport before

[?25l[?1c:[?25h[?0ccb.append(before.dir)

[?25l[?1c:[?25h[?0cimport after

[?25l[?1c:[?25h[?0ccb.append(after.dir)

[?25l[?1c:[?25h[?0cimport topmodule as tm

[?25l[?1c:[?25h[?0cimport topmodule.submodule as tms

[?25l[?1c:[?25h[?0cimport topmodule.submodule.subsubmodule.subsubsubmodul

e as tmsss

[?25l[?1c:[?25h[?0ccb.append(tm.__file__.replace(os.path.sep, '/')[-len('

modulex/topmodule/__init__.py'):])

[?25l[?1c:[?25h[?0ccb.append(tms.__file__.replace(os.path.sep, '/')[-len(

'modulex/topmodule/submodule/__init__.py'):])

[?25l[?1c:[?25h[?0ccb.append(tmsss.__file__.replace(os.path.sep, '/')[-le

n('modulex/topmodule/submodule/subsubmodule/subsubsubmodule.py'):])

[?25l[?1c:[?25h[?0cdel before

[?25l[?1c:[?25h[?0cdel after

[?25l[?1c:[?25h[?0cdel d

[?25l[?1c:[?25h[?0cdel ddir

[?25l[?1c:[?25h[?0cdel tm

[?25l[?1c:[?25h[?0cdel tms

[?25l[?1c:[?25h[?0cdel tmsss

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Test exceptions

[?25l[?1c:[?25h[?0c:fun Exe(e)

[?25l[?1c:[?25h[?0c:   execute a:e

[?25l[?1c:[?25h[?0c:endfun

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cExe = vim.bindeval('function("Exe")')

[?25l[?1c:[?25h[?0cee('vim.command("throw \'abcN\'")')

[?25l[?1c:[?25h[?0cee('Exe("throw \'def\'")')

[?25l[?1c:[?25h[?0cee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')

[?25l[?1c:[?25h[?0cee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')

[?25l[?1c:[?25h[?0cee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')"

)')

[?25l[?1c:[?25h[?0cee('vim.eval("xxx_unknown_function_xxx()")')

[?25l[?1c:[?25h[?0cee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx

\')")')

[?25l[?1c:[?25h[?0cdel Exe

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:delfunction Exe

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Regression: interrupting vim.command propagates t

o next vim.command

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdef test_keyboard_interrupt():

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        vim.command('while 1 | endwhile')

[?25l[?1c:[?25h[?0c    except KeyboardInterrupt:

[?25l[?1c:[?25h[?0c        cb.append('Caught KeyboardInterrupt')

[?25l[?1c:[?25h[?0c    except Exception:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! No exception')

[?25l[?1c:[?25h[?0c    try:

[?25l[?1c:[?25h[?0c        vim.command('$ put =\'Running :put\'')

[?25l[?1c:[?25h[?0c    except KeyboardInterrupt:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! Caught KeyboardInterrupt

')
[?25l[?1c:[?25h[?0c    except Exception:

[?25l[?1c:[?25h[?0c        cb.append('!!!!!!!! Caught exception: ' + em

sg(sys.exc_info()))

[?25l[?1c:[?25h[?0c    else:

[?25l[?1c:[?25h[?0c        cb.append('No exception')

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:debuggreedy

[?25l[?1c:[?25h[?0c:call inputsave()

[?25l[?1c:[?25h[?0c:call feedkeys("s\ns\ns\ns\nq\n")

[?25l[?1c:[?25h[?0c:redir => output

[?25l[?1c:[?25h[?0c:debug silent! py3 test_keyboard_interrupt()

[?25l[?1c:[?25h[?0c:redir END

[?25l[?1c:[?25h[?0c:0 debuggreedy

[?25l[?1c:[?25h[?0c:call inputrestore()

[?25l[?1c:[?25h[?0c:silent $put =output

[?25l[?1c:[?25h[?0c:unlet output

[?25l[?1c:[?25h[?0c:py3 del test_keyboard_interrupt

[?25l[?1c:[?25h[?0c:"

[?25l[?1c:[?25h[?0c:" Cleanup

[?25l[?1c:[?25h[?0cpy3 << EOF

[?25l[?1c:[?25h[?0cdel cb

[?25l[?1c:[?25h[?0cdel ee

[?25l[?1c:[?25h[?0cdel emsg

[?25l[?1c:[?25h[?0cdel sys

[?25l[?1c:[?25h[?0cdel os

[?25l[?1c:[?25h[?0cdel vim

[?25l[?1c:[?25h[?0cEOF

[?25l[?1c:[?25h[?0c:endfun
[?25l[?1c:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:/^start:/,$w! test.out
:" vim: et ts=4 isk-=\:
:while getchar(0) isnot 0|endwhile
ENDTEST

start:[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfun RunTest()
[?25l[?1c
:  [?25h[?0c:let checkrefs = !empty($PYTHONDUMPREFS)

[?25l[?1c:  [?25h[?0c:let start = getline(1, '$')

[?25l[?1c:  [?25h[?0c:for i in range(checkrefs ? 10 : 1)

[?25l[?1c:    [?25h[?0c:   if i != 0

[?25l[?1c:      [?25h[?0c:       %d _

[?25l[?1c:      [?25h[?0c:       call setline(1, start)

[?25l[?1c:      [?25h[?0c:   endif

[?25l[?1c:    [?25h[?0c:   call Test()

[?25l[?1c:    [?25h[?0c:   if i == 0

[?25l[?1c:      [?25h[?0c:       let result = getline(1, '$')

[?25l[?1c:      [?25h[?0c:   endif

[?25l[?1c:    [?25h[?0c:endfor

[?25l[?1c:  [?25h[?0c:if checkrefs

[?25l[?1c:    [?25h[?0c:   %d _

[?25l[?1c:    [?25h[?0c:   call setline(1, result)

[?25l[?1c:    [?25h[?0c:endif

[?25l[?1c:  [?25h[?0c:endfun
[?25l[?1c:   call Test()
:   if i == 0
:let result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out[?25h[?0c[?25l[?1c

:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall RunTest()
[?25l[?1c8 more lin
3 more lines[?25h[?0c

[?25l[?1c"a" [New File]

"b" [New File]

"c" [New File]

"0" [New File]

"1" [New File]

"a.1" [New File]

"2" [New File]

"a.2" [New File]

"b.2" [New File]

"c.2" [New File]

Already only one window

abc8def

Error detected while processing function RunTest[8]..Test:

line 1106:

abc9def

abcA

line 1108:

abcB

8 more lines

Entering Debug mode.  Type "cont" to continue.

function RunTest[8]..Test

line 1650: py3 test_keyboard_interrupt()

>s

function RunTest[8]..Test

line 1650: while 1 | endwhile

>s

function RunTest[8]..Test

line 1650: endwhile

>s

function RunTest[8]..Test

line 1650: while 1 | endwhile

>s

function RunTest[8]..Test

line 1650: endwhile

>q
['.']
'.'
3,xx
before
after
pythonx/topmodule/__init__.py
pythonx/topmodule/submodule/__init__.py
pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py
vim.command("throw 'abcN'"):(<class 'vim.error'>, error('abcN',))
Exe("throw 'def'"):(<class 'vim.error'>, error('def',))
vim.eval("Exe('throw ''ghi''')"):(<class 'vim.error'>, error('ghi',))
vim.eval("Exe('echoerr ''jkl''')"):(<class 'vim.error'>, error('Vim(echoerr):jkl',))
vim.eval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',))
vim.eval("xxx_unknown_function_xxx()"):(<class 'vim.error'>, error('Vim:E117: Unknown function: xxx_unknown_function_xxx',))
vim.bindeval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',))
Caught KeyboardInterrupt
Running :put
No exception

"test87.in" [Modified][Not edited] line 3151 of 3151 --100%-- col 1[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction RunTest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunction Test
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall garbagecollect(1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^start:/,$wq! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New File] 1445 lines, 77744 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test87 = test61; then \
#	  if diff test.out test87.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test87.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test87.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test12.in
[?25h[?8c[?25h[?0c[?25l[?1c"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/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for 'directory' option.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 965 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset dir=.,~
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/start of testfile/,/end of testfile/w! Xtest1
[?25l[?1c"Xtest1" [New] 4L, 70C written[?25h[?0c[?25l[?1c:[?25h[?0c" do an ls of the current dir to find the swap file (should not be there)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:  !ls .X*.swp >test.out

[?25l[?1c:!ls .X*.swp >test.out[?25h[?0c
ls: cannot access '.X*.swp': No such file or directory

shell returned 2

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:  r !ls X*.swp >test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:!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[?25h[?0c[?25l[?1c:[?25h[?0c!echo first line >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1c"Xtest1" 4L, 70Cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtest1" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:" Do an ls of the current dir to find the swap file, remove the leading dot

[?25l[?1c:  [?25h[?0c:" to make the result the same for all systems.

[?25l[?1c:  [?25h[?0c:  r!ls .X*.swp

[?25l[?1c:  [?25h[?0c:  s/\.*X/X/

[?25l[?1c:  [?25h[?0c:  .w >>test.out
[?25l[?1c"test.out" 1L, 11C appended

:  [?25h[?0c:  undo

[?25l[?1c1 line less; before #1  0 seconds ago

:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:  !ls X*.swp >>test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c!echo under Xtest1.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir Xtest2
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0cset dir=./Xtest2,.,~
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce Xtest1
[?25l[?1c"Xtest1" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0c!ls X*.swp >>test.out
[?25l[?1c[?25h[?0c
ls: cannot access 'X*.swp': No such file or directory

shell returned 2


Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under under >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ls Xtest2 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest1.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir Xtest.je
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c/start of testfile/,/end of testfile/w! Xtest2/Xtest3
[?25l[?1csearch hit BOTTOM, continuing at TOP"Xtest2/Xtest3" [New] 4L, 70C written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset dir=Xtest.je,~
[?25l[?1cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce Xtest2/Xtest3
[?25l[?1c"Xtest2/Xtest3" 4L, 70C[?25h[?0c[?25l[?1c:[?25h[?0cswap
[?25l[?1cXtest.je/Xtest3.swp[?25h[?0c[?25l[?1c:[?25h[?0c!ls Xtest2 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest3 >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ls Xtest.je >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!echo under Xtest3.swp >>test.out
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test12 = test61; then \
#	  if diff test.out test12.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test12.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test12.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test25.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 540 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Create a link from test25.dir to the current directory.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!rm -f test25.dir
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!ln -s . test25.dir
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c" Create tags.text, with the current directory name inserted.
[?25l[?1cTest 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
[?25h[?0c[?25l[?1c
/[?25h[?0ctags line
[?25l[?1chis 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:
[?25h[?0c[?25l[?1c:[?25h[?0cr !pwd
[?25l[?1c[?25h[?0c[?25l[?1cSTARTTEST
: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:
/<<PKGBUILDDIR>>/src/vim-athena/testdir
[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c
/[?25h[?0ctest
[?25l[?1c
SECTION_OFF     /test25.dir/test25.in   /^#define  SECTION_OFF  3$/[?25h[?0c[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir/test25.dir@                                                                               
SECTION_OFF     /<<PKGBUILDDIR>>/src/vim-athena/testdir/test25.dir/test25.in      /^#define  SECTION_OFF  3$/[?25h[?0c[?25l[?1c

:[?25h[?0c.w! tags.test
[?25l[?1c"tags.test" [New File] 1 line, 115 characters written[?25h[?0c[?25l[?1c:[?25h[?0c" Try jumping to a tag in the current file, but with a path that contains a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" symbolic link.  When wrong, this will give the ATTENTION message.  The next
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset tags=tags.test
[?25l[?1c[?25h[?0c[?25l[?1c/*tx.c*/
#define  SECTION_OFF  3
#define  NUM_SECTIONS 3

SECTION_OFF[?25h[?0c#[?25l[?1cefine  SECTION_OFF  3[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New File] 1 line, 23 characters written[?25h[?0c[?25l[?1c:[?25h[?0c!rm -f test25.dir tags.test
[?25l[?1c[?25h[?0c
[No write since last change]


Press ENTER or type command to continue[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test25 = test61; then \
#	  if diff test.out test25.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test25.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test25.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test49.in
[?25h[?8c[?25h[?0c[?25l[?1c"test49.in" 32 lines, 705 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
:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cThis is a test of the script language.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 23 lines, 475 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:endfor
:for v in keys(g:)
:  silent! exe "unlet " . v
:endfor
:unlet v
:qa!
ENDTEST[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cse nocp nomore viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang mess C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso test49.vim
[?25l[?1cError detected while processing function F:

line    5:

E583: multiple :else:     else^I^I

Error detected while processing function G:

line    5:

E584: :elseif after :else:     elseif 1^I^I" aborts function

Error detected while processing function H:

line    7:

E583: multiple :else:     else^I^I

Error detected while processing function I:

line    7:

E584: :elseif after :else:     elseif 1^I^I" aborts function

*** Test  16: OK (8722)

Error detected while processing function F:

line   18:

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

line   34:

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

E171: Missing :endif:     endwhile^I

line   47:

E580: :endif without :if: ^Iendif^I

E580: :endif without :if: ^Iendif^I

E580: :endif without :if: ^Iendif^I

Error detected while processing /<<PKGBUILDDIR>>/src/vim-athena/t

estdir/test49.vim:

line  784:

E171: Missing :endif: endwhile 

*** Test  17: OK (285127993)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"/tmp/vLhmaSg/0" [New] 53L, 1582C written14L, 358C appended26L, 824C appended34L, 986C appended

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/1[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/1" 16L, 304C appended17L, 326C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/2[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/2"' -c 'breakad

dfile 8 /tmp/vLhmaSg/1' -S /tmp/vLhmaSg/1[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/2" 3L, 6C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/3[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/3" 6L, 127C appended7L, 149C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/4[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/4"' -c 'breakad

dfile 4 /tmp/vLhmaSg/3' -S /tmp/vLhmaSg/3[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/4" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/5[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/5" 21L, 486C appended22L, 508C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/6[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/6"' -c 'breakad

dfunc 7 F' -S /tmp/vLhmaSg/5[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/6" 3L, 18C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/7[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/7" 13L, 364C appended14L, 386C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/8[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/8"' -c 'breakad

dfunc 3 G' -S /tmp/vLhmaSg/7[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/8" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  18: OK (67224583)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/9[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/9" 12L, 201C appended13L, 223C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/10[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/10"' -S /tmp/vLhma

Sg/9[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/10" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/11[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/11" 12L, 205C appended13L, 227C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/12[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/12"' -S /tmp/vLhma

Sg/11[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/12" 2L, 7C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/13[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/13" 6L, 122C appended7L, 144C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/14[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/14"' -S /tmp/vLhma

Sg/13[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/14" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/15[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/15" 8L, 176C appended9L, 198C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/16[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/16"' -S /tmp/vLhma

Sg/15[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/16" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/17[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/17" 10L, 215C appended11L, 237C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/18[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/18"' -S /tmp/vLhma

Sg/17[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/18" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/19[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/19" 7L, 149C appended8L, 171C8L, 170C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/20[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/20"' -S /tmp/vLhma

Sg/19[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/20" 1L, 9C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  19: OK (69275973)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/21[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/21" 9L, 135C appended10L, 157C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/22[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/22"' -S /tmp/vLhma

Sg/21[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/22" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/23[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/23" 10L, 155C appended11L, 177C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/24[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/24"' -S /tmp/vLhma

Sg/23[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/24" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/25[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/25" 12L, 204C appended13L, 226C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/26[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/26"' -S /tmp/vLhma

Sg/25[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/26" 4L, 18C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/27[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/27" 12L, 214C appended13L, 236C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/28[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/28"' -S /tmp/vLhma

Sg/27[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/28" 4L, 22C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/29[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/29" 12L, 211C appended13L, 233C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/30[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/30"' -S /tmp/vLhma

Sg/29[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/30" 3L, 22C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/31[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/31" 14L, 263C appended15L, 285C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/32[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/32"' -S /tmp/vLhma

Sg/31[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/32" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/33[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/33" 14L, 277C appended15L, 299C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/34[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/34"' -S /tmp/vLhma

Sg/33[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/34" 4L, 40C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  20: OK (1874575085)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/35[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/35" 58L, 1022C appended59L, 1044C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/36[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/36"' -S /tmp/vLhma

Sg/35[?25h[?0c
[?25l[?1c"/tmp/vLhmaSg/36" 9L, 56C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  21: OK (147932225)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/37[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/37" 23L, 418C appended24L, 440C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/38[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/38"' -S /tmp/vLhma

Sg/37[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/38" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/39[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/39" 23L, 437C appended24L, 459C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/40[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/40"' -c 'breaka

dd func 2 Interrupt' -S /tmp/vLhmaSg/39[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/40" 1L, 3C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/41[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/41" 21L, 386C appended22L, 408C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/42[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/42"' -S /tmp/vLhma

Sg/41[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/42" 1L, 5C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  22: OK (4161)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/43[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/43" 25L, 432C appended26L, 454C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/44[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/44"' -S /tmp/vLhma

Sg/43[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/44" 3L, 8C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  23: OK (49)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/45[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/45" 16L, 392C appended17L, 414C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/46[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/46"' -S /tmp/vLhma

Sg/45[?25h[?0c
[?25l[?1c"/tmp/vLhmaSg/46" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  24: OK (41)

*** Test  25: OK (260177811)

*** Test  26: OK (1681500476)

*** Test  27: OK (1996459)

   function F()

1      try

2Xpath 1" X: 1

3try

4Xpath 2" X: 2

5return

6Xpath 4" X: 0

7finally

8Xpath 8" X: 8

9endtry

10Xpath 16" X: 0

11     finally

12Xpath 32" X: 32

13     endtry

14     Xpath 64" X: 0

   endfunction"/tmp/vLhmaSg/47"[noeol] 17L, 552C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vLhmaSg/47" 14L, 502C written
"test49.in" 32L, 705C
   function G()
1      try
2Xpath 128" X: 128
3return
4Xpath 256" X: 0
5      finally
6Xpath 512" X: 512
7call F()
8Xpath 1024" X: 1024
9      endtry
10     Xpath 2048" X: 0
   endfunction"/tmp/vLhmaSg/48"[noeol] 13L, 406C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vLhmaSg/48" 10L, 378C written
"test49.in" 32L, 705C
   function H()
1      try
2Xpath 4096" X: 4096
3call G()
4Xpath 8192" X: 8192
5      finally
6Xpath 16384" X: 16384
7return
8Xpath 32768" X: 0
9      endtry

10     Xpath 65536" X: 0

   endfunction"/tmp/vLhmaSg/49"[noeol] 13L, 409C
10 substitutions on 10 lines
Pattern not found: ^\s*$
"/tmp/vLhmaSg/49" 10L, 381C written
"test49.in" 32L, 705C
*** Test  28: OK (1996459)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/50[?25h[?0c[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/50" 39L, 721C appended40L, 743C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/51[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/51"' -S /tmp/vLhma

Sg/50[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/51" 6L, 21C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/52[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/52" 23L, 509C appended24L, 531C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/53[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/53"' -S /tmp/vLhma

Sg/52[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/53" 4L, 34C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  29: OK (170428555)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/54[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/54" 60L, 1101C appended61L, 1123C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/55[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nv

iminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/55"' -

c'breakadd func 3 F' -c 'breakadd file 19 /tmp/vLhmaSg/54' -c 'breakadd file 31

/tmp/vLhmaSg/54' -S /tmp/vLhmaSg/54[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/55" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  30: OK (190905173)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/56[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/56" 60L, 1122C appended61L, 1144C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/57[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/57"' -S /tmp/vLhma

Sg/56[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/57" 16L, 89C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  31: OK (190905173)

*** Test  32: OK (354833067)

*** Test  33: OK (1216907538)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/58[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/58" 63L, 1288C appended64L, 1310C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/59[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhma

Sg/59"' -c 'breakadd func 16 C' -S /tmp/vLhmaSg/58[?25h[?0c
[?25l[?1c"/tmp/vLhmaSg/59" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  34: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/60[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/60" 63L, 1285C appended64L, 1307C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/61[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhma

Sg/61"' -c 'breakadd func 16 B' -S /tmp/vLhmaSg/60[?25h[?0c
[?25l[?1c"/tmp/vLhmaSg/61" 17L, 127C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  35: OK (2146584868)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/62[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/62" 66L, 1430C appended67L, 1452C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/63[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vimin

fo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/

63"' -c 'breakadd func 16 R' -S /tmp/vLhmaSg/62[?25h[?0c
[?25l[?1c"/tmp/vLhmaSg/63" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  36: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/64[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/64" 73L, 1488C appended74L, 1510C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/65[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/65"' -c 'breakadd

func 16 F' -S /tmp/vLhmaSg/64[?25h[?0c
[?25l[?1c"/tmp/vLhmaSg/65" 9L, 81C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  37: OK (1071644672)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/66[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/66" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/67[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhma

Sg/67"' -c 'breakadd func 16 E' -S /tmp/vLhmaSg/66[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/67" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  38: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/68[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/68" 83L, 1538C appended84L, 1560C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/69[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -

c'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVi

mResult = "/tmp/vLhmaSg/69"' -c 'breakadd func 16 I' -c 'breakadd func 22 I' -S

/tmp/vLhmaSg/68[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/69" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  39: OK (357908480)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/70[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/70" 82L, 1519C appended83L, 1541C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/71[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi

minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhma

Sg/71"' -c 'breakadd func 16 T' -S /tmp/vLhmaSg/70[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/71" 8L, 63C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  40: OK (357908480)

*** Test  41: OK (3076095)

*** Test  42: OK (1505155949)

*** Test  43: OK (1157763329)

*** Test  44: OK (1031761407)

*** Test  45: OK (1157763329)

*** Test  46: OK (739407)

*** Test  47: OK (371213935)

*** Test  48: OK (756255461)

*** Test  49: OK (179000669)

   function C()

1      try

2Xpath 1" X: 1

3throw "arrgh"

4Xpath 2" X: 0

5      catch /arrgh/

6Xpath 4" X: 4

7      endtry

8      Xpath 8" X: 8

   endfunction"/tmp/vLhmaSg/72"[noeol] 11L, 334C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vLhmaSg/72" 8L, 295C written
"test49.in" 32L, 705C
   function T1()
1      XloopNEXT
2      try
3Xloop 1" X: 16 + 16*16
4throw "arrgh"
5Xloop 2" X: 0
6      finally

7Xloop 4" X: 64 + 64*16

8      endtry

9      Xloop 8" X: 0

   endfunction"/tmp/vLhmaSg/73"[noeol] 12L, 364C
9 substitutions on 9 lines
Pattern not found: ^\s*$
"/tmp/vLhmaSg/73" 9L, 323C written
"test49.in" 32L, 705C
   function T2()
1      try
2Xpath 4096" X: 4096
3call T1()
4Xpath 8192" X: 0
5      finally
6Xpath 16384" X: 16384
7      endtry

8      Xpath 32768" X: 0

   endfunction"/tmp/vLhmaSg/74"[noeol] 11L, 332C
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vLhmaSg/74" 8L, 305C written
"test49.in" 32L, 705C
*** Test  50: OK (363550045)
*** Test  51: OK (40744667)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/76[?25h[?0c[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/76" 2L, 41C appended3L, 63C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/77[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/77"' -S /tmp/vLhmaSg/76[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/77" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/75" 8L, 182C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/78[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/78" 7L, 115C appended8L, 137C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/79[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/79"' -S /tmp/vLhmaSg/78[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/79" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/75" 8L, 181C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/80[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/80" 12L, 180C appended13L, 202C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/81[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/81"' -S /tmp/vLhmaSg/80[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/81" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/75" 10L, 209C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/82[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/82" 8L, 139C appended9L, 161C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/83[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/83"' -S /tmp/vLhmaSg/82[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/83" 2L, 11C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/75" 10L, 217C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/84[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/84" 5L, 87C appended6L, 109C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/85[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir!

>/tmp/vLhmaSg/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin =

1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/85"' -c 'breakadd file 4 /tmp/vLhmaSg

/84' -S /tmp/vLhmaSg/84[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/85" 1L, 7C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/75" [noeol] 9L, 202C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/86[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/86" 7L, 189C appended8L, 211C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/87[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/87"' -S /tmp/vLhmaSg/86[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/87" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/75" 9L, 252C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/88[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/88" 7L, 199C appended8L, 221C8L, 220C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/89[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/75' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/89"' -S /tmp/vLhmaSg/88[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/89" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/75" 9L, 214C
"test49.in" 32L, 705C

*** Test  52: OK (1247112011)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/91[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/91" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/92[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/92"' -S /tmp/vLhmaSg/91[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/92" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/93[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/93" 3L, 39C appended4L, 61C

3 substitutions on 3 lines
"/tmp/vLhmaSg/93" 4L, 58C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/94[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/94"' -S /tmp/vLhmaSg/93[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/94" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/95[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/95" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vLhmaSg/95" 5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/96[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/96"' -S /tmp/vLhmaSg/95[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/96" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/97[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/97" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vLhmaSg/97" 4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/98[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/98"' -S /tmp/vLhmaSg/97[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/98" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/99[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/99" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vLhmaSg/99" 6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/100[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/100"' -S /tmp/vLhmaSg/99[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/100" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/101[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/101" 1L, 9C appended2L, 31C2L, 30C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/102[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/102"' -S /tmp/vLhmaSg/101[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/102" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 153C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/103[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/103" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vLhmaSg/103"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/104[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/104"' -S /tmp/vLhmaSg/103[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/104" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/105[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/105" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vLhmaSg/105"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/106[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/106"' -S /tmp/vLhmaSg/105[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/106" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/107[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/107" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vLhmaSg/107"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/108[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/108"' -S /tmp/vLhmaSg/107[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/108" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/109[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/109" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vLhmaSg/109"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/110[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/110"' -S /tmp/vLhmaSg/109[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/110" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/111[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/111" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/112[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/112"' -S /tmp/vLhmaSg/111[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/112" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 157C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/113[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/113" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vLhmaSg/113"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/114[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/114"' -S /tmp/vLhmaSg/113[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/114" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/115[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/115" 4L, 46C appended5L, 68C

4 substitutions on 4 lines
"/tmp/vLhmaSg/115"5L, 64C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/116[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/116"' -S /tmp/vLhmaSg/115[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/116" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/117[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/117" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vLhmaSg/117"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/118[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/118"' -S /tmp/vLhmaSg/117[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/118" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/119[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/119" 5L, 66C appended6L, 88C

5 substitutions on 5 lines
"/tmp/vLhmaSg/119"6L, 83C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/120[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/120"' -S /tmp/vLhmaSg/119[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/120" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 161C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/121[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/121" 4L, 37C appended5L, 59C

4 substitutions on 4 lines
"/tmp/vLhmaSg/121"5L, 55C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/122[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/122"' -S /tmp/vLhmaSg/121[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/122" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 150C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/123[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/123" 4L, 41C appended5L, 63C

4 substitutions on 4 lines
"/tmp/vLhmaSg/123"5L, 59C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/124[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/90' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1'

-c 'let ExtraVimResult = "/tmp/vLhmaSg/124"' -S /tmp/vLhmaSg/123[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/124" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/90" 6L, 159C
"test49.in" 32L, 705C

*** Test  53: OK (131071)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/126[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/126" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/127[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/127"' -S /tmp/vLhmaSg/126[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/127" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/125" 6L, 164C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/128[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/128" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vLhmaSg/128"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/129[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/129"' -S /tmp/vLhmaSg/128[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/129" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/130[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/130" 3L, 38C appended4L, 60C

3 substitutions on 3 lines
"/tmp/vLhmaSg/130"4L, 57C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/131[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/131"' -S /tmp/vLhmaSg/130[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/131" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/132[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/132" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vLhmaSg/132"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/133[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/133"' -S /tmp/vLhmaSg/132[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/133" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/134[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/134" 4L, 53C appended5L, 75C

4 substitutions on 4 lines
"/tmp/vLhmaSg/134"5L, 71C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/135[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/135"' -S /tmp/vLhmaSg/134[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/135" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/136[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/136" 5L, 62C appended6L, 84C

5 substitutions on 5 lines
"/tmp/vLhmaSg/136"6L, 79C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/137[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/137"' -S /tmp/vLhmaSg/136[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/137" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/125" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/138[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/138" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vLhmaSg/138"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/139[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/139"' -S /tmp/vLhmaSg/138[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/139" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/125" 6L, 154C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/140[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/140" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vLhmaSg/140"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/141[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/141"' -S /tmp/vLhmaSg/140[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/141" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/142[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/142" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vLhmaSg/142"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/143[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/143"' -S /tmp/vLhmaSg/142[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/143" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/125" 6L, 167C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/144[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/144" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vLhmaSg/144"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/145[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/145"' -S /tmp/vLhmaSg/144[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/145" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/125" 6L, 168C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/146[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/146" 7L, 95C appended8L, 117C

7 substitutions on 7 lines
"/tmp/vLhmaSg/146"8L, 110C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/147[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/125' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/147"' -S /tmp/vLhmaSg/146[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/147" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/125" 6L, 167C
"test49.in" 32L, 705C

*** Test  54: OK (2047)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/149[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/149" 1L, 13C appended2L, 35C2L, 34C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/150[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/150"' -S /tmp/vLhmaSg/149[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/150" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/148" 6L, 172C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/151[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/151" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vLhmaSg/151"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/152[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/152"' -S /tmp/vLhmaSg/151[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/152" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/153[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/153" 4L, 48C appended5L, 70C

4 substitutions on 4 lines
"/tmp/vLhmaSg/153"5L, 66C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/154[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/154"' -S /tmp/vLhmaSg/153[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/154" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/155[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/155" 3L, 36C appended4L, 58C

3 substitutions on 3 lines
"/tmp/vLhmaSg/155"4L, 55C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/156[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/156"' -S /tmp/vLhmaSg/155[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/156" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/157[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/157" 5L, 68C appended6L, 90C

5 substitutions on 5 lines
"/tmp/vLhmaSg/157"6L, 85C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/158[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/158"' -S /tmp/vLhmaSg/157[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/158" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/148" 6L, 176C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/159[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/159" 1L, 10C appended2L, 32C2L, 31C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/160[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/160"' -S /tmp/vLhmaSg/159[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/160" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/148" 6L, 166C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/161[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/161" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vLhmaSg/161"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/162[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/162"' -S /tmp/vLhmaSg/161[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/162" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/163[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/163" 4L, 45C appended5L, 67C

4 substitutions on 4 lines
"/tmp/vLhmaSg/163"5L, 63C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/164[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/164"' -S /tmp/vLhmaSg/163[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/164" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/165[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/165" 3L, 33C appended4L, 55C

3 substitutions on 3 lines
"/tmp/vLhmaSg/165"4L, 52C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/166[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/166"' -S /tmp/vLhmaSg/165[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/166" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/148" 6L, 170C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/167[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/167" 5L, 65C appended6L, 87C

5 substitutions on 5 lines
"/tmp/vLhmaSg/167"6L, 82C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/168[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/148' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/168"' -S /tmp/vLhmaSg/167[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/168" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/148" 6L, 170C
"test49.in" 32L, 705C

*** Test  55: OK (1023)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/170[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/170" 1L, 11C appended2L, 33C2L, 32C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/171[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/171"' -S /tmp/vLhmaSg/170[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/171" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/169" 6L, 158C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/172[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/172" 3L, 34C appended4L, 56C

3 substitutions on 3 lines
"/tmp/vLhmaSg/172"4L, 53C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/173[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/173"' -S /tmp/vLhmaSg/172[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/173" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/174[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/174" 3L, 40C appended4L, 62C

3 substitutions on 3 lines
"/tmp/vLhmaSg/174"4L, 59C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/175[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/175"' -S /tmp/vLhmaSg/174[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/175" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/169" 6L, 162C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/176[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/176" 3L, 32C appended4L, 54C

3 substitutions on 3 lines
"/tmp/vLhmaSg/176"4L, 51C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/177[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/177"' -S /tmp/vLhmaSg/176[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/177" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/178[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/178" 3L, 35C appended4L, 57C

3 substitutions on 3 lines
"/tmp/vLhmaSg/178"4L, 54C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/179[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/179"' -S /tmp/vLhmaSg/178[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/179" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/180[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/180" 4L, 44C appended5L, 66C

4 substitutions on 4 lines
"/tmp/vLhmaSg/180"5L, 62C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/181[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/181"' -S /tmp/vLhmaSg/180[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/181" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/182[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/182" 4L, 47C appended5L, 69C

4 substitutions on 4 lines
"/tmp/vLhmaSg/182"5L, 65C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/183[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/183"' -S /tmp/vLhmaSg/182[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/183" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/169" 6L, 155C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/184[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/184" 5L, 64C appended6L, 86C

5 substitutions on 5 lines
"/tmp/vLhmaSg/184"6L, 81C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/185[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/185"' -S /tmp/vLhmaSg/184[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/185" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/169" 6L, 152C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/186[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/186" 5L, 67C appended6L, 89C

5 substitutions on 5 lines
"/tmp/vLhmaSg/186"6L, 84C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/187[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t

mp/vLhmaSg/169' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1

'-c 'let ExtraVimResult = "/tmp/vLhmaSg/187"' -S /tmp/vLhmaSg/186[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/187" 0L, 0C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/tmp/vLhmaSg/169" 6L, 155C
"test49.in" 32L, 705C

*** Test  56: OK (511)

   function FuncException()

1      let g:exception = v:exception

   endfunction"/tmp/vLhmaSg/188" [noeol] 4L, 80C
Pattern not found: ^\s*$
"/tmp/vLhmaSg/188"1L, 36C written
"test49.in" 32L, 705C
   function FuncThrowpoint()

1      let g:throwpoint = v:throwpoint

   endfunction"/tmp/vLhmaSg/189" [noeol] 4L, 83C
Pattern not found: ^\s*$
"/tmp/vLhmaSg/189"1L, 38C written
"test49.in" 32L, 705C
   function T(arg, line)

1      if a:line == 2

2throw a:arg" in line 2

3      elseif a:line == 4

4throw a:arg" in line 4

5      elseif a:line == 6

6throw a:arg" in line 6

7      elseif a:line == 8

8throw a:arg" in line 8

9      endif

   endfunction"/tmp/vLhmaSg/190"[noeol] 12L, 341C
9 substitutions on 9 lines
8 substitutions on 8 lines
Pattern not found: ^\s*$
"/tmp/vLhmaSg/190"9L, 292C written
"test49.in" 32L, 705C
   function G(arg, line)
1      call T(a:arg, a:line)
   endfunction"/tmp/vLhmaSg/191"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vLhmaSg/191"1L, 30C written
"test49.in" 32L, 705C
   function F(arg, line)
1      call G(a:arg, a:line)
   endfunction"/tmp/vLhmaSg/192"[noeol] 4L, 69C
Pattern not found: ^\s*$
"/tmp/vLhmaSg/192"1L, 30C written
"test49.in" 32L, 705C
*** Test  57: OK (2147450880)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/193[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/193" 87L, 1700C appended88L, 1722C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/194[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/194"' -c 'break

add func 4 T' -S /tmp/vLhmaSg/193[?25h[?0c
[?25l[?1c"/tmp/vLhmaSg/194" 8L, 36C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  58: OK (624945)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/195[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/195" 293L, 5789C appended294L, 5811C

3 substitutions on 3 lines
"/tmp/vLhmaSg/195"294L, 5808C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/196[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/196"' -c 'br

eakadd file 115 /tmp/vLhmaSg/195' -c 'breakadd file 225 /tmp/vLhmaSg/195' -S /tm

p/vLhmaSg/195[?25h[?0c
[?25l[?1c"/tmp/vLhmaSg/196" 28L, 162C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  59: OK (2038431743)
"/n/o/n/w/r/i/t/a/b/l/e/_/f/i/l/e"
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/197[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/197" 33L, 765C appended34L, 787C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/198[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/198"' -c 'break

add file 7 /tmp/vLhmaSg/197' -S /tmp/vLhmaSg/197[?25h[?0c
[?25l[?1c"/tmp/vLhmaSg/198" 3L, 27C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  60: OK (311511339)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/199[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/199" 115L, 2272C appended116L, 2294C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/200[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vimin

fo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/

200"' -c 'breakadd file 8 /tmp/vLhmaSg/199' -c 'breakadd file 36 /tmp/vLhmaSg/19

9' -c 'breakadd file 40 /tmp/vLhmaSg/199' -c 'breakadd file 69 /tmp/vLhmaSg/199'

-c 'breakadd file 95 /tmp/vLhmaSg/199' -c 'breakadd file 97 /tmp/vLhmaSg/199' -

S/tmp/vLhmaSg/199[?25h[?0c
[?25l[?1c"/tmp/vLhmaSg/200" 14L, 81C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  61: OK (374889517)

   function F()

1      while 1

2      " Missing :endwhile

   endfunction"/tmp/vLhmaSg/201"[noeol] 5L, 73C
Pattern not found: ^\s*$
"/tmp/vLhmaSg/201"2L, 40C written
"test49.in" 32L, 705C
*** Test  62: OK (286331153)
"/i/m/p/o/s/s/i/b/l/e" line 5500:

"/i/m/p/o/s/s/i/b/l/e" E212: Can't open file for writing

*** Test  63: OK (236978127)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/202[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/202" 149L, 2828C appended150L, 2850C

6 substitutions on 6 lines
"/tmp/vLhmaSg/202"150L, 2844C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/203[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/203"' -c 'break

add file 63 /tmp/vLhmaSg/202' -S /tmp/vLhmaSg/202[?25h[?0c
[?25l[?1c"/tmp/vLhmaSg/203" 16L, 97C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  64: OK (1499645335)

*** Test  65: OK (70187)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/204[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/204" 78L, 1520C appended79L, 1542C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/205[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/205"' -c 'break

add func 8 F' -S /tmp/vLhmaSg/204[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/205" 6L, 22C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  66: OK (5464)

*** Test  67: OK (212514423)

*** Test  68: OK (212514423)

*** Test  69: OK (8995471)

*** Test  70: OK (69544277)

*** Test  71: OK (34886997)

*** Test  72: OK (1789569365)

   function F0()

   endfunction

   function F1()

   endfunction

*** Test  73: OK (9032615)
"/tmp/vLhmaSg/206" [New File]
"test49.in" 32L, 705C
"/tmp/vLhmaSg/207" [New File]
"test49.in" 32L, 705C

*** Test  74: OK (224907669)

*** Test  75: OK (2000403408)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/208[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/208" 253L, 6369C appended254L, 6391C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/209[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|

set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp

/vLhmaSg/209"' -c 'breakadd func 2 INT' -S /tmp/vLhmaSg/208[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/209" 28L, 167C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  76: OK (1610087935)

Error detected while processing function ERR:

line    2:

E492: Not an editor command:     asdf

E492: Not an editor command:     asdf

E492: Not an editor command:     asdf

*** Test  77: OK (1388671)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/210[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/210" 161L, 4543C appended162L, 4565C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/211[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/211"' -S /tmp/vLhm

aSg/210[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/211" 1L, 10C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  78: OK (134217728)

Error detected while processing function NEXT:

line    1:

E121: Undefined variable: novar

E15: Invalid expression: novar | Xloop 1

E121: Undefined variable: novar

E488: Trailing characters

E108: No such variable: "novar"

E488: Trailing characters

E121: Undefined variable: novar

E15: Invalid expression: novar

E475: Invalid argument: {novar} | Xloop 1

E121: Undefined variable: novar

E15: Invalid expression:  novar

E475: Invalid argument: { novar} | Xloop 1

*** Test  79: OK (70288929)

Error detected while processing /<<PKGBUILDDIR>>/src/vim-athena/t

estdir/test49.vim:

line 7985:

E584: :elseif after :else: elseif 1 ||| 2

line 7995:

E584: :elseif after :else: elseif 1 ||| 2

line 8003:

E582: :elseif without :if: elseif 1 ||| 2

line 8011:

E582: :elseif without :if:     elseif 1 ||| 2

*** Test  80: OK (17895765)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/212[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/212" 15L, 272C appended16L, 294C16L, 293C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/213[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/213"' -S /tmp/vLhm

aSg/212[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/213" 2L, 4C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/214[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/214" 12L, 227C appended13L, 249C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/215[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/215"' -c 'break

add file 8 /tmp/vLhmaSg/214' -S /tmp/vLhmaSg/214[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/215" 2L, 8C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  81: OK (387)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/216[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/216" 20L, 417C appended21L, 439C21L, 438C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/217[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/217"' -S /tmp/vLhm

aSg/216[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/217" 1L, 2C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/218[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/218" 24L, 480C appended25L, 502C25L, 501C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/219[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/219"' -S /tmp/vLhm

aSg/218[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/219" 1L, 4C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/220[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/220" 17L, 390C appended18L, 412C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/221[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/221"' -c 'break

add file 7 /tmp/vLhmaSg/220' -S /tmp/vLhmaSg/220[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/221" 1L, 6C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/222[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/222" 21L, 444C appended22L, 466C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/223[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/223"' -c 'break

add func 6 I' -S /tmp/vLhmaSg/222[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/223" 1L, 8C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  82: OK (8454401)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/224[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/224" 17L, 307C appended18L, 329C18L, 328C written
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/225[?25h[?0c
[?25l[?1c:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c '

let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/225"' -S /tmp/vLhm

aSg/224[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/225" 3L, 7C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/226[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/226" 14L, 266C appended15L, 288C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/227[?25h[?0c
[?25l[?1c:!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -

c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/227"' -c 'break

add file 8 /tmp/vLhmaSg/226' -S /tmp/vLhmaSg/226[?25h[?0c

shell returned 1

[?25l[?1c"/tmp/vLhmaSg/227" 3L, 13C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  83: OK (2835)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/228[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/228" 154L, 3580C appended155L, 3602C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/229[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo

'-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/229"' -c 'br

eakadd func 1 INT' -S /tmp/vLhmaSg/228[?25h[?0c
[?25l[?1c"/tmp/vLhmaSg/229" 18L, 118C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"test49.in" 32L, 705C

*** Test  84: OK (934782101)

TMP
"/tmp/vLhmaSg/230" [noeol] 2L, 6C/  
"test49.in" 32L, 705C
"/n/o/n/e/x/i/s/t/e/n/t"

"/tmp/vLhmaSg/232" 1L, 1C
"test49.in" 32L, 705C

:!echo XYZ >/tmp/vLhmaSg/233[?25h[?0c
[?25l[?1c"/tmp/vLhmaSg/234" [New File]
"test49.in" 32L, 705C

*** Test  85: OK (198689)

line 8769:

E123: Undefined function: F

Make_all.mak
"Make_all.mak" line 1 of 207 --0%-- col 1

line 8772:

E926: Current location list was changed

line 8773:

E193: :endfunction not inside a function

Error detected while processing function ExecAsScript[2]..MakeScript:

line    3:

E123: Undefined function: F
"/tmp/vLhmaSg/235" [noeol] 4L, 109C

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/vLhmaSg/235"3L, 109C written
"Make_all.mak" 207L, 3846C

Error detected while processing /tmp/vLhmaSg/235:

line    1:

E492: Not an editor command: Error detected while processing function ExecAsScr

ipt[2]..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 /<<PKGBUILDDIR>>/src/vim-athena/t

estdir/test49.vim:

line 8779:

E130: Unknown function: F

*** Test  86: OK (0)

5
*** Test  87: OK (0)
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!echo 'source /tmp/vLhmaSg/0' >/tmp/vLhmaSg/236[?25h[?0c
[?25l[?1c/^\s*if\s\+ExtraVim(.*)/+
1
"/tmp/vLhmaSg/236" 151L, 3929C appended152L, 3951C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C

:!>/tmp/vLhmaSg/237[?25h[?0c
[?25l[?1c:!echo 'q^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nvimi

nfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vLhmaSg/237"' -c

'breakadd func 5 ThrowOnInterrupt' -S /tmp/vLhmaSg/236[?25h[?0c
[?25l[?1c"/tmp/vLhmaSg/237" 16L, 281C
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/test49.vim"
<m5mB/vim-8.0.0197/src/vim-athena/testdir/test49.vim" [readonly] 9009L, 206880C
"Make_all.mak" 207L, 3846C

*** Test  88: OK (50443995)

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c" Go back to this file and append the results from register r.
[?25l[?1c#
# Common Makefile, defines the list of tests to run.
#

NO_PLUGIN = -U NONE --noplugin --not-a-term

# The first script creates small.vim.
SCRIPTS_FIRST = \test1.out

# Tests that run on all systems.
SCRIPTS_ALL = \test3.out \test4.out \test5.out \test7.out \test8.out \test9.out \test14.out \test15.out \test19.out \test20.out \test22.out \[?25h[?0c[?25l[?1c:[?25h[?0cbuf test49.in
[?25l[?1c"test49.in" 32L, 705C:so test49.vim
:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:":" make valgrind happy
:redir => funclis: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!ENDTESTResults of test49.vim:[?25h[?0c
[?25l[?1c
83 more lines
*** Test  16: OK (8722)83 more lines[?25h[?0c[?25l[?1c:[?25h[?0c/^Results/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 84L, 2484C written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make valgrind happy
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => funclist
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csilent func
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfor line in split(funclist, "\n")
[?25l[?1c
:  [?25h[?0c:  let name = matchstr(line, 'function \zs[A-Z]\w*\ze(')

[?25l[?1c:  [?25h[?0c:  if name != ''

[?25l[?1c:    [?25h[?0c:    exe "delfunc " . name

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:" Go back to this file and append the results from register r.
:buf test49.in
G"rp:/^Results/,$w! test.out
:"
:" make valgrind happy[?25h[?0c[?25l[?1c
:[?25h[?0cfor v in keys(g:)
[?25l[?1c
:  [?25h[?0c:  silent! exe "unlet " . v

[?25l[?1c:  [?25h[?0c:endfor
[?25l[?1c:" Go back to this file and append the results from register r.
:buf test49.in[?25h[?0c[?25l[?1c
:[?25h[?0cunlet v
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test49 = test61; then \
#	  if diff test.out test49.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test49.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test49.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test97.failed test.ok test.out X* viminfo
cp test97.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test97.in
[?25h[?8c[?25h[?0c[?25l[?1c"test97.in" 23 lines, 484 charactersTest whether glob()/globpath() return correct results with certain escaped
characters.

STARTTEST
:so small.vim
:" make sure glob() doesn't use the shell
:set shell=doesnotexist
:" consistent sorting of file names
:set nofileignorecase
:e! test.out
:$put =glob('Xxx\{')
:$put =glob('Xxx\$')
:w! Xxx{
:w! Xxx\$
:$put =glob('Xxx\{')
:$put =glob('Xxx\$')
:"
:$put =string(globpath('sautest/autoload', '*.vim'))
:$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
:w
:qa!
ENDTEST[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest whether glob()/globpath() return correct results with certain escaped[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 377 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" make sure glob() doesn't use the shell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset shell=doesnotexist
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" consistent sorting of file names
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nofileignorecase
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\{')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! Xxx{
[?25l[?1c
Cannot execute shell doesnotexist


E79: Cannot expand wildcards

"Xxx{" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! Xxx\$
[?25l[?1c"Xxx$" [New File] 3 lines, 3 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\{')
[?25l[?1cXxx{
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c$put =glob('Xxx\$')
[?25l[?1cXxx$[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(globpath('sautest/autoload', '*.vim'))
[?25l[?1c'sautest/autoload/Test104.vimsautest/autoload/footest.vim'[?25h[?0c[?25l[?1c:[?25h[?0c$put =string(globpath('sautest/autoload', '*.vim', 0, 1))
[?25l[?1c['sautest/autoload/Test104.vim', 'sautest/autoload/footest.vim'][?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" [New File] 8 lines, 138 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test97 = test61; then \
#	  if diff test.out test97.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test97.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test97.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test_listlbr_utf8.failed test.ok test.out X* viminfo
cp test_listlbr_utf8.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr_utf8.in
[?25h[?8c[?25h[?0c[?25l[?1c"test_listlbr_utf8.in" 134 lines, 4027 charactersTest for linebreak and list option in utf-8 mode

STARTTEST
:so small.vim
:if !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!
test.out | qa! | endif
:so mbyte.vim
:set encoding=utf8
:if &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
:10new|:vsp|:vert resize 20
:put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
:norm! zt
:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
:fu! ScreenChar(width, lines)
:let c=''
:for j in range(1,a:lines)
:for i in range(1,a:width)
:let c.=nr2char(screenchar(j, i))
:endfor
:let c.="\n"
:endfor
:return c
:endfu[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for linebreak and list option in utf-8 mode[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 129 lines, 3948 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set list nolinebreak cc=3
:sign define foo text=^Vuff0b
:sign place 1 name=foo line=50 buffer=2
:norm! 2kztj
:let line1=line('.')
0GGlGGlGGlGGl
:let line2=line('.')
:let attr2=attr
:let attr=[]
0GGlGGlGGlGGl
:redraw!
:let line=ScreenChar(winwidth(0),3)
:call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif !exists("+linebreak") || !has("conceal") || !has("signs") | e! test.ok | w!

test.out | qa! | endif
[?25l[?1c:set list nolinebreak cc=3[?25h[?0c[?25l[?1c
:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset encoding=utf8
[?25l[?1c:set list nolinebreak cc=3
:sign define foo text=^Vuff0b
:sign place 1 name=foo line=50 buffer=2
:norm! 2kztj
:let line1=line('.')
0GGlGGlGGlGGl
:let line2=line('.')
:let attr2=attr
:let attr=[]
0GGlGGlGGlGGl
:redraw!
:let line=ScreenChar(winwidth(0),3)
:call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
[?25h[?0c[?25l[?1c
:[?25h[?0cif &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c10new|:vsp|:vert resize 20
[?25l[?1c                    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name]            ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name]                                                  call DoRecordScreen()" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")else   call append('$', "Screen attributes are the same!")
:endif%w! test.out
:qaENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0cput =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [+][?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c        abcdef hijkl
mn  pqrstuvwxyz 1060
ABCDEFGHIJKLMNOP    
~                   
~                   
~                   
~                   
~                   
~                   
                    
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset ts=4 sw=4 sts=4 linebreak sbr=+ wrap
[?25l[?1cabcdef          
+hijklmn            
+pqrstuvwxyz 1060ABC
+DEFGHIJKLMNOP      abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP [?25h[?0c[?25l[?1c:[?25h[?0cfu! ScreenChar(width, lines)
[?25l[?1c
:  [?25h[?0c:^Ilet c=''

[?25l[?1c:  [?25h[?0c:^Ifor j in range(1,a:lines)

[?25l[?1c:    [?25h[?0c:^I    for i in range(1,a:width)

[?25l[?1c:      [?25h[?0c:^I    ^Ilet c.=nr2char(screenchar(j, i))

[?25l[?1c:      [?25h[?0c:^I    endfor

[?25l[?1c:    [?25h[?0c:           let c.="\n"

[?25l[?1c:    [?25h[?0c:^Iendfor

[?25l[?1c:  [?25h[?0c:^Ireturn c

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||||||~                   
~                   
~                   
~                   
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0cfu! DoRecordScreen()
[?25l[?1c
:  [?25h[?0c:^Iwincmd l

[?25l[?1c:  [?25h[?0c:^I$put =printf(\"\n%s\", g:test)

[?25l[?1c:  [?25h[?0c:^I$put =g:line

[?25l[?1c:  [?25h[?0c:^Iwincmd p

[?25l[?1c:  [?25h[?0c:endfu
[?25l[?1cabcdef|
+hijklmn|
+pqrstuvwxyz 1060ABC|
+DEFGHIJKLMNOP      ||
~                   abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 1: set linebreak + set list + fancy listchars"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cexe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eo

l:\ub6"
[?25l[?1c▕———abcdef|▕———␣ˑ¶[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c▕———abcdef|
+hijklmn▕———|
+pqrstuvwxyz␣1060ABC|
+DEFGHIJKLMNOPˑ¶|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines¶                   
Test 1: set         
+linebreak + set    
+list + fancy       
+listchars¶         
▕———abcdefˑˑˑˑˑˑˑˑˑˑ
@                   Test 1: set linebreak + set list + fancy listchars▕———abcdef          +hijklmn▕———        +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶    [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 2: set nolinebreak list"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset list nolinebreak
[?25l[?1chijklmn▕—pqrstuvwxyz␣1060ABCDEFGHIJKLMNOPˑ¶    
¶               
Test 1: set linebrea
+k + set list + fancy listchars¶   
▕———abcdefˑˑˑˑˑˑˑˑˑˑ¶         
+hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c▕———abcdef hijklmn▕—|
+pqrstuvwxyz␣1060ABC|
+DEFGHIJKLMNOPˑ¶|
¶|
Test 1: set linebrea|
+k + set list + fanc|
+y listchars¶|
▕———abcdefˑˑˑˑˑˑˑˑˑˑ|
+¶|
+hijklmn▕———ˑˑˑˑˑˑˑˑ|
@                   
[No Name] [+]        abcdef hijklmn  pqrstuvwxyz 1060ABCDEFGHIJKLMNOPTest 1: set linebreak + set list + fancy listchars▕———abcdef+hijklmn▕———+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶~                                                          ~                                                          [No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            +hijklmn▕———ˑˑˑˑˑˑˑˑ
@                   [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines▕———abcdef                                                 +hijklmn▕———                                               +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ~                                                          ~                                                                                                                                                                                                                                                                                                      Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 3: set linebreak nolist"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =\"\t*mask = nil;\"
[?25l[?1c▕———▕—¶                  
+pqrstuvwxyz␣1060ABC
+¶+DEFGHIJKLMNOPˑ¶ˑˑˑˑ¶                 
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ
+¶                  
▕———*mask = nil;¶~[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c▕———*mask = nil;¶   
~                   
                    
                    
                    
                    
                    
                    
                    
                    ~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   [?25h[?0c[?25l[?1c:[?25h[?0cset nolist linebreak
[?25l[?1c     
    [?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c*mask = nil;    ||||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        ▕———abcdef+hijklmn▕———+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶Test 2: set nolinebreak list▕———abcdef hijklmn▕—+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[No Name] [+]                                              :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),4)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c4 more lines                    
Test 3: set         
+linebreak nolist   
    *mask = nil;    
~                   
~                   
~                   +pqrstuvwxyz␣1060ABC                                       +DEFGHIJKLMNOPˑ¶                                           ¶                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       *mask = nil;Test 3: set linebreak nolist*mask = nil;~~~4 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 4: set linebreak list listchars and concealing"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet c_defines=['#define ABCDE^I^I1','#define ABCDEF^I^I1','#define ABCDEFG^I^I

1','#define ABCDEFGH^I1', '#define MSG_MODE_FILE^I^I^I1','#define MSG_MODE_CONSO

LE^I^I2','#define MSG_MODE_FILE_AND_CONSOLE^I3','#define MSG_MODE_FILE_THEN_CONS

OLE^I4']
[?25l[?1c*mask = nil;    ||
Test 3: set|+pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', c_defines)
[?25l[?1c#define             
+ABCDE      1       [?25h[?0c[?25l[?1c:[?25h[?0cvert resize 40
[?25l[?1c                    |                    |linebreak nolist|
    *mask = nil;                        |
~                    |                    |                    |
#define ABCDE1 |ABCDEF      1 |
#define ABCDEFG     1 |                    +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶*mask = nil;Test 3: set linebreak nolist*mask = nil;~~~[No Name] [+][?25h[?0c[?25l[?1c:[?25h[?0c$-7
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1c#define ABCDE       1                   
#define ABCDEF      1                   
#define ABCDEFG     1                   
                                        
                                        
                                        
                                        
                                        
                                        
                                        #define ABCDEFGH    1
#define MSG_MODE_FILE1
#define MSG_MODE_CONSOLE2
#define MSG_MODE_FILE_AND_CONSOLE   3
#define MSG_MODE_FILE_THEN_CONSOLE  4
~                                       
~                                       [?25h[?0c[?25l[?1c:[?25h[?0cset list linebreak listchars=tab:>- cole=1
[?25l[?1c>-->--->->--->>--->--->-->--->--->--->--->-->-[?25h[?0c[?25l[?1c:[?25h[?0csyn match Conceal conceal cchar=>'AB\|MSG_MODE'
[?25l[?1cAB>CDEF>->CDEFG>->CDEFGH>->_FILE>------->_CONSOLE>------->_FILE_AND_CONSOLE>------->_FILE_THEN_CONSOLE>-------AB[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c#define ABCDE>-->---1|
#define >CDEF>-->---1|
#define >CDEFG>->---1|
#define >CDEFGH>----1|
#define >_FILE>--------->--->---1|
#define >_CONSOLE>---------->---2|
#define >_FILE_AND_CONSOLE>---------3   |
#define >_FILE_THEN_CONSOLE>--------4   |||~                                       
~                                       
[No Name] [+]                            +pqrstuvwxyz␣1060ABC+DEFGHIJKLMNOPˑ¶¶*mask = nil;Test 3: set linebreak nolist*mask = nil;~~~[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),7)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c>CDE>-7 more lines                                        
Test 4: set linebreak list listchars    
@                                       #define >CDEFG>->---1+ #define >CDEFGH>----1+#define >_FILE>--------->--->---1+ #define >_CONSOLE>---------->---2+#define >_FILE_AND_CONSOLE>---------3+ABCDE>
[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 5: set linebreak list listchars and concealing part2"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet c_defines=['bbeeeeee^I^I;^Isome text']
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', c_defines)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c@                                       
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        Test 4: set linebreak list listchars    
+and concealing
#define >CDE>-->---1
#define >CDEF>-->---1
#define >CDEFG>->---1
#define >CDEFGH>----1
#define >_FILE>--------->--->---1
#define >_CONSOLE>---------->---2
#define >_FILE_AND_CONSOLE>---------3
bbeeeeee>--->---;>--some text[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt
[?25l[?1cbbeeeeee>--->---;>--some text           
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       [?25h[?0c[?25l[?1c:[?25h[?0cset nowrap ts=2 list linebreak listchars=tab:>- cole=2 concealcursor=n
[?25l[?1c>;>some text      [?25h[?0c[?25l[?1c:[?25h[?0csyn clear
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match meaning    /;\s*\zs.*/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match hasword    /^\x\{8}/    contains=word
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match word       /\<\x\{8}\>/ contains=beginword,endword contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csyn match beginword  /\<\x\x/     contained conceal
[?25l[?1ceeeeee>--[?25h[?0c[?25l[?1c:[?25h[?0csyn match endword    /\x\{6}\>/   contained
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi meaning   guibg=blue
[?25l[?1csome text[?25h[?0c[?25l[?1c:[?25h[?0chi beginword guibg=green
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0chi endword   guibg=red
[?25l[?1ceeeeee[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1ceeeeee>--->-;>some text||||||||||~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
~                                       
[No Name] [+]                            #define >CDEFG>->---1+#define >CDEFGH>----1+#define >_FILE>--------->--->---1+#define >_CONSOLE>---------->---2+#define >_FILE_AND_CONSOLE>---------3+[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),1)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c                                        
Test 5: set linebreak list listchars and
eeeeee>--->-;>some text                 #define >_CONSOLE>---------->---2      +                                      #define >_FILE_AND_CONSOLE>---------3  +                                                                                                                                                                                                                                                                                bbeeeeee    ; some textTest 5: set linebreak list listchars an+d concealing part2eeeeee>--->-;>some text                + [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 6: Screenattributes for comment"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 6: Screenattributes for comment    [?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', ' /*^I^I and some more */')
[?25l[?1c /*>>- and some more */                 [?25h[?0c[?25l[?1c:[?25h[?0cexe "set ft=c ts=7 linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail

:\u02d1,eol:\ub6"
[?25l[?1ceeeeee▕———————▕——————;▕—————some text¶|
¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ¶▕———▕—————— and some more */¶#define >_CONSOLE>---------->---2         ;      some text[?25h[?0c[?25l[?1c:[?25h[?0csyntax on
[?25l[?1cbbeeeeee▕some text5>some text6for
 /* and some more */#define >_CONSOLE>---------->---2       #define >_FILE_AND_CONSOLE>---------3   bbeeeeeesome text5>some text                 [?25h[?0c[?25l[?1c:[?25h[?0chi SpecialKey term=underline ctermfg=red guifg=red
[?25l[?1c▕—————▕——————▕—————ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ▕———▕——————[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnnoremap <expr> GG ":let attr += ['".screenattr(screenrow(),screencol())."']\n

"[?25l[?1cbbeeeeee▕—————▕——————;▕—————some text¶|#define >_CONSOLE>---------->---2      [?25h[?0c[?25l[?1c:[?25h[?0c$
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnorm! zt0
[?25l[?1c /*▕———▕—————— and some more */¶        
~                                       
~                                       
~                                       
~                                       
                                        
                                        
                                        
                                        
                                        ~                                       
~                                       
~                                       
~                                       
~                                       [?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['83']
[?25h[?0c[?25l[?1c:let attr += ['83']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:let attr += ['100']
[?25h[?0c[?25l[?1c:[?25h[?0ccall append('$', ['ScreenAttributes for test6:'])
[?25l[?1cScreenAttributes for test6:¶            [?25h[?0c[?25l[?1c:[?25h[?0cif attr[0] != attr[1] && attr[1] != attr[3] && attr[3] != attr[5]
[?25l[?1c
:  [?25h[?0c:   call append('$', "Attribut 0 and 1 and 3 and 5 are different!")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:   call append('$', "Not all attributes are different")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c/*▕———▕—————— and some more */¶|
ScreenAttributes for test6:¶|
Attribut 0 and 1 and 3 and 5 are differe||
~                                       #define >_CONSOLE>---------->---2      + #define >_FILE_AND_CONSOLE>---------3  + [?25h[?0c[?25l[?1c:[?25h[?0cset cpo&vim linebreak selection=exclusive
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 8: set linebreak with visual block mode and v_b_A and select

ion=exclusive and multibyte char"
[?25l[?1c/*▕———▕—————— and some more */¶|#define >_CONSOLE>---------->---2      [?25h[?0c[?25l[?1c:[?25h[?0c$put =g:test
[?25l[?1cTest 8: set linebreak with visual block [?25h[?0c[?25l[?1clong line:ˑ¶                            [?25h[?0c[?25l[?1c¶                               
¶                           
¶                                       
¶                                      
oobar foobar foobar foobar foobarˑ¶[?25h[?0c[?25l[?1c
foobar foobar TARGET¶              [?25h[?0c[?25l[?1cÃ' at end¶[?25h[?0c[?25l[?1c:[?25h[?0cexe "norm! $3B\<C-v>eAx\<Esc>"
[?25l[?1cx' at end¶[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet g:test ="Test 9: a multibyte sign and colorcolumn"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr2=[]
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c /*▕———▕—————— and some more */¶ScreenAttributes for test6:¶Attribut 0 and 1 and 3 and 5 are differe
Test 8: set linebreak with visual block
long line: foobar foobar foobar foobar f
¶                                       [?25h[?0c[?25l[?1c:[?25h[?0c$put ='a b c'
[?25l[?1ca b c¶                                  [?25h[?0c[?25l[?1c:[?25h[?0c$put ='a b c'
[?25l[?1ca b c¶                                  [?25h[?0c[?25l[?1c:[?25h[?0cset list nolinebreak cc=3
[?25l[?1c*
Scr
Att
Tesn 
a b
a b[?25h[?0c[?25l[?1c:[?25h[?0csign define foo text=^+
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csign place 1 name=foo line=50 buffer=2
[?25l[?1c   /*▕—▕—— and some more */¶  ScreenAttributes for test6:¶  Attribut 0 and 1 and 3 and 5 are diff
  Test 8: set linebreak with visual bloc
  long line: foobar foobar foobar foobar
  ¶ 
+a b c¶  a b c¶  
  ~~  #define >_CONSOLE>-->---2  +     #define >_FILE_AND_CONSOLE>--3  +     bbeeeeee  ;      some text    Test 5: set linebreak list listchars   +and concealing part2  eeeeee>--->-;>some text  +[?25h[?0c[?25l[?1c:[?25h[?0cnorm! 2kztj
[?25l[?1c  ¶                                     
+a b c¶                                
  a b c¶                                
  ~                                     
  ~                                     
                                        
                                        
                                        
                                        
                                          
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     [?25h[?0c[?25l[?1c:[?25h[?0clet line1=line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['93']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:[?25h[?0clet line2=line('.')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr2=attr
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet attr=[]
[?25l[?1c[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:let attr += ['93']
[?25h[?0c[?25l[?1c:let attr += ['0']
[?25h[?0c[?25l[?1c:[?25h[?0credraw!
[?25l[?1c  ¶ |
+a b c¶|
  a b c¶||||||||  
  
  
  
  
  
  ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     
[No Name] [+]                              #define >_CONSOLE>---------->---2      +     #define >_FILE_AND_CONSOLE>---------3  +     bbeeeeee;      some text    Test 5: set linebreak list listchars  +and concealing part2  eeeeee>--->-;>some text  +[No Name] [+]                          :call DoRecordScreen()
:" expected: attr[2] is different because of colorcolumn
:if attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
:   call append('$', "Screen attributes are different!")
:else
:   call append('$', "Screen attributes are the same!")
:endif
:%w! test.out
:qa!
ENDTEST
dummy text
test_listlbr_utf8.in                                                            [?25h[?0c[?25l[?1c:[?25h[?0clet line=ScreenChar(winwidth(0),3)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall DoRecordScreen()
[?25l[?1c3 more lines¶                                     Test 9: a multibyte sign and colorcolu  ¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ+a b c¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑ  a b c¶ˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑˑa b cTest 9: a multibyte sign and colorcolumn  ¶                     ++a b c¶                                 a b c¶               [?25h[?0c[?25l[?1c:[?25h[?0c" expected: attr[2] is different because of colorcolumn
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif attr[0] != attr2[0] || attr[1] != attr2[1] || attr[2] != attr2[2]
[?25l[?1c
:  [?25h[?0c:   call append('$', "Screen attributes are different!")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:   call append('$', "Screen attributes are the same!")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c  ¶ |
+a b c¶|
  a b c¶|
  ¶ |Screen attributes are the same!¶        a b c    Test 9: a multibyte sign and colorcol  +umn[?25h[?0c[?25l[?1c:[?25h[?0c%w! test.out
[?25l[?1c"test.out" [New File] 57 lines, 1882 characters writtentest.out     test.out     [?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test_listlbr_utf8 = test61; then \
#	  if diff test.out test_listlbr_utf8.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test_listlbr_utf8.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test_listlbr_utf8.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test54.failed test.ok test.out X* viminfo
cp test54.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test54.in
[?25h[?8c[?25h[?0c[?25l[?1c"test54.in" 22 lines, 658 charactersSome tests for buffer-local autocommands

STARTTEST
:so small.vim
:e xx
:if has("vms")
: !del test.out.*
: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out
:else
: !rm -f test.out
: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out
:endif
:e somefile" here, autocommand for xx shall write test.out
:" but autocommand shall not apply to buffer named <buffer>:bwipe xx" here, autocommand shall be auto-deleted
:e xx" nothing shall be written
:e somefile" nothing shall be written
:qa!
ENDTEST

start of test file xx
end of test file xx[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cSome tests for buffer-local autocommands[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 15 lines, 555 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce xx
[?25l[?1c"xx" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: !del test.out.*

[?25l[?1c:  [?25h[?0c: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > te

st.out

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: !rm -f test.out

[?25l[?1c:!rm -f test.out[?25h[?0c
[?25l[?1c:  [?25h[?0c: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce somefile           " here, autocommand for xx shall write test.out 
[?25l[?1c:!echo buffer-local autommand in xx>> test.out

[?25h[?0c[?25l[?1c"somefile" [New File]

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c                     " but autocommand shall not apply to buffer named <buffer

>[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe xx             " here, autocommand shall be auto-deleted
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce xx                 " nothing shall be written
[?25l[?1c"xx" [New File][?25h[?0c[?25l[?1c:[?25h[?0ce somefile           " nothing shall be written
[?25l[?1c"somefile" [New File][?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test54 = test61; then \
#	  if diff test.out test54.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test54.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test54.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test17.in
[?25h[?8c[?25h[?0c[?25l[?1c"test17.in" 135 lines, 2431 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
:"
:if has("unix")
:let $CDIR = "."
/CDIR
:else
:if has("amiga")
:let $TDIR = "/testdir"
:else
:let $TDIR = "."
:endif
/TDIR
:endif[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 564 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:" 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[?25h[?0c[?25l[?1c
[?25h[?0c[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("ebcdic")
[?25l[?1c
:  [?25h[?0c: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:"
:if has("unix")
:let $CDIR = "."
/CDIR[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("unix")
[?25l[?1c
:  [?25h[?0c:let $CDIR = "."

[?25l[?1c:  [?25h[?0c/CDIR

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c:if has("amiga")

[?25l[?1c:    [?25h[?0c:let $TDIR = "/testdir"

[?25l[?1c:    [?25h[?0c:else

[?25l[?1c:    [?25h[?0c:let $TDIR = "."

[?25l[?1c:    [?25h[?0c:endif

[?25l[?1c:  [?25h[?0c/TDIR

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:if has("unix")
:let $CDIR = "."
/CDIR
:else
:if has("amiga")
:let $TDIR = "/testdir"
:else
:let $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.outw! test.outgf:set ff=unix
:w! test.out
:brewindENDTEST${CDIR}/test17a.in[?25h[?0c[?25l[?1c
:[?25h[?0c" Dummy writing for making that sure gf doesn't fail even if the current
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" file is modified. It can be occurred when executing the following command
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" directly on Windows without fixing the 'fileformat':
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"  > nmake -f Make_dos.mak test17.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 135 lines, 2431 characters written[?25h[?0c[?25l[?1c
"/<<PKGBUILDDIR>>/src/vim-athena/testdir/./test17a.in" 3 lines, 8

8characters

Press ENTER or type command to continue[?25h[?0c[?25l[?1cThis file is just to test "gf" in test 17.
The contents is not important.
Just testing!
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ff=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" 3 lines, 88 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 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.outgf:set ff=unix:w! test.out:brewindENDTEST        ${CDIR}/test17a.in        $TDIR/test17a.inSTARTTEST:" check for 'include' without \zs or \ze:lang C:call delete("./Xbase.a"):call delete("Xdir1", "rf"):!mkdir Xdir1:!mkdir "Xdir1/dir2":e! Xdir1/dir2/foo.ai#include   "bar.a"^[:[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 23 lines, 396 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:e Xdir1/dir2/baz.a
i#include"foo.a"^[:
:w
:e Xbase.a
:set path=Xdir1/dir2
i#include    <foo.a>^[:
:w
:redir! >>test.out
:checkpath!
:redir END
:brewind
ENDTEST

STARTTEST
:" check for 'include' with \zs and \ze
:call delete("./Xbase.b")
:call delete("Xdir1", "rf")
:!mkdir Xdir1
:!mkdir "Xdir1/dir2"
:let &include='^\s*%inc\s*/\zs[^/]\+\ze'
:function! DotsToSlashes()
:  return substitute(v:fname, '\.', '/', 'g') . '.b'
:endfunction[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' without \zs or \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clang C
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.a")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.a
[?25l[?1c"Xdir1/dir2/foo.a" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c#include   "bar.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.a" [New File] 1 line, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.a
[?25l[?1c"Xdir1/dir2/bar.a" [New File][?25h[?0c[?25l[?1c#include      "baz.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.a" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.a
[?25l[?1c"Xdir1/dir2/baz.a" [New File][?25h[?0c[?25l[?1c#include"foo.a"[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.a" [New File] 1 line, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.a
[?25l[?1c"Xbase.a" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c#include    <foo.a>[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.a" [New File] 1 line, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c#include    <foo.a>
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 charactersi#include            "foo.a"^[:
:w:e Xbase.a:set path=Xdir1/dir2i#include    <foo.a>^[::w:redir! >>test.out:checkpath!:redir END:brewindENDTESTSTARTTEST:" check for 'include' with \zs and \ze:call delete("./Xbase.b"):call delete("Xdir1", "rf"):!mkdir Xdir1:!mkdir "Xdir1/dir2":let &include='^\s*%inc\s*/\zs[^/]\+\ze':function! DotsToSlashes():  return substitute(v:fname, '\.', '/', 'g') . '.b':endfunction:let &includeexpr='DotsToSlashes()'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 27 lines, 532 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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 delete("Xdir1", "rf")
:!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][?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' with \zs and \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.b")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0clet &include='^\s*%inc\s*/\zs[^/]\+\ze'
[?25l[?1c: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 delete("Xdir1", "rf")
:!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][?25h[?0c[?25l[?1c:[?25h[?0cfunction! DotsToSlashes()
[?25l[?1c
:  [?25h[?0c:  return substitute(v:fname, '\.', '/', 'g') . '.b'

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:e Xdir1/dir2/baz.b
i%inc/foo/^[:[?25h[?0c[?25l[?1c:[?25h[?0clet &includeexpr='DotsToSlashes()'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.b
[?25l[?1c"Xdir1/dir2/foo.b" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c%inc   /bar/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.b" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.b
[?25l[?1c"Xdir1/dir2/bar.b" [New File][?25h[?0c[?25l[?1c%inc      /baz/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.b" [New File] 1 line, 16 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.b
[?25l[?1c"Xdir1/dir2/baz.b" [New File][?25h[?0c[?25l[?1c%inc/foo/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.b" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.b
[?25l[?1c"Xbase.b" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c%inc    /foo/[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.b" [New File] 1 line, 14 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c%inc    /foo/
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 charactersi%inc            /foo/^[:
:w:e Xbase.b:set path=Xdir1/dir2i%inc    /foo/^[::w:redir! >>test.out:checkpath!:redir END:brewindENDTESTSTARTTEST:" check for 'include' with \zs and no \ze:call delete("./Xbase.c"):call delete("Xdir1", "rf"):!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[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" 39 lines, 745 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0c" check for 'include' with \zs and no \ze
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("./Xbase.c")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall delete("Xdir1", "rf")
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c!mkdir Xdir1
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0c!mkdir "Xdir1/dir2"
[?25l[?1c[?25h[?0c

Press ENTER or type command to continue[?25l[?1c:[?25h[?0clet &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
[?25l[?1c: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
[?25h[?0c[?25l[?1c
:[?25h[?0cfunction! StripNewlineChar()
[?25l[?1c
:  [?25h[?0c:  if v:fname =~ '\n$'

[?25l[?1c:    [?25h[?0c:    return v:fname[:-2]

[?25l[?1c:    [?25h[?0c:  endif

[?25l[?1c:  [?25h[?0c:  return v:fname

[?25l[?1c:  [?25h[?0c:endfunction
[?25l[?1c:w
:e Xdir1/dir2/baz.c
i%incfoo.c^[:
:w
:e Xdir1/dir2/FALSE.c[?25h[?0c[?25l[?1c
:[?25h[?0clet &includeexpr='StripNewlineChar()'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xdir1/dir2/foo.c
[?25l[?1c"Xdir1/dir2/foo.c" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c%inc   bar.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/foo.c" [New File] 1 line, 13 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/bar.c
[?25l[?1c"Xdir1/dir2/bar.c" [New File][?25h[?0c[?25l[?1c%inc      baz.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/bar.c" [New File] 1 line, 16 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/baz.c
[?25l[?1c"Xdir1/dir2/baz.c" [New File][?25h[?0c[?25l[?1c%incfoo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/baz.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xdir1/dir2/FALSE.c
[?25l[?1c"Xdir1/dir2/FALSE.c" [New File][?25h[?0c[?25l[?1c%incfoo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xdir1/dir2/FALSE.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce Xbase.c
[?25l[?1c"Xbase.c" [New File][?25h[?0c[?25l[?1c:[?25h[?0cset path=Xdir1/dir2
[?25l[?1c[?25h[?0c[?25l[?1c%inc    FALSE.c foo.c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xbase.c" [New File] 1 line, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0credir! >>test.out
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccheckpath!
[?25l[?1c--- 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[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c%inc    FALSE.c foo.c
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbrewind
[?25l[?1c"test17.in" 135 lines, 2431 characters:w:e Xdir1/dir2/baz.ci%inc            foo.c^[::w:e Xdir1/dir2/FALSE.ci%inc            foo.c^[::w:e Xbase.c:set path=Xdir1/dir2i%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:qENDTEST[?25h[?0c[?25l[?1c:[?25h[?0c" change "\" to "/" for Windows and fix 'fileformat'
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce test.out
[?25l[?1c"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)[?25h[?0c[?25l[?1c:[?25h[?0c%s#\\#/#g
[?25l[?1cE486: Pattern not found: \\[?25h[?0c[?25l[?1c:[?25h[?0cset ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 33 lines, 655 characters written[?25h[?0c[?25l[?1c:[?25h[?0cq
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test17 = test61; then \
#	  if diff test.out test17.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test17.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test17.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test30.in
[?25h[?8c[?25h[?0c[?25l[?1c"test30.in" 237 lines, 3762 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=
:/^unix/;/eof/-1w! XXUnix
:/^dos/;/eof/-1w! XXDos
:set bin noeol
:$w! XXMac
Gonoeol^[
:$w! XXEol
:set nobin eol
:enew!
:bwipe XXUnix XXDos XXMac
:" create mixed format files
:if has("vms")
: !copy XXUnix,XXDos XXUxDs.
: !copy XXUnix,XXMac XXUxMac.
: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for a lot of variations of the 'fileformats' option[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 221 lines, 3592 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72
Go8^[:$r XXtt81
:$r XXtt82
Go9^[:$r XXtt91
:$r XXtt92
:$r XXtt93
Go10^[:$r XXUnix
:set nobinary ff&
:w
:qa!
ENDTEST

unix
unix
eof

dos^M
dos^M
eof

mac^Mmac^M[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" first write three test files, one in each format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^unix/;/eof/-1w! XXUnix
[?25l[?1c"XXUnix" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^dos/;/eof/-1w! XXDos
[?25l[?1c"XXDos" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset bin noeol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$w! XXMac
[?25l[?1c"XXMac" [New File][Incomplete last line] 1 line, 8 characters written[?25h[?0c[?25l[?1c
noeol[?25h[?0c[?25l[?1c
:[?25h[?0c$w! XXEol
[?25l[?1c"XXEol" [New File][Incomplete last line] 1 line, 5 characters written[?25h[?0c[?25l[?1c:[?25h[?0cset nobin eol
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cenew!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c3 buffers wiped out[?25h[?0c[?25l[?1c:[?25h[?0c" create mixed format files
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: !copy XXUnix,XXDos XXUxDs.

[?25l[?1c:  [?25h[?0c: !copy XXUnix,XXMac XXUxMac.

[?25l[?1c:  [?25h[?0c: !copy XXDos,XXMac  XXDosMac.

[?25l[?1c:  [?25h[?0c: !copy XXMac,XXEol  XXMacEol.

[?25l[?1c:  [?25h[?0c: !copy XXUnix,XXDos,XXMac XXUxDsMc.

[?25l[?1c:  [?25h[?0c:elseif has("win32")

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXDos XXUxDs

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXMac XXUxMac

[?25l[?1c:  [?25h[?0c: !copy /b XXDos+XXMac XXDosMac

[?25l[?1c:  [?25h[?0c: !copy /b XXMac+XXEol XXMacEol

[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXDos+XXMac XXUxDsMc

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: !cat XXUnix XXDos >XXUxDs

[?25l[?1c:!cat XXUnix XXDos >XXUxDs[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXUnix XXMac >XXUxMac

[?25l[?1c:!cat XXUnix XXMac >XXUxMac[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXDos XXMac >XXDosMac

[?25l[?1c:!cat XXDos XXMac >XXDosMac[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXMac XXEol >XXMacEol

[?25l[?1c:!cat XXMac XXEol >XXMacEol[?25h[?0c
[?25l[?1c:  [?25h[?0c: !cat XXUnix XXDos XXMac >XXUxDsMc

[?25l[?1c:!cat XXUnix XXDos XXMac >XXUxDsMc[?25h[?0c
[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' empty
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" 2 lines, 10 charactersunix
unix[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" 2 lines, 10 charactersdos^M
dos^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt01
[?25l[?1c"XXtt01" [New File] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [Incomplete last line] 1 line, 8 charactersmacmac^M
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt02
[?25l[?1c"XXtt02" [New File] 1 line, 9 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=dos
[?25l[?1c:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72Go8^[:$r XXtt81:$r XXtt82Go9^[:$r XXtt91:$r XXtt92:$r XXtt93Go10^[:$r XXUnix:set nobinary ff&:w:qa!ENDTESTunixunixeofdos^Mdos^Meofmac^Mmac^M[?25h[?0c[?25l[?1c
:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" [CR missing][dos format] 2 lines, 10 charactersunixunix~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt11
[?25l[?1c"XXtt11" [New File][dos format] 2 lines, 12 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" [dos format] 2 lines, 10 charactersdosdos[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt12
[?25l[?1c"XXtt12" [New File][dos format] 2 lines, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [Incomplete last line][dos format] 1 line, 8 charactersmac^Mmac^M
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt13
[?25l[?1c"XXtt13" [New File][dos format] 1 line, 10 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=mac
[?25l[?1c:$r XXtt64
Go7^[:$r XXtt71
:$r XXtt72Go8^[:$r XXtt81:$r XXtt82Go9^[:$r XXtt91:$r XXtt92:$r XXtt93Go10^[:$r XXUnix:set nobinary ff&:w:qa!ENDTESTunixunixeofdosdoseofmac^Jmac[?25h[?0c[?25l[?1c
:[?25h[?0ce! XXUnix
[?25l[?1c"XXUnix" [Incomplete last line][mac format] 1 line, 10 charactersunix^Junix^J
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt21
[?25l[?1c"XXtt21" [New File][mac format] 1 line, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDos
[?25l[?1c"XXDos" [Incomplete last line][mac format] 3 lines, 10 charactersdos^Jdos^J[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt22
[?25l[?1c"XXtt22" [New File][mac format] 3 lines, 11 characters written[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMac
[?25l[?1c"XXMac" [mac format] 2 lines, 8 charactersmac
mac~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt23
[?25l[?1c"XXtt23" [New File][mac format] 2 lines, 8 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUnix XXDos XXMac
[?25l[?1c"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters

3 buffers wiped out

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c^Jdos
^Jeof^J^Jmac
mac^J[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to one format
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt31
[?25l[?1c"XXtt31" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt32
[?25l[?1c"XXtt32" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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] 237 lines, 3762 characters[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [mac format] 4 lines, 28 charactersunix^Junix^Jdos^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt33
[?25l[?1c"XXtt33" [New File][mac format] 4 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [Incomplete last line][mac format] 5 lines, 3762 characters^Jdoseof^J^Jmac
mac^J[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to two formats
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M
dos^M
mac^Mmac^M[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt41
[?25l[?1c"XXtt41" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxMac
[?25l[?1c"XXUxMac" [Incomplete last line] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt42
[?25l[?1c"XXtt42" [New File] 3 lines, 19 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDosMac
[?25l[?1c"XXDosMac" [Incomplete last line][dos format] 3 lines, 18 charactersdodos
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt43
[?25l[?1c"XXtt43" [New File][dos format] 3 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXDosMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDs
[?25l[?1c"XXUxDs" 4 lines, 20 charactersunixunix
dos^Mdos^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt51
[?25l[?1c"XXtt51" [New File] 4 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDs
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt52
[?25l[?1c"XXtt52" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXDosMac
[?25l[?1c"XXDosMac" [mac format] 4 lines, 18 charactersdo^Jdos
^Jmacmac
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt53
[?25l[?1c"XXtt53" [New File][mac format] 4 lines, 18 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXDosMac
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cunix,mac:unix[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt54
[?25l[?1c"XXtt54" [New File] 2 lines, 20 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDs
[?25l[?1c"XXUxDs" [CR missing][dos format] 4 lines, 20 charactersunixunix
dosdos
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt61
[?25l[?1c"XXtt61" [New File][dos format] 4 lines, 22 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDs
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxMac
[?25l[?1c"XXUxMac" [Incomplete last line][CR missing][dos format] 3 lines, 18 charactersunixunix
mac^Mmac^M~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cdos,mac:dos[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt62
[?25l[?1c"XXtt62" [New File][dos format] 4 lines, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxMac
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character

s
Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt63
[?25l[?1c"XXtt63" [New File][dos format] 5 lines, 32 characters written

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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] 237 lines, 3762 characters[?25h[?0c[?25l[?1c:[?25h[?0ce! XXMacEol
[?25l[?1c"XXMacEol" [Incomplete last line][mac format] 3 lines, 13 charactersmacmac
noeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cdos,mac:mac[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt64
[?25l[?1c"XXtt64" [New File][mac format] 4 lines, 26 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXMacEol
[?25l[?1c"test30.in" [CR missing][dos format] 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" try reading and writing with 'fileformats' set to three formats
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=unix,dos,mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt71
[?25l[?1c"XXtt71" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cunix,dos,mac:unix[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt72
[?25l[?1c"XXtt72" [New File] 2 lines, 24 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac,dos,unix
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt81
[?25l[?1c"XXtt81" [New File] 5 lines, 29 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0ce! XXEol
[?25l[?1c"XXEol" [Incomplete last line][mac format] 1 line, 5 charactersnoeol~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c=[?25h[?0c&ffs
[?25l[?1c=[?25h[?0c&ff
[?25l[?1cmac,dos,unix:mac[?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt82
[?25l[?1c"XXtt82" [New File][mac format] 2 lines, 23 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXEol
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0c" try with 'binary' set
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac,unix,dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset binary
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt91
[?25l[?1c"XXtt91" [New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=mac
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt92
[?25l[?1c"XXtt92" [New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe XXUxDsMc
[?25l[?1c"test30.in" 237 lines, 3762 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=:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMacGonoeol^[:$w! XXEol:set nobin eol:enew!:bwipe XXUnix XXDos XXMac:" create mixed format files:if has("vms"): !copy XXUnix,XXDos XXUxDs.: !copy XXUnix,XXMac XXUxMac.: !copy XXDos,XXMac  XXDosMac.[?25h[?0c[?25l[?1c:[?25h[?0cset fileformats=dos
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! XXUxDsMc
[?25l[?1c"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw! XXtt93
[?25l[?1c"XXtt93" [New File][Incomplete last line] 5 lines, 28 characters written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Append "END" to each file so that we can see what the last written char was.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset fileformat=unix nobin
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1cEND[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt01
[?25l[?1c"XXtt01" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt02
[?25l[?1c"XXtt02" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt11
[?25l[?1c"XXtt11" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt12
[?25l[?1c"XXtt12" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt13
[?25l[?1c"XXtt13" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt21
[?25l[?1c"XXtt21" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt22
[?25l[?1c"XXtt22" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt23
[?25l[?1c"XXtt23" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt31
[?25l[?1c"XXtt31" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt32
[?25l[?1c"XXtt32" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt33
[?25l[?1c"XXtt33" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt41
[?25l[?1c"XXtt41" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt42
[?25l[?1c"XXtt42" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt43
[?25l[?1c"XXtt43" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt51
[?25l[?1c"XXtt51" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt52
[?25l[?1c"XXtt52" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt53
[?25l[?1c"XXtt53" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt54
[?25l[?1c"XXtt54" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt61
[?25l[?1c"XXtt61" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt62
[?25l[?1c"XXtt62" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt63
[?25l[?1c"XXtt63" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt64
[?25l[?1c"XXtt64" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt71
[?25l[?1c"XXtt71" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt72
[?25l[?1c"XXtt72" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt81
[?25l[?1c"XXtt81" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt82
[?25l[?1c"XXtt82" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt91
[?25l[?1c"XXtt91" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt92
[?25l[?1c"XXtt92" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0cw >>XXtt93
[?25l[?1c"XXtt93" 1 line, 4 characters appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Concatenate the results.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Make fileformat of test.out the native fileformat.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Add a newline at the end.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset binary
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! test.out
[?25l[?1c"test.out" 2 lines, 10 charactersunix
unix[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt01
[?25l[?1c"XXtt01" 3 lines, 14 charactersdos^Mdos^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt02
[?25l[?1c"XXtt02" 2 lines, 13 charactersmac^Mmac^MEND[?25h[?0c
[?25l[?1c
1[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt11
[?25l[?1c"XXtt11" 3 lines, 16 charactersunix^Munix^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt12
[?25l[?1c"XXtt12" 3 lines, 14 charactersdos^Mdos^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt13
[?25l[?1c"XXtt13" 2 lines, 14 charactersmac^Mmac^M^MEND[?25h[?0c
[?25l[?1c
2[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt21
[?25l[?1c"XXtt21" 3 lines, 15 charactersunixunix^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt22
[?25l[?1c"XXtt22" 3 lines, 15 charactersdos^Mdos^M^MEND[?25h[?0c[?25l[?1c:[?25h[?0c$r XXtt23
[?25l[?1c"XXtt23" 1 line, 12 characters
mac^Mmac^MEND[?25h[?0c[?25l[?1c
3[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt31
[?25l[?1c"XXtt31" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt32
[?25l[?1c"XXtt32" 6 lines, 36 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt33
[?25l[?1c"XXtt33" 5 lines, 32 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
unix[?25h[?0c[?25l[?1cunix
dos^M
dos^M
mac^Mmac^MEND
[?25h[?0c[?25l[?1c
4[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt41
[?25l[?1c"XXtt41" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt42
[?25l[?1c"XXtt42" 4 lines, 23 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt43
[?25l[?1c"XXtt43" 4 lines, 24 charactersunix
mac^Mmac^M
END
dos^M[?25h[?0c[?25l[?1cdos^M
mac^Mmac^M^M
END
[?25h[?0c[?25l[?1c
5[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt51
[?25l[?1c"XXtt51" 5 lines, 24 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt52
[?25l[?1c"XXtt52" 6 lines, 33 charactersunix
dos^M
dos^M
END
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt53
[?25l[?1c"XXtt53" 3 lines, 22 charactersunix
dos^M
dos^M
mac^Mmac^M
END
dos^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt54
[?25l[?1c"XXtt54" 3 lines, 24 charactersdos^M
mac^Mmac^MEND
unix,mac:unix[?25h[?0c[?25l[?1cnoeol
END
[?25h[?0c[?25l[?1c
6[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt61
[?25l[?1c"XXtt61" 5 lines, 26 characters
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt62
[?25l[?1c"XXtt62" 5 lines, 39 charactersunix^M
dos^M
dos^M
END
dos,mac:dos^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt63
[?25l[?1c"XXtt63" 6 lines, 36 charactersunix^M
unix^M
mac^Mmac^M^M
END
unix^M[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt64
[?25l[?1c"XXtt64" 1 line, 30 charactersunix^M
dos^M
dos^M
mac^Mmac^M^M
END
dos,mac:mac^Mmac^Mmac^Mnoeol^MEND[?25h[?0c[?25l[?1c
7[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt71
[?25l[?1c"XXtt71" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt72
[?25l[?1c"XXtt72" 3 lines, 28 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix,dos,mac:unix[?25h[?0c[?25l[?1cnoeol
END
[?25h[?0c[?25l[?1c
8[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt81
[?25l[?1c"XXtt81" 6 lines, 33 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt82
[?25l[?1c"XXtt82" 1 line, 27 charactersunix
dos^M
dos^M
mac^Mmac^M
END
mac,dos,unix:mac^Mnoeol^MEND[?25h[?0c[?25l[?1c
9[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt91
[?25l[?1c"XXtt91" 5 lines, 32 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt92
[?25l[?1c"XXtt92" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt93
[?25l[?1c"XXtt93" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?25h[?0c[?25l[?1cunix
dos^M
dos^M
mac^Mmac^MEND
[?25h[?0c[?25l[?1c
10[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXUnix
[?25l[?1c"XXUnix" 2 lines, 10 characters
unix[?25h[?0c[?25l[?1c
:[?25h[?0cset nobinary ff&
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"test.out" 130 lines, 786 characters written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test30 = test61; then \
#	  if diff test.out test30.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test30.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test30.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test32.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTest for insert expansion[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c[?25l[?1c
:so small.vim[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 27 lines, 533 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c
/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[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cse nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
[?25l[?1c"Xtestfile" [New] 3L, 57C written[?25h[?0c[?25l[?1c:[?25h[?0cse cot=
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       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
ENDTESTstart of testfile
run1run2test32.in                                                                       [?25h[?0c[?25l[?1c-- 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[+][?25h[?0c[?25l[?1c-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?25h[?0c[?25l[?1c3[?25h[?0c
[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?25h[?0c
[?25l[?1c:[?25h[?0cse cpt=.,w,i
[?25l[?1c[?25h[?0c[?25l[?1c-- 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 matchMakefileto      run3
Makefileto      run3
Makefileto      run3[?25h[?0c[?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=kXtestfile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw Xtest11.one
[?25l[?1c"Xtest11.one" [New] 9L, 104C writtenXtest11.one  [?25h[?0c[?25l[?1c:[?25h[?0cw Xtest11.two
[?25l[?1c"Xtest11.two" [New] 9L, 104C written[?25h[?0c[?25l[?1c-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning dictionary: Xtestfilematch in file Xtestfile-- Keyword completion (^N^P) match 1 of 9test11[+]I[?25h[?0c [?25l[?1c-- Keyword completion (^N^P) match 1 of 9-- INSERT --[?25h[?0c[?25l[?1c-- INSERT --Xtest11
[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0c" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" CTRL-X CTRL-F again to verify this doesn't cause trouble.
[?25l[?1c[?25h[?0c[?25l[?1c-- 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 442
Make_all.mak
run1 run2d[?25h[?0c [?25l[?1c-- INSERT --[?25h[?0c[?25l[?1c
run1 run2~                                                                               [?25h[?0c
[?25l[?1c:[?25h[?0cse cpt=w
[?25l[?1c[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=u nohid
[?25l[?1c[?25h[?0c[?25l[?1c

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c[?25l[?1c:[?25h[?0cse cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
[?25l[?1c[?25h[?0c[?25l[?1c-- 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[?25h[?0c[?25l[?1c-- Keyword completion (^N^P) The only match-- INSERT --[?25h[?0c
ru[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New] 15L, 175C written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test32 = test61; then \
#	  if diff test.out test32.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test32.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test32.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test58.in
[?25h[?8c[?25h[?0c[?25l[?1c"test58.in" 656 lines, 11024 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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for spell checking.     vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2591 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:"
:" NOSLITSUGS
:call TestOne('8', '8')
:" Numbers
:call TestOne('9', '9')
:"
:" clean up for valgrind
:delfunc TestOne
:set spl= enc=latin1
:"
gg:/^test output:/,$wq! test.out
ENDTEST

1affstart
SET ISO8859-1


[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Don't want to depend on the locale from the environment
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c:"
:" NOSLITSUGS
:call TestOne('8', '8')
:" Numbers
:call TestOne('9', '9')
:"
:" clean up for valgrind
:delfunc TestOne
:set spl= enc=latin1
:"
gg:/^test output:/,$wq! test.out
ENDTEST

1affstart
SET ISO8859-1


:"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Check using z= in new buffer (crash fixed by patch 7.4a.028).
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset maxmem=512 spell
[?25l[?1cvim

STARTTESTlatin1maxmem
iasdaff/.dic
:func TestOne(aff, dicspellfilea:affa:dicspldic and .aff
  exea:aff . 'affstarta:aff . 'affend/-1w! Xtest.aff
  exea:dic . 'dicstarta:dic . 'dicend/-1w! Xtest.dic
  mkspell! Xtest Xtest[?25h[?0c[?25l[?1casdTests for spell checking.     vim: set ft=vim :[?25h[?0c[?25l[?1cChange "asdTests" to:

 1 "Acid tests"

 2 "Attests"

 3 "Ass Tests"

 4 "As Tests"

 5 "Sad Tests"

 6 "Ads Tests"

 7 "As tests"

 8 "As detests"

 9 "Add Tests"

10 "Aid Tests"

11 "Ash Tests"

12 "Ad Tests"

13 "And Tests"

14 "Ask Tests"

15 "Asp Tests"

16 "USD Tests"

17 "Astutest"

18 "Autotests"

19 "Sadists"

20 "Asst Tests"

21 "Assad Tests"

22 "SSD Tests"

Type number and <Enter> or click with mouse (empty cancels): [?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Function to test .aff/.dic with list of good and bad words.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc TestOne(aff, dic)
[?25l[?1c
:  [?25h[?0c  set spellfile=

[?25l[?1c:  [?25h[?0c  $put =''

[?25l[?1c:  [?25h[?0c  $put ='test '. a:aff . '-' . a:dic

[?25l[?1c:  [?25h[?0c  " Generate a .spl file from a .dic and .aff file.

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l[?1c:  [?25h[?0c  mkspell! Xtest Xtest

[?25l[?1c:  [?25h[?0c  " use that spell file

[?25l[?1c:  [?25h[?0c  set spl=Xtest.latin1.spl spell

[?25l[?1c:  [?25h[?0c  " list all valid words

[?25l[?1c:  [?25h[?0c  spelldump

[?25l[?1c:  [?25h[?0c  %yank

[?25l[?1c:  [?25h[?0c  quit

[?25l[?1c:  [?25h[?0c  $put

[?25l[?1c:  [?25h[?0c  $put ='-------'

[?25l[?1c:  [?25h[?0c  " find all bad words and suggestions for them

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'good:'

[?25l[?1c:  [?25h[?0c  normal 0f:]s

[?25l[?1c:  [?25h[?0c  let prevbad = ''

[?25l[?1c:  [?25h[?0c  while 1

[?25l[?1c:    [?25h[?0c    let [bad, a] = spellbadword()

[?25l[?1c:    [?25h[?0c    if bad == '' || bad == prevbad || bad == 'badend'

[?25l[?1c:      [?25h[?0c      break

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let prevbad = bad

[?25l[?1c:    [?25h[?0c    let lst = spellsuggest(bad, 3)

[?25l[?1c:    [?25h[?0c    normal mm

[?25l[?1c:    [?25h[?0c    $put =bad

[?25l[?1c:    [?25h[?0c    $put =string(lst)

[?25l[?1c:    [?25h[?0c    normal `m]s

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('1', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1cthe 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']
end
['put', 'uk', 'test']th['put', 'uk', 'test']gebletegek[?25h[?0c[?25l[?1c
kepereneven[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
everles gesvets etele[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l[?1c"Xtest.aff" 151 lines, 3412 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest Xtest
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1c-------
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']
end['put', 'uk', 'test']
the['put', 'uk', 'test']gebletegekkepereneveneverles gesvet etelekbltykk[?25h[?0c[?25l[?1c
kprnfn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
*fls kswts tl[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" also use an addition file
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^addstart/+1,/^addend/-1w! Xtest.latin1.add
[?25l[?1c"Xtest.latin1.add" [New File] 3 lines, 38 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest.latin1.add.spl Xtest.latin1.add
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0cset spellfile=Xtest.latin1.add
[?25l[?1casdTests for spell checking.     vim: set ft=vim :

STARTTEST
:so small.vim
:"
:" Don't want to depend on the locale from the environment[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cinputs
['input', 'puts', 'outputs']
comment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_us.latin1.spl
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['input', 'puts', 'outputs']
comment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ccomment
['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_gb.latin1.spl
[?25l[?1celequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['Comment', 'outtest', 'the end']
ok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cok
['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
elekwent
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_nz.latin1.spl
[?25l[?1celequint
elekwint
elekwint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['OK', 'uk', 'put']
Ok
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
end
['put', 'uk', 'test']
the
['put', 'uk', 'test']
gebletegek
kepereneven
everles gesvets etele
kbltykk
kprnfn
*fls kswts tl
elekwent
elequint
elekwint
elekwint
elekwent
elequint
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cOk
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_ca.latin1.spl
[?25l[?1celequint
elekwint
elekwint

elequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch hit BOTTOM, continuing at TOP2good: puts
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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c2good: puts
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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ctest
['Test', 'testn', 'testen']
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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet str a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Postponed prefixes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('2', '1')
[?25l[?1c"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

2affend

2good: puts
badendaddstar
/regions=usgbnz
elequ/2/3
addendtest2:test elekwint test elekwent asdf[?25h[?0c[?25l[?1c:[?25h[?0c" Compound words
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('3', '3')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('4', '4')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('5', '5')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('6', '6')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('7', '7')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c1234
mee/391,111,9999
bar/17,61003,123
lead/2
tail/123
middle/77,1
7dicend

bad: mee meea2 prabar probarmaat middle leadmiddle middletail tailleadleadprobar
badend

Test NOSLITSUGS

8affstart
SET ISO8859-1

NOSPLITSUGS
8affend

8dicstart[?25h[?0c[?25l[?1c:[?25h[?0c" NOSLITSUGS
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('8', '8')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c" Numbers
[?25l[?1cNOSPLITSUGS
8affend

8dicstart
1234
foo
bar
faabar
8dicend

8good: foo bar faabar
bad: foobar barfooTest Numbers9affstart9affend9dicstart
1234
foo[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('9', '9')
[?25l[?1cError detected while processing function TestOne:

line    5:

E493: Backwards range given: 1;/^9affstart/+1,/^9affend/-1w! Xtest.aff

"Xtest.dic" 3 lines, 13 characters written

Reading affix file Xtest.aff ...

Reading dictionary file Xtest.dic ...

line      2, word      0 - foo
Compressing word tree...
Compressed 2 of 15 nodes; 13 (86%) remaining

Writing spell file Xtest.latin1.spl ...

Done!

Estimated runtime memory use: 65 bytes

3 lines yanked

3 more lines

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1cTest Numbers

9affstart
9affend

9dicstart
1234
foo
bar
9dicend

9good: 0b1011 0777 1234 0x01ff
badend


test output:

test 1-1# ile: Xtest.latin1.spl
Comment
input[?25h[?0c[?25l[?1c:[?25h[?0c" clean up for valgrind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestOne
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset spl= enc=latin1
[?25l[?1cTest Numbers

9affstart
9affend

9dicstart
1234
foo
bar
9dicend

9good: 0b1011 0777 1234 0x01ff
badend


test output:

test 1-1
# file: Xtest.latin1.spl
Comment
deol
input[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1casdTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^test output:/,$wq! test.out
[?25l[?1c"test.out" [New File] 289 lines, 3844 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test58 = test61; then \
#	  if diff test.out test58.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test58.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test58.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test59.in
[?25h[?8c[?25h[?0c[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 106 lines, 2520 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/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


[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Don't want to depend on the locale from the environment.  The .aff and .dic
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" text is in latin1, the test text is utf-8.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=latin1
[?25l[?1c: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


:" 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[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf-8
[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0cset fenc=
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Function to test .aff/.dic with list of good and bad words.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cfunc TestOne(aff, dic)
[?25l[?1c
:  [?25h[?0c  set spellfile=

[?25l[?1c:  [?25h[?0c  $put =''

[?25l[?1c:  [?25h[?0c  $put ='test '. a:aff . '-' . a:dic

[?25l[?1c:  [?25h[?0c  " Generate a .spl file from a .dic and .aff file.

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'

[?25l[?1c:  [?25h[?0c  mkspell! Xtest Xtest

[?25l[?1c:  [?25h[?0c  " use that spell file

[?25l[?1c:  [?25h[?0c  set spl=Xtest.utf-8.spl spell

[?25l[?1c:  [?25h[?0c  " list all valid words

[?25l[?1c:  [?25h[?0c  spelldump

[?25l[?1c:  [?25h[?0c  %yank

[?25l[?1c:  [?25h[?0c  quit

[?25l[?1c:  [?25h[?0c  $put

[?25l[?1c:  [?25h[?0c  $put ='-------'

[?25l[?1c:  [?25h[?0c  " find all bad words and suggestions for them

[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'good:'

[?25l[?1c:  [?25h[?0c  normal 0f:]s

[?25l[?1c:  [?25h[?0c  let prevbad = ''

[?25l[?1c:  [?25h[?0c  while 1

[?25l[?1c:    [?25h[?0c    let [bad, a] = spellbadword()

[?25l[?1c:    [?25h[?0c    if bad == '' || bad == prevbad || bad == 'badend'

[?25l[?1c:      [?25h[?0c      break

[?25l[?1c:      [?25h[?0c    endif

[?25l[?1c:    [?25h[?0c    let prevbad = bad

[?25l[?1c:    [?25h[?0c    let lst = spellsuggest(bad, 3)

[?25l[?1c:    [?25h[?0c    normal mm

[?25l[?1c:    [?25h[?0c    $put =bad

[?25l[?1c:    [?25h[?0c    $put =string(lst)

[?25l[?1c:    [?25h[?0c    normal `m]s

[?25l[?1c:    [?25h[?0c  endwhile

[?25l[?1c:  [?25h[?0cendfunc
[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('1', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1cthe 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[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('kóopërÿnôven')
[?25l[?1c
kepereneven[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
everles gesvets etele[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" and now with SAL instead of SOFO items; test automatic reloading
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
[?25l[?1c"Xtest.aff" 153 lines, 3426 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest Xtest
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0c$put =soundfold('goobledygoook')
[?25l[?1c-------
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[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('kóopërÿnôven')
[?25l[?1c
kprnfn[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')
[?25l[?1c
*fls kswts tl[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" also use an addition file
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^addstart/+1,/^addend/-1w! Xtest.utf-8.add
[?25l[?1c"Xtest.utf-8.add" [New File] 3 lines, 38 characters written[?25h[?0c[?25l[?1c:[?25h[?0cmkspell! Xtest.utf-8.add.spl Xtest.utf-8.add
[?25l[?1cReading 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[?25h[?0c[?25l[?1c:[?25h[?0cset spellfile=Xtest.utf-8.add
[?25l[?1cTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1ctomato 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 !![?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cinputs
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_us.utf-8.spl
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ccomment
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_gb.utf-8.spl
[?25l[?1celequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cok
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_nz.utf-8.spl
[?25l[?1celequint
elekwint
elekwint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1cOk
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cset spl=Xtest_ca.utf-8.spl
[?25l[?1celequint
elekwint
elekwint

elequint
[?25h[?0c[?25l[?1c/[?25h[?0c^test2:
[?25l[?1csearch 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[?25h[?0c
[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1c['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
[?25h[?0c[?25l[?1cstartwordwordend 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[?25h[?0c[?25l[?1c:[?25h[?0clet [str, a] = spellbadword()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =str
[?25l[?1ctest
['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
[?25h[?0c[?25l[?1c
:[?25h[?0cunlet str a
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Postponed prefixes
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('2', '1')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1caddstart
/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[?25h[?0c[?25l[?1c:[?25h[?0c" Compound words
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('3', '3')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('4', '4')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('5', '5')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('6', '6')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0ccall TestOne('7', '7')
[?25l[?1c"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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c1234
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[?25h[?0c[?25l[?1c:[?25h[?0c" clean up for valgrind
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cdelfunc TestOne
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset spl= enc=latin1
[?25l[?1c1234
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[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1cTests 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[?25h[?0c[?25l[?1c:[?25h[?0c/^test output:/,$wq! test.out
[?25l[?1c"test.out" [New File] 270 lines, 3685 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test59 = test61; then \
#	  if diff test.out test59.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test59.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test59.in; \
#	  fi \
#	fi"
# 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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test72.in
[?25h[?8c[?25h[?0c[?25l[?1c"test72.in" 146 lines, 2110 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/[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for undo file.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 135 lines, 1913 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:bwipe!
:e Xtestfile
foo2bar
:set key=
/bar
:.w >>test.out
u:.w >>test.out
u:.w >>test.out
u:.w >>test.out
:"
:" Rename the undo file so that it gets cleaned up.
:if has("vms")
: call rename("_un_Xtestfile", "Xtestundo")
:else
: call rename(".Xtestfile.un~", "Xtestundo")
:endif
:qa!
ENDTEST

1111 -----
2222 -----

123456789[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile': first a simple one-line change.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocompatible viminfo+=nviminfo visualbell
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100 undofile nomore
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c-- INSERT --this is one line[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cs/one/ONE/
[?25l[?1cONE
[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" [New] 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!:e Xtestfilefoo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 1L, 17Cthis is ONE line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1 change; before #2  1 seconds agoone
[?25h[?0c[?25l[?1c:[?25h[?0c.w! test.out
[?25l[?1c"test.out" [New] 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile', change in original file fails check
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noundofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 1L, 17CONE
[?25h[?0c[?25l[?1c:[?25h[?0cs/line/Line/
[?25l[?1cL
[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" 1L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cset undofile
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!:e Xtestfilefoo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 1L, 17Cthis is ONE Line
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c" TODO: this beeps
[?25l[?1c[?25h[?0c[?5h[?5l[?25l[?1cAlready at oldest change[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 17C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test 'undofile', add 10 lines, delete 6 lines, undo 3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset undofile
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --one
twothreefourfivesixseveneightnineten[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cw
[?25l[?1c"Xtestfile" 4L, 17C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2bar
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Conetwonineten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c1 more line; before #7  0 seconds agoeight[?25h[?0c[?25l[?1c1 more line; before #6  0 seconds agoseven[?25h[?0c[?25l[?1c1 more line; before #5  0 seconds agosix[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 7L, 33C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Test that reading the undofiles when setting undofile works
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset noundofile ul=0
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --six
u[?25h[?0cs[?25l[?1c[?25h[?0c[?25l[?1c1 line less; before #8  0 seconds ago
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Cnine
ten~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset undofile ul=100
[?25l[?1c[?25h[?0c[?25l[?1c1 more line; before #7  0 seconds agoeight[?25h[?0c[?25l[?1c1 more line; before #6  0 seconds agoseven[?25h[?0c[?25l[?1c1 more line; before #5  0 seconds agosix[?25h[?0c[?25l[?1c1 more line; before #4  0 seconds agofive[?25h[?0c[?25l[?1c1 more line; before #3  0 seconds agofour[?25h[?0c[?25l[?1c1 more line; before #2  0 seconds agothree[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 10L, 49C appended[?25h[?0c[?25l[?1c:[?25h[?0c" And now with encryption, cryptmethod=zip
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" 4L, 17Cninten~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=zip
[?25l[?1c[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --monday
tuesdaywednesdaythursdayfriday[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1cEnter same key again: [?25h[?0c******

[?25l[?1cmonday
friday
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile" [crypted] 2L, 14C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2bar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1c"Xtestfile" [crypted] 2L, 14Cmonday
friday
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [crypted] 2L, 14C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
[?25l[?1c[?25h[?0c[?25l[?1c1 more line; before #11  1 seconds agothursday[?25h[?0c[?25l[?1c1 more line; before #10  1 seconds agowednesday[?25h[?0c[?25l[?1c:[?25h[?0cw >>test.out
[?25l[?1c"test.out" 4L, 33C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" With encryption, cryptmethod=blowfish
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c*******

~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][crypted] 1L, 14C[?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=blowfish ff&
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --jan
febmaraprjun[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c-- INSERT --foo mar[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --bar apr[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cWarning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1cEnter same key again: [?25h[?0c******

[?25l[?1cjan
feb
bar apr[?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile" [blowfish] 4L, 20C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2ba
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c******

[?25l[?1c"Xtestfile" [blowfish] 4L, 20Cjan
feb
bar apr
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish] 4L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #15  1 seconds agoap[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c1 more line; before #14  1 seconds agofoo mar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #13  1 seconds agomar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" With encryption, cryptmethod=blowfish2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtestfile
[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: [?25h[?0c*******

~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [noeol][blowfish] 1L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset undofile cm=blowfish2 ff&
[?25l[?1c[?25h[?0c[?25l[?1c--No lines in buffer--[?25h[?0c[?25l[?1c-- INSERT --jan
febmaraprjun[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c
[?25l[?1c-- INSERT --foo mar[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c
~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c-- INSERT --bar apr[?25h[?0c[?25l[?1c:[?25h[?0cset ul=100
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cX
[?25l[?1cEnter encryption key: [?25h[?0c*******

[?25l[?1cEnter same key again: [?25h[?0c*******

[?25l[?1cjan
feb[?25h[?0c[?25l[?1c:[?25h[?0cw!
[?25l[?1c"Xtestfile" [blowfish2] 4L, 20C written[?25h[?0c[?25l[?1c:[?25h[?0cbwipe!
[?25l[?1c"test72.in" 146L, 2110C:bwipe!
:e Xtestfile
foo2ba
:set key=
/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:if has("vms"): call rename("_un_Xtestfile", "Xtestundo"):else: call rename(".Xtestfile.un~", "Xtestundo"):endif:qa!ENDTEST1111 -----2222 -----123456789[?25h[?0c[?25l[?1c:[?25h[?0ce Xtestfile
[?25l[?1c"Xtestfile" 
Need encryption key for "Xtestfile"

Enter encryption key: [?25h[?0c*******

[?25l[?1c"Xtestfile" [blowfish2] 4L, 20Cjan
feb
bar ap
jun~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               "Xtestfile" [blowfish2] 4L, 20C[?25h[?0c[?25l[?1c:[?25h[?0cset key=
[?25l[?1c[?25h[?0c[?25l[?1c/[?25h[?0cbar
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #19  2 seconds agoap[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c1 more line; before #18  2 seconds agofoo mar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 8C appended[?25h[?0c[?25l[?1c1 change; before #17  2 seconds agomar[?25h[?0c[?25l[?1c:[?25h[?0c.w >>test.out
[?25l[?1c"test.out" 1L, 4C appended[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" Rename the undo file so that it gets cleaned up.
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif has("vms")
[?25l[?1c
:  [?25h[?0c: call rename("_un_Xtestfile", "Xtestundo")

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: call rename(".Xtestfile.un~", "Xtestundo")

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cjan
feb
mar
apr[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test72 = test61; then \
#	  if diff test.out test72.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test72.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test72.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test78.failed test.ok test.out X* viminfo
cp test78.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test78.in
[?25h[?8c[?25h[?0c[?25l[?1c"test78.in" 46 lines, 1464 charactersInserts 10000 lines with text to fill the swap file with two levels of pointer
blocks.  Then recovers from the swap file and checks all text is restored.

We need about 10000 lines of 100 characters to get two levels of pointer
blocks.

STARTTEST
:so small.vim
:set nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
:e! Xtest
ggdG
:let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
:let i = 1
:let linecount = 10000
:while i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
:preserve
:" get the name of the swap file
:redir => swapname
:swapname
:redir END
:let swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][:cntrl:]]*$', '\1', '')[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cInserts 10000 lines with text to fill the swap file with two levels of pointer[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1208 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:set nobin
:new
:only!
:bwipe! Xtest
:call rename('Xswap', swapname)
:recover Xtest
:call delete(swapname)
:new
:call append(0, 'recovery start')
:wincmd w
:let linedollar = line('$')
:if linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected ". linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let linecount = linedollar | endif
:let i = 1
:while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call append(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
:q!
:call append(line('$'), 'recovery end')
:w! test.out
:qa!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ce! Xtest
[?25l[?1c"Xtest" [New File]~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0clet text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01

23456789abcdefghijklmnoparstuvwxyz0123456789"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet linecount = 10000
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
[?25l[?1c9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899991    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899992    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899993    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899994    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899995    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899996    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899997    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899998    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678910000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[?25h[?0c[?25l[?1c:[?25h[?0cpreserve
[?25l[?1cFile preserved[?25h[?0c[?25l[?1c:[?25h[?0c" get the name of the swap file
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir => swapname
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cswapname
[?25l[?1c.Xtest.swp[?25h[?0c[?25l[?1c:[?25h[?0credir END
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][

:cntrl:]]*$', '\1', '')
[?25l[?1c9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789[?25h[?0c[?25l[?1c

10000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789

~                                                                               Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0conly!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cbwipe! Xtest
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall rename('Xswap', swapname)
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0crecover Xtest
[?25l[?1cUsing swap file ".Xtest.swp"

Original file "/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtest"

"/<<PKGBUILDDIR>>/src/vim-athena/testdir/Xtest" [New File]Recovery completed. You should check if everything is OK.

(You might want to write out this file under another name

and run diff with the original file to check for changes)

You may want to delete the .swp file now.



Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ccall delete(swapname)
[?25l[?1c1abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
2abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
3abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
4abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
5       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567896       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567897       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567898       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz01234567899       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678910      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678911      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz012345678912      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       1

2

3

4 

5 

Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0ccall append(0, 'recovery start')
[?25l[?1crecovery start[+][?25h[?0c[?25l[?1c:[?25h[?0cwincmd w
[?25l[?1c[No Name] [+]                                                                   Xtest [+]                                                                       [?25h[?0c[?25l[?1c:[?25h[?0clet linedollar = line('$')
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected 

" . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let li

necount = linedollar | endif
[?25l[?1crecovery start[?25h[?0c[?25l[?1c:[?25h[?0clet i = 1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwhile i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call appen

d(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
[?25l[?1crecovery start[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0ccall append(line('$'), 'recovery end')
[?25l[?1crecovery end[?25h[?0c[?25l[?1c:[?25h[?0cw! test.out
[?25l[?1c"test.out" [New] 3L, 29C written[?25h[?0c[?25l[?1c:[?25h[?0cqa!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test78 = test61; then \
#	  if diff test.out test78.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test78.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test78.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test83.failed test.ok test.out X* viminfo
cp test83.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test83.in
[?25h[?8c[?25h[?0c[?25l[?1c"test83.in" 76 lines, 1273 charactersTests for tag search with !_TAG_FILE_ENCODING.

STARTTEST
:so mbyte.vim
:set enc=utf8
:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
: e! test.ok
: w! test.out
: qa!
:endif
:
:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
:
ggdG:
:
:call setline('.', 'Results of test83')
:
:" case1:
:new
:set tags=Xtags1[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1cTests for tag search with !_TAG_FILE_ENCODING.[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 58 lines, 1021 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'
:else
: close
: put ='case3: ok'
:endif
:close
:
:wq! test.out
ENDTEST

text for tags1
abcdefghijklmnopqrs

text for tags2
ABC

text for tags3
ABC

tags1[?25h[?0c
[?25l[?1c:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso mbyte.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset enc=utf8
[?25l[?1c:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'
:else
: close
: put ='case3: ok'
:endif
:close
:
:wq! test.out
ENDTEST

text for tags1
abcdefghijklmnopqrs

text for tags2
ABC

text for tags3
ABC

tags1[?25h[?0c[?25l[?1c:[?25h[?0cif !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
[?25l[?1c
:  [?25h[?0c: e! test.ok

[?25l[?1c:  [?25h[?0c: w! test.out

[?25l[?1c:  [?25h[?0c: qa!

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1c:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
: close
: put ='case3: failed'[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
[?25l[?1c"Xtags1.txt" [New File] 2 lines, 35 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
[?25l[?1c"Xtags2.txt" [New File] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
[?25l[?1c"Xtags3.txt" [New File] 2 lines, 25 characters written[?25h[?0c[?25l[?1c:[?25h[?0c/^tags1$/+1,/^tags1-end$/-1w! Xtags1
[?25l[?1c"Xtags1" [New File] 2 lines, 81 characters written[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1cTests for tag search with !_TAG_FILE_ENCODING.

STARTTEST
:so mbyte.vim
:set enc=utf8
:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
: e! test.ok
: w! test.out
: qa!
:endif
:
:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
:
ggdG:
:
:call setline('.', 'Results of test83')
:
:" case1:
:new
:set tags=Xtags1[?25h[?0c[?25l[?1c~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               --No lines in buffer--[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccall setline('.', 'Results of test83')
[?25l[?1cResults of test83
[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case1:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c[No Name]                                                                       Results of test83test83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=Xtags1
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag abcdefghijklmnopqrs
[?25l[?1c"Xtags1.txt" 2 lines, 35 characterstext for tags1
abcdefghijklmnopqrsXtags1.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case1: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case1: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case2:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               [No Name]                                                                       Results of test83case1: oktest83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=test83-tags2
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag /.BC
[?25l[?1c"Xtags2.txt" 2 lines, 25 characterstext for tags2
ABCXtags2.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case2: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case2: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
case2: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" case3:
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cnew
[?25l[?1c~                                                                               ~                                                                               [No Name]                                                                       case1: okcase2: oktest83.in [+]                                                                   [?25h[?0c[?25l[?1c:[?25h[?0cset tags=test83-tags3
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet v:errmsg = ''
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ctag abc50
[?25l[?1c"Xtags3.txt" 2 lines, 25 characterstext for tags3
ABCXtags3.txt[?25h[?0c[?25l[?1c:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'ABC'
[?25l[?1c
:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case3: failed'

[?25l[?1c:  [?25h[?0c:else

[?25l[?1c:  [?25h[?0c: close

[?25l[?1c:  [?25h[?0c: put ='case3: ok'

[?25l[?1c:  [?25h[?0c:endif
[?25l[?1cResults of test83
case1: ok
case2: ok
case3: ok
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0cclose
[?25l[?1cE37: No write since last change (add ! to override)[?25h[?0c[?25l[?1c:[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cwq! test.out
[?25l[?1c"test.out" [New File] 4 lines, 48 characters written
[?25h[?0c
# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test83 = test61; then \
#	  if diff test.out test83.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test83.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test83.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test89.failed test.ok test.out X* viminfo
cp test89.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.
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test89.in
[?25h[?8c[?25h[?0c[?25l[?1c"test89.in" 71 lines, 1514 characters- Some tests for setting 'number' and 'relativenumber'
  This is not all that useful now that the options are no longer reset when
  setting the other.
- Some tests for findfile() function

STARTTEST
:so small.vim
:set hidden nocp nu rnu viminfo+=nviminfo
:redir @a | set nu? rnu? | redir END
:e! xx
:redir @b | set nu? rnu? | redir END
:e! #
:$put ='results:'
:$put a
:$put b
:"
:set nonu nornu
:setglobal nu
:setlocal rnu
:redir @c | setglobal nu? | redir END
:set nonu nornu
:setglobal rnu
:setlocal nu[?25h[?0c[?25l[?1c:[?25h[?0cset cp
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f

f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?1c- Some tests for setting 'number' and 'relativenumber'[?25h[?0c[?25l[?1c/^STARTTEST
[?25h[?0c
[?25l[?1c:set ff=unix cpo-=A
[?25h[?0c[?25l[?1c:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 63 lines, 1305 characters written[?25h[?0c[?25l[?1c:set ff& cpo+=A
[?25h[?0c[?25l[?1c/ENDTEST:$put =':set MUST reset the other global value'
:$put g
:$put h
:"
:let cwd=getcwd()
:cd ..
:" Tests may be run from a shadow directory, so an extra cd needs to be done to
:" get above src/
:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
:$put =''
:$put ='Testing findfile'
:$put =''
:set ssl
:$put =findfile('test19.in','src/test*')
:exe "cd" cwd
:cd ..
:$put =findfile('test19.in','test*')
:$put =findfile('test19.in','testdir')
:exe "cd" cwd
:/^results/,$w! test.out
:q!
ENDTEST
[?25h[?0c
[?25l[?1c
:so! Xdotest
[?25h[?0c[?25l[?1c:[?25h[?0cso small.vim
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset hidden nocp nu rnu viminfo+=nviminfo
[?25l[?1c 21 :$put g 20 :$put h
 19 :" 18 :let cwd=getcwd()
 17 :cd .. 16 :" Tests may be run from a shadow directory, so an extra cd needs to be done     to 15 :" get above src/
 14 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 13 :$put =''
 12 :$put ='Testing findfile'
 11 :$put =''
 10 :set ssl
  9 :$put =findfile('test19.in','src/test*')
  8 :exe "cd" cwd
  7 :cd ..
  6 :$put =findfile('test19.in','test*')
  5 :$put =findfile('test19.in','testdir')
  4 :exe "cd" cwd
  3 :/^results/,$w! test.out
  2 :q!
  1 ENDTEST
71  [?25h[?0c[?25l[?1c:[?25h[?0credir @a | set nu? rnu? | redir END
[?25l[?1c  number

  relativenumber

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! xx
[?25l[?1c"xx" [New File]1   
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [?25h[?0c[?25l[?1c:[?25h[?0credir @b | set nu? rnu? | redir END
[?25l[?1c  number

  relativenumber

Press ENTER or type command to continue[?25h[?0c[?25l[?1c:[?25h[?0ce! #
[?25l[?1c"test89.in" line 71 of 71 --100%-- col 1 21 :$put g
 20 :$put h
 19 :" 18 :let cwd=getcwd() 17 :cd .. 16 :" Tests may be run from a shadow directory, so an extra cd needs to be done     to 15 :" get above src/ 14 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif 13 :$put ='' 12 :$put ='Testing findfile' 11 :$put ='' 10 :set ssl  9 :$put =findfile('test19.in','src/test*')  8 :exe "cd" cwd  7 :cd ..  6 :$put =findfile('test19.in','test*')  5 :$put =findfile('test19.in','testdir')  4 :exe "cd" cwd  3 :/^results/,$w! test.out  2 :q!  1 ENDTEST71  "test89.in" line 71 of 71 --100%-- col 1[?25h[?0c[?25l[?1c:[?25h[?0c$put ='results:'
[?25l[?1c
1
 20
 19
 18
 17

 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
72  results:[?25h[?0c[?25l[?1c
:[?25h[?0c$put a
[?25l[?1c3 more lines21
 20

 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
75    relativenumber3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c$put b
[?25l[?1c3 more lines22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1   number
78    relativenumber3 more lines[?25h[?0c[?25l[?1c:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:" get above src/:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif:$put ='':$put ='Testing findfile':$put ='':set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal rnu
[?25l[?1c 22 :" get above src/
 21 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 20 :$put =''
 19 :$put ='Testing findfile'
 18 :$put =''
 17 :set ssl
 16 :$put =findfile('test19.in','src/test*')
 15 :exe "cd" cwd
 14 :cd ..
 13 :$put =findfile('test19.in','test*')
 12 :$put =findfile('test19.in','testdir')
 11 :exe "cd" cwd
 10 :/^results/,$w! test.out
  9 :q!
  8 ENDTEST
  7 
  6 results:
  5 
  4   number
  3   relativenumber
  2 
  1   number
  0   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0credir @c | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:" get above src/:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif:$put ='':$put ='Testing findfile':$put ='':set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetlocal nu
[?25l[?1c 56 :" get above src/
 57 :if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 58 :$put =''
 59 :$put ='Testing findfile'
 60 :$put =''
 61 :set ssl
 62 :$put =findfile('test19.in','src/test*')
 63 :exe "cd" cwd
 64 :cd ..
 65 :$put =findfile('test19.in','test*')
 66 :$put =findfile('test19.in','testdir')
 67 :exe "cd" cwd
 68 :/^results/,$w! test.out
 69 :q!
 70 ENDTEST
 71 
 72 results:
 73 
 74   number
 75   relativenumber
 76 
 77   number
 78   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0credir @d | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':setlocal must NOT reset the other global value'
[?25l[?1c
 79 :setlocal must NOT reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put c
[?25l[?1c 80 
 81   number[?25h[?0c[?25l[?1c
:[?25h[?0c$put d
[?25l[?1c 82 
 83   relativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:set ssl:$put =findfile('test19.in','src/test*'):exe "cd" cwd:cd ..:$put =findfile('test19.in','test*'):$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber:setlocal must NOT reset the other global value  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir @e | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal rnu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0csetglobal nu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0credir @f | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':setglobal MUST reset the other global value'
[?25l[?1c
:setglobal MUST reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put e
[?25l[?1cnumber[?25h[?0c[?25l[?1c
:[?25h[?0c$put f
[?25l[?1crelativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c 66 :$put =findfile('test19.in','testdir')
 67 :exe "cd" cwd
 68 :/^results/,$w! test.out
 69 :q!
 70 ENDTEST
 71 
 72 results:
 73 
 74   number
 75   relativenumber
 76 
 77   number
 78   relativenumber
 79 :setlocal must NOT reset the other global value
 80 
 81   number
 82 
 83   relativenumber
 84 :setglobal MUST reset the other global value
 85 
 86   number
 87 
 88   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset rnu
[?25l[?1c22
 21
 20
 1
 18
 17
 16
 15
 1
 13
 12
 11
 10
  
  8
  7
  6
  5
  
  3
  2
  1
88    [?25h[?0c[?25l[?1c:[?25h[?0credir @g | setglobal nu? | redir END
[?25l[?1c  number[?25h[?0c[?25l[?1c:[?25h[?0cset nonu nornu
[?25l[?1c:$put =findfile('test19.in','testdir'):exe "cd" cwd:/^results/,$w! test.ou:q!ENDTESTresults:  number  relativenumber  number  relativenumber:setlocal must NOT reset the other global value  number  relativenumber:setglobal MUST reset the other global value  number  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset rnu
[?25l[?1c 22 :$put =findfile('test19.in','testdir')
 21 :exe "cd" cwd
 20 :/^results/,$w! test.out
 19 :q!
 18 ENDTEST
 17 
 16 results:
 15 
 14   number
 13   relativenumber
 12 
 11   number
 10   relativenumber
  9 :setlocal must NOT reset the other global value
  8 
  7   number
  6 
  5   relativenumber
  4 :setglobal MUST reset the other global value
  3 
  2   number
  1 
  0   relativenumber[?25h[?0c[?25l[?1c:[?25h[?0cset nu
[?25l[?1c88    [?25h[?0c[?25l[?1c:[?25h[?0credir @h | setglobal rnu? | redir END
[?25l[?1c  relativenumber[?25h[?0c[?25l[?1c:[?25h[?0c$put =':set MUST reset the other global value'
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
89  :set MUST reset the other global value[?25h[?0c[?25l[?1c
:[?25h[?0c$put g
[?25l[?1c2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
91    number[?25h[?0c[?25l[?1c
:[?25h[?0c$put h
[?25l[?1c2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
93    relativenumber[?25h[?0c[?25l[?1c
:[?25h[?0c"
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0clet cwd=getcwd()
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena[?25h[?0c[?25l[?1c:[?25h[?0c" Tests may be run from a shadow directory, so an extra cd needs to be done to
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c" get above src/
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0cif fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[?25l[?1c/<<PKGBUILDDIR>>[?25h[?0c[?25l[?1c:[?25h[?0c$put =''
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
94  [?25h[?0c[?25l[?1c
:[?25h[?0c$put ='Testing findfile'
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
95  Testing findfile[?25h[?0c[?25l[?1c
:[?25h[?0c$put =''
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
96  [?25h[?0c[?25l[?1c
:[?25h[?0cset ssl
[?25l[?1c[?25h[?0c[?25l[?1c:[?25h[?0c$put =findfile('test19.in','src/test*')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
97  src/testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0cexe "cd" cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir[?25h[?0c[?25l[?1c:[?25h[?0ccd ..
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena[?25h[?0c[?25l[?1c:[?25h[?0c$put =findfile('test19.in','test*')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
98  testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0c$put =findfile('test19.in','testdir')
[?25l[?1c
2
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
99  testdir/test19.in[?25h[?0c[?25l[?1c
:[?25h[?0cexe "cd" cwd
[?25l[?1c/<<PKGBUILDDIR>>/src/vim-athena/testdir[?25h[?0c[?25l[?1c:[?25h[?0c/^results/,$w! test.out
[?25l[?1csearch hit BOTTOM, continuing at TOP
"test.out" [New] 28L, 356C written[?25h[?0c[?25l[?1c:[?25h[?0cq!
[?25l[?1c[?25h[?0c# For flaky tests retry one time.  No tests at the moment.
#@/bin/sh -c "if test -f test.out -a test89 = test61; then \
#	  if diff test.out test89.ok; \
#	  then echo flaky test ok first time; \
#	  else rm -rf test89.failed test.out X* viminfo; \
#		VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -s dotest.in test89.in; \
#	  fi \
#	fi"
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_arglist.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_arglist.vim" 318 lines, 6653 characters

Executing Test_argadd()
"a" [New File]bababababd

Executing Test_argc()
"a" [New File]
Executing Test_argdelete()
"a" [New File]a" [New File]
"bb

Executing Test_argedit()
"a" [New File]ba

"c" [New File]
"x

"y" [New File]

Executing Test_argidx()
"a" [New File]cabc

Executing Test_arglist_autocmd()
"Xxx1" 1L, 15C
"Xxx21L, 15C1L, 15C
"Xxx1" line 1 of 1 --100%-- col 1 ((3) of 2)
"Xxx21 of 2)
3 buffers wiped out

Executing Test_arglistid()
"a" [New File]
Executing Test_argpos()
"a" [New File]d

"c" [New File]
"ba

"d" [New File]
"a

Executing Test_argument()
"d" [New File]cbafile] --No lines in buffer-- (1 of 4)
"c3

a b [c] d
"c" [New File]

"x" [New File]
"z

Executing Test_argv()
"a" [New file] --No lines in buffer--

Executing Test_zero_argadd()
"b" [New file] --No lines in buffer-- (2 of 4)
"aFbedited" [New File]
"a" [New File]test_arglist.res" [New File][New] 0L, 0C written

Executed 11 tests
"messages" [New File][New] 15L, 326C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_assert.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_assert.vim" 127 lines, 2933 characters

Executing Test_assert_equal()

Executing Test_assert_exception()

Executing Test_assert_fail_fails()

Executing Test_assert_false()

Executing Test_assert_inrange()

Executing Test_assert_notequal()

Executing Test_assert_true()

Executing Test_compare_fail()

Executing Test_match()

Executing Test_notmatch()

Executing Test_user_is_happy()


oooo$$$$$$$$$$$$oooo

oo$$$$$$$$$$$$$$$$$$$$$$$$o

oo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$oo$   $$ o$

     o $ ooo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o$$ $$ $$o$

  oo $ $ "$      o$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$o$$$o$$o$

  "$$$$$$o$     o$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$o    $$$$$$$$

    $$$$$$$    $$$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$

    $$$$$$$$$$$$$$$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$$$$$$  """$$$

     "$$$""""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$

      $$$   o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$o

     o$$"   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o

     $$$    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" "$$$$$$ooooo$$$$o

    o$$$oooo$$$$$  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$   o$$$$$$$$$$$$$$$$$

    $$$$$$$$"$$$$   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     $$$$""""""""

   """"$$$$    "$$$$$$$$$$$$$$$$$$$$$$$$$$$$"      o$$$

"$$$o     """$$$$$$$$$$$$$$$$$$"$$"$$$

$$$o"$$""$$$$$$""""o$$$

$$$$oo$$$"

"$$$$o      o$$$$$$o"$$$$oo$$$$

"$$$$$oo     ""$$$$o$$$$$o   o$$$$""

""$$$$$oooo  "$$$o$$$$$$$$$"""

""$$$$$$$oo $$$$$$$$$$

""""$$$$$$$$$$$

$$$$$$$$$$$$

$$$$$$$$$$"

"$$$""""

[?25h[?0c[?25l[?1cExecuting Test_wrong_error_type()
"test_assert.res" [New File][New] 0L, 0C written

Executed 12 tests
"messages" 15L, 326C30L, 734C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_autochdir.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_autochdir.vim" 17 lines, 332 characters

Executing Test_set_filename()
"samples/Xtest" [New] 0L, 0C written
"test_autochdir.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"30L, 734C34L, 806C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_backspace_opt.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_backspace_opt.vim" 59 lines, 1673 characters

Executing Test_backspace_option()
"test_backspace_opt.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"34L, 806C38L, 886C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_breakindent.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_breakindent.vim" 241 lines, 7365 characters

Executing Test_breakindent01()|
    abcdefghijklmnop|
    qrstuvwxyzABCDEF|
    GHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent02()|
    abcdefghijklmnop|
    >>qrstuvwxyzABCD|
    >>EFGHIJKLMNOP  |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent03()|
    abcdefghijklmnop|
++  qrstuvwxyzABCDEF|
++  GHIJKLMNOP      |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent04()|
    abcdefghijklmnop|
  qrstuvwxyzABCDEFGH|
  IJKLMNOP|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent05()|
    abcdefghijklmnop|qrstuvwxyzABCD|EFGHIJKLMNOP  |||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent06()|
    abcdefghijklmnop|
   qrstuvwxyzABCDEFG|
   HIJKLMNOP|||||||~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent07()  1 |
  2     abcdefghijkl|
?mnopqrstuvw|
?xyzABCDEFGH|
?IJKLMNOP   ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent07a()  1 |
  2     abcdefghijkl|
    ?    mnopqrstuvw|
    ?    xyzABCDEFGH|
    ?    IJKLMNOP   ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent08()  1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 $|
  2 ^Iabcdefghijklmn|
#      opqrstuvwxyzA|
#      BCDEFGHIJKLMN|
#      OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent08a()  1 $|
  2 ^Iabcdefghijklmn|
    #  opqrstuvwxyzA|
    #  BCDEFGHIJKLMN|
    #  OP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent09()  1 $|
  2 ^Iabcdefghijklmn|
       #opqrstuvwxyz|
       #ABCDEFGHIJKL|
       #MNOP$||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent10()  1 |
  2 abcdefgh|
~ijklmnop|
~qrstuvwx|
~yzABCDEF|
~GHIJKLMN|
~OP      ||||~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 |
  2     abcdefghijkl|
~mnopqrstuvwx|
~yzABCDEFGHIJ|
~KLMNOP      ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                              1 |
  2     abcdefghijkl|
~mnopqrstuvwx|
~yzABCDEFGHIJ|
~KLMNOP      ||||||~                   
~                   
~                   
~                   
~                   
[No Name] [+]        abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent11()

Executing Test_breakindent12() 1 |
 2 >--->--->--->--->|
   ---{      ||||||||~                   
~                   
~                   
~                   
~                   
~                   
~                   
[No Name] [+]        {~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent13()

Executing Test_breakindent14()|
e|||||||||~                             
~                             
~                             
~                             
~                             
~                             
~                             
~                             
[No Name] [+]                  e~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                [No Name] [+]                                    " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent15()|1234567890|||||||||~                             
~                             
~                             
~                             
~                             
~                             
~                             
~                             
[No Name] [+]                  1234567890~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                ~                                                [No Name] [+]                                    " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"
test_breakindent.vim                                                            Executing Test_breakindent16()1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            1234567890123456|
    7890123456789012|
    3456789012345678|
    9012345678901234|
    5678901234567890|
    1234567890123456|
[No Name] [+]        1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890~                                                          ~                                                          ~                                                          [No Name] [+]                                              " Test for breakindent
"
" Note: if you get strange failures when adding new tests, it might be that
" while the test is run, the breakindent cacheing gets in its way.
" It helps to change the tabastop setting and force a redraw (e.g. see
" Test_breakindent08())
if !exists('+breakindent')
  finish
endif

let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"

function s:screenline(lnum, width) abort
  " always get 4 screen lines
  redraw!
test_breakindent.vim                                                            "test_breakindent.res" [New File][New] 0L, 0C written

Executed 18 tests
"messages" 38L, 886C59L, 1492C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_bufwintabinfo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_bufwintabinfo.vim" 116 lines, 3459 characters

Executing Test_get_buf_options()

Executing Test_get_win_options()

Executing Test_getbufwintabinfo()
"Xtestfile1" [New File]212

Already only one window
"test_bufwintabinfo.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"59L, 1492C65L, 1639C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cdo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cdo.vim" 205 lines, 5116 characters

Executing Test_cdo()
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile1" 3L, 18C33L, 18C

(1 of 1): Line3
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2

(5 of 8): Line2

(1 of 1): Line2

Executing Test_ldo()
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile1" 3L, 18C

(2 of 6): Line1
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2

(4 of 6): Line2
"Xtestfile3" 3L, 18C

(6 of 6): Line3
"Xtestfile2" 3L, 18C

(4 of 6): Line2
"Xtestfile1" 3L, 18C33L, 18C

(1 of 1): Line3
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile1" 3L, 18C

(2 of 8): Line1
"Xtestfile2" 3L, 18C

(5 of 8): Line2
"Xtestfile3" 3L, 18C

(7 of 8): Line2
"Xtestfile2" 3L, 18C

(5 of 8): Line2

(5 of 8): Line2

(1 of 1): Line2
"test_cdo.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"65L, 1639C70L, 1718C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_channel.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_channel.vim" 1641 lines, 47075 characters
"test_channel.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"70L, 1718C73L, 1758C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_charsearch.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_charsearch.vim" 62 lines, 1475 characters

Executing Test_charsearch()

Executing Test_search_cmds()
"test_charsearch.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"73L, 1758C78L, 1859C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cmdline.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cmdline.vim" 243 lines, 7346 characters

Executing Test_complete_list():e test

test1.intest85.ok

test1.oktest85.out

test1.outtest86.in

test103.intest86.ok

test103.oktest86.out

test103.outtest87.in

test104.intest87.ok

test104.oktest87.out

test104.outtest88.in

test107.intest88.ok

test107.oktest88.out

test107.outtest89.in

test108.intest89.ok

test108.oktest89.out

test108.outtest9.in

test11.intest9.ok

test11.oktest9.out

test11.outtest90.in

test12.intest90.ok

test12.oktest90.out

test12.outtest91.in

test14.intest91.ok

test14.oktest91.out

test14.outtest94.in

test15.intest94.ok

test15.oktest94.out

test15.outtest95.in

test17.intest95.ok

test17.oktest95.out

test17.outtest97.in

test17a.intest97.ok

test19.intest97.out

test19.oktest98.in

test19.outtest98.ok

test20.intest98.out

test20.oktest99.in

test20.outtest99.ok

test22.intest99.out

test22.oktest_alot.vim

test22.outtest_alot_latin.vim

test23.intest_alot_utf8.vim

test23.oktest_arglist.res

test23.outtest_arglist.vim

test24.intest_assert.res

test24.oktest_assert.vim

test24.outtest_assign.vim

test25.intest_autochdir.res

test25.oktest_autochdir.vim

test25.outtest_autocmd.vim

test26.intest_autocmd_option.in

test26.oktest_autocmd_option.ok

test26.outtest_autocmd_option.out

test28.intest_autoformat_join.in

test28.oktest_autoformat_join.ok

test28.outtest_autoformat_join.out

test29.intest_backspace_opt.res

test29.oktest_backspace_opt.vim

test29.outtest_breakindent.res

test3.intest_breakindent.vim

test3.oktest_bufwintabinfo.res

test3.outtest_bufwintabinfo.vim

test30.intest_cdo.res

test30.oktest_cdo.vim

test30.outtest_changelist.in

test31.intest_changelist.ok

test31.oktest_changelist.out

test31.outtest_channel.py

test32.intest_channel.res

test32.oktest_channel.vim

test32.outtest_channel_pipe.py

test33.intest_charsearch.res

test33.oktest_charsearch.vim

test33.outtest_close_count.in

test34.intest_close_count.ok

test34.oktest_close_count.out

test34.outtest_cmdline.vim

test36.intest_command_count.vim

test36.oktest_comparators.in

test36.outtest_comparators.ok

test37.intest_comparators.out

test37.oktest_crypt.vim

test37.outtest_cscope.vim

test38.intest_cursor_func.vim

test38.oktest_delete.vim

test38.outtest_diffmode.vim

test39.intest_digraph.vim

test39.oktest_display.vim

test39.outtest_erasebackword.in

test4.intest_erasebackword.ok

test4.oktest_erasebackword.out

test4.outtest_eval.in

test40.intest_eval.ok

test40.oktest_eval.out

test40.outtest_eval_func.vim

test41.intest_ex_undo.vim

test41.oktest_execute_func.vim

test41.outtest_expand.vim

test42.intest_expand_dllpath.vim

test42.oktest_expr.vim

test42.outtest_expr_utf8.vim

test43.intest_farsi.vim

test43.oktest_feedkeys.vim

test43.outtest_file_perm.vim

test44.intest_fileformat.vim

test44.oktest_filter_cmd.vim

test44.outtest_filter_map.vim

test45.intest_fixeol.in

test45.oktest_fixeol.ok

test45.outtest_fixeol.out

test48.intest_float_func.vim

test48.oktest_fnameescape.vim

test48.outtest_fnamemodify.vim

test49.intest_fold.vim

test49.oktest_functions.vim

test49.outtest_getcwd.in

test49.vimtest_getcwd.ok

test5.intest_getcwd.out

test5.oktest_gf.vim

test5.outtest_glob2regpat.vim

test50.intest_gn.vim

test50.oktest_goto.vim

test51.intest_gui.vim

test51.oktest_hardcopy.vim

test51.outtest_help_tagjump.vim

test52.intest_hide.vim

test52.oktest_history.vim

test52.outtest_hlsearch.vim

test53.intest_increment.vim

test53.oktest_increment_dbcs.vim

test53.outtest_insertcount.in

test54.intest_insertcount.ok

test54.oktest_insertcount.out

test54.outtest_job_fails.vim

test55.intest_join.vim

test55.oktest_json.vim

test55.outtest_jumps.vim

test56.intest_lambda.vim

test56.oktest_langmap.vim

test56.outtest_largefile.vim

test57.intest_lispwords.vim

test57.oktest_listchars.in

test57.outtest_listchars.ok

test58.intest_listchars.out

test58.oktest_listlbr.in

test58.outtest_listlbr.ok

test59.intest_listlbr.out

test59.oktest_listlbr_utf8.in

test59.outtest_listlbr_utf8.ok

test60.intest_listlbr_utf8.out

test60.oktest_man.vim

test60.outtest_mapping.vim

test60.vimtest_marks.vim

test64.intest_match.vim

test64.oktest_matchadd_conceal.vim

test64.outtest_matchadd_conceal_utf8.vim

test65.intest_menu.vim

test65.oktest_messages.vim

test65.outtest_mksession.vim

test66.intest_mksession_utf8.vim

test66.oktest_nested_function.vim

test66.outtest_netbeans.py

test67.intest_netbeans.vim

test67.oktest_normal.vim

test67.outtest_options.vim

test68.intest_packadd.vim

test68.oktest_partial.vim

test68.outtest_perl.vim

test69.intest_popup.vim

test69.oktest_profile.vim

test69.outtest_quickfix.vim

test7.intest_regexp_latin.vim

test7.oktest_regexp_utf8.vim

test7.outtest_reltime.vim

test70.intest_ruby.vim

test70.oktest_search.vim

test70.outtest_search_mbyte.in

test72.intest_search_mbyte.ok

test72.oktest_search_mbyte.out

test72.outtest_searchpos.vim

test73.intest_set.vim

test73.oktest_signs.vim

test73.outtest_smartindent.vim

test75.intest_sort.vim

test75.oktest_source_utf8.vim

test75.outtest_startup.vim

test77.intest_startup_utf8.vim

test77.oktest_stat.vim

test77.outtest_statusline.vim

test77a.intest_substitute.vim

test77a.oktest_syn_attr.vim

test78.intest_syntax.vim

test78.oktest_system.vim

test78.outtest_tabline.vim

test79.intest_tabpage.vim

test79.oktest_tagcase.vim

test79.outtest_tagjump.vim

test8.intest_textobjects.vim

test8.oktest_timers.vim

test8.outtest_true_false.vim

test80.intest_undo.vim

test80.oktest_unlet.vim

test80.outtest_usercommands.vim

test82.intest_utf8.in

test82.oktest_utf8.ok

test82.outtest_utf8.out

test83-tags2test_viminfo.vim

test83-tags3test_viml.vim

test83.intest_visual.vim

test83.oktest_window_cmd.vim

test83.outtest_window_id.vim

test84.intest_wordcount.in

test84.oktest_wordcount.ok

test84.outtest_wordcount.out

test85.intest_writefile.vim

:e test
"test" [New File]

Executing Test_complete_tab():e Xtest...file
"Xtestfile" 1L, 9C

Executing Test_complete_wildmenu():e Xtest...file1...

Xtestfile1  Xtestfile2  
Xtestfile1                                                        :e Xtest...Xtestfile1
Xtestfile1file1...Xtestfile1Xtestfile22:e Xtestfile2"Xtestfile2" 1L, 10C
Executing Test_expand_star_star():find **/fileXname...a/b/fileXname
"a/b/fileXname" 1L, 9C
"Xtestfile2" [New File]

Executing Test_getcompletion():cscope find 

a  c  d  e  f  g  i  s  t

:cscope find :sign list 

Testing

:sign list Executing Test_illegal_address()

Executing Test_paste_in_cmdline():abc "def ghi
:"abc def ghi
:"
:aaa "asdf bbb
:"aaa asdf bbb
:"
:aaa "/tmp/some bbb
:"aaa /tmp/some bbb
:"
:aaa veryl"ongword bbb
:"aaa verylongword bbb
:"
:aaa "a;b-c*d bbb
:"aaa a;b-c*d bbb
:"
:=toupper(getline(1))
:ASDF.X /TMP/SOME VERYLONGWORD A;B-C*D 
:"ASDF.X /TMP/SOME VERYLONGWORD A;B-C*D
:"

Executing Test_remove_char_in_cmdline():abc defef
:"abc ef
:"
:abc defdef
:"abcdef
:"
:abc def ghighi
:"abc ghi
:"
:abc def
:def"def
"test_cmdline.res" [New File][New] 0L, 0C written

Executed 8 tests
"messages"78L, 1859C89L, 2168C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_command_count.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_command_count.vim" 191 lines, 4742 characters

Executing Test_command_count_0()
"DoesNotExistEver" [New File]
Executing Test_command_count_1()

"a" [New File]

loading buffers

"b" [New File]

loading buffers

"c" [New File]

loading buffers

"d" [New File]

loading buffers

"e" [New File]

loading buffers
"c" [New File]beb

Executing Test_command_count_2()

"d" [New File]
"a

Already only one window
"x" [New File]
Already only one window

Executing Test_command_count_3()
"aaa" [New File]bbb
"ccc
"test_command_count.vim" 191L, 4742C

2 buffers deleted

Executing Test_command_count_4()
"cc" [New File]
"dd" [New File]

"ee" [New File]
"aa

"bb" [New File]

"cc" [New File]

"dd" [New File]

"ee" [New File]
"cc

"ee" [New File]

"ff" [New File]
"test_command_count.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"89L, 2168C97L, 2380C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_crypt.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_crypt.vim" 83 lines, 2590 characters

Executing Test_crypt_blowfish()
"Xtest.txt" [New File]:X

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

Enter same key again: ******

"Xtest.txt" [New][blowfish] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [blowfish] 3L, 98C

Executing Test_crypt_blowfish2()
"Xtest.txt" [New File]:X
Enter encryption key: ******
Enter same key again: ******

"Xtest.txt" [New][blowfish2] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: ******

"Xtest.txt" [blowfish2] 3L, 98C

Executing Test_crypt_zip()
"Xtest.txt" [New File]:X

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

Enter same key again: ******

"Xtest.txt" [New][crypted] 3L, 98C written
:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [crypted] 3L, 98C

Executing Test_head_only_2()
"Xtest.txt" [New File][New] 1L, 16C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [readonly] 1L, 16C

Executing Test_head_only_3()
"Xtest.txt" [New File][New] 1L, 16C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: ******

"Xtest.txt" [readonly] 1L, 16C

Executing Test_uncrypt_blowfish()
"Xtest.txt" [New File][converted][New][noeol] 1L, 80C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [blowfish] 2L, 27C

Executing Test_uncrypt_blowfish2()
"Xtest.txt" [New File][converted][New][noeol] 1L, 103C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Enter encryption key: *******

"Xtest.txt" [blowfish2] 2L, 44C

Executing Test_uncrypt_zip()
"Xtest.txt" [New File][converted][New][noeol] 1L, 45C written:split Xtest.txt
"Xtest.txt" Need encryption key for "Xtest.txt"

Warning: Using a weak encryption method; see :help 'cm'

Enter encryption key: ******

"Xtest.txt" [converted][crypted] 2L, 26C"test_crypt.res" [New File][converted][New] 0L, 0C written
Executed 8 tests
"messages"97L, 2380C108L, 2667C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_cscope.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_cscope.vim" 279 lines, 10568 characters
"test_cscope.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"108L, 2667C111L, 2706C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_diffmode.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_diffmode.vim" 237 lines, 4954 characters

Executing Test_diff_fold_sync()

Executing Test_diffget_diffput()

Executing Test_diffoff()  -------------------------------------|
  -------------------------------------|
  Two|
  Three|||||||||||||||||||  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    ~                                    
[No Name] [+]                             One                                                                             Two  Three                                    ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     ~                                     [No Name] [+]                           Two                                    
Three                                  
~                                      
~                                      
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  OneTwoThree~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  

Executing Test_filler_lines()

7 more lines

10 more lines

Executing Test_setting_cursor()
"Xtest1" [New File]
90 more lines
"Xtest1" [New] 91L, 262C written2" [New File]
100 more lines
"Xtest2"[New] 101L, 293C written101L, 293C191L, 262C

Executing Test_vert_split()
"Xtest" [New] 5L, 25C written"Xtest2" [New] 6L, 29C written

"Nop" [Modified][Not edited] line 4 of 6 --66%-- col 3"Xtest" 5L, 25C2" 6L, 29C
"test_diffmode.vim" 237L, 4954Cres" [New File][New] 0L, 0C written

Executed 6 tests
"messages"111L, 2706C120L, 2928C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_digraph.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_digraph.vim" 461 lines, 14928 characters

Executing Test_digraph_cmndline()
Executing T

Executing Test_digraphs()
Executing Test_digraphs_option()
Executing Test_digraphs_output()

Executing Test_loadkeymap()"test_digraph.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"120L, 2928C128L, 3123C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_display.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_display.vim" 39 lines, 849 characters[?25h[?0cExecuting Test_display_foldcolumn()e more noise blah blah<82|
> more stuff here||||||||||~                        
~                        
~                        
~                        
~                        
~                        
~                        
~                        
~                        
[No Name] [+]             ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     [No Name]                                             " Test for displaying stuff
if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum, nr) abort
  let line = []
  for j in range(a:nr)
    for c in range(1, winwidth(0))call add(line, nr2char(screenchar(a:lnum+j, c)))
test_display.vim                                                                  e more noise blah blah<|
  82> more stuff here    ||||||||||  
  
  
  
  
  
  
  
  ~                      ~                      ~                      ~                      ~                      ~                      ~                      ~                      ~                      
[No Name] [+]             ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     ~                                                     [No Name]                                             " Test for displaying stuff
if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum, nr) abort
  let line = []
  for j in range(a:nr)
    for c in range(1, winwidth(0))call add(line, nr2char(screenchar(a:lnum+j, c)))
test_display.vim                                                                "test_display.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"128L, 3123C132L, 3199C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_farsi.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_farsi.vim" 84 lines, 2881 characters

Executed 2 tests
"messages"[converted] 132L, 3199C[converted] 137L, 3295C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fnameescape.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_fnameescape.vim" 21 lines, 467 characters

Executing Test_fnameescape()
"Xspa ce"[New] 21L, 467C written
"Xemark![New] 21L, 467C written
"test_fnameescape.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"137L, 3295C141L, 3368C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_fold.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_fold.vim" 97 lines, 3328 characters

Executing Test_address_fold()

7 lines yanked

7 lines yanked

7 lines yanked

7 lines yanked

7 lines yanked

8 lines yanked

10 lines yanked

4 lines yanked

Executing Test_indent_fold()

Executing Test_indent_fold2()
"test_fold.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"141L, 3368C147L, 3495C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gf.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gf.vim" 33 lines, 1138 characters

Executing Test_gf_url()
"test_gf.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"147L, 3495C151L, 3554C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gn.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gn.vim" 93 lines, 2821 characters

Executing Test_gn_command()/[u]niquepattern/s
/a:0\@!\zs\d\+
"test_gn.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"151L, 3554C155L, 3617C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_gui.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_gui.vim" 36 lines, 838 characters
"test_gui.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"155L, 3617C158L, 3653C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hardcopy.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hardcopy.vim" 62 lines, 2001 characters

Executing Test_printheader_parsing()

Executing Test_printmbfont_parsing()

Executing Test_printoptions_parsing()

Executing Test_with_syntax()Printing page 1 (0%)Printed: test_hardcopy.vim
"test_hardcopy.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"158L, 3653C165L, 3836C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hide.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hide.vim" 97 lines, 2443 characters

Executing Test_hide()
"Xf1" [New File]
"Xf1" [New File]
"Xf212121

one|two
"Xf1" [New File]
"Xf212
"test_hide.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"165L, 3836C169L, 3895C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_history.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_history.vim" 106 lines, 3567 characters

Executing Test_History()

Executing Test_Search_history_window()/a
/b
/a
b
a
b
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Tests for the history functions

test_history.vim                                                                /a
/b
/
/
/
/
/~                                                                              ~                                                                              ~                                                                              ~                                                                              [Command Line]                                                                  [?25h[?0c[?25l[?1c/a
"test_history.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"169L, 3895C174L, 4000C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_hlsearch.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_hlsearch.vim" 34 lines, 1013 characters

Executing Test_hlsearch()/aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
~                                                                               [No Name] [+]                                                                   " Test for v:hlsearch

function! Test_hlsearch()
  new
  call setline(1, repeat(['aaa'], 10))
  set hlsearch nolazyredraw
  let r=[]
  " redraw is needed to make hlsearch highlight the matches
  exe "normal! /aaa\<CR>" | redraw
  let r1 = screenattr(1, 1)
test_hlsearch.vim                                                               aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa


/aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaaaaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa//aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa//aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaaaaaaaa


"test_hlsearch.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"174L, 4000C178L, 4067C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_increment.vim" 760 lines, 19011 characters

Executing Test_normal_increment_01()
"dummy" [New File]
Executing Test_normal_increment_02()
"dummy" [New File]
Executing Test_normal_increment_03()
"dummy" [New File]
Executing Test_visual_increment_01()
"dummy" [New File]
Executing Test_visual_increment_02()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_03()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_04()
"dummy" [New File]
Executing Test_visual_increment_05()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_06()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_07()
"dummy" [New File]5 lines changed
Executing Test_visual_increment_08()
"dummy" [New File]
Executing Test_visual_increment_09()
"dummy" [New File]
Executing Test_visual_increment_10()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_11()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_12()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_13()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_14()
"dummy" [New File]
Executing Test_visual_increment_15()
"dummy" [New File]
Executing Test_visual_increment_16()
"dummy" [New File]3 lines changed
Executing Test_visual_increment_17()
"dummy" [New File]
Executing Test_visual_increment_18()
"dummy" [New File]4 lines changed
Executing Test_visual_increment_19()
"dummy" [New File]
Executing Test_visual_increment_20()
"dummy" [New File]
Executing Test_visual_increment_21()
"dummy" [New File]
Executing Test_visual_increment_22()
"dummy" [New File]
Executing Test_visual_increment_23()
"dummy" [New File]
Executing Test_visual_increment_24()
"dummy" [New File]
Executing Test_visual_increment_25()
"dummy" [New File]
Executing Test_visual_increment_26()
"dummy" [New File]
Executing Test_visual_increment_27()
"dummy" [New File]
Executing Test_visual_increment_28()
"dummy" [New File]
Executing Test_visual_increment_29()
"dummy" [New File]
Executing Test_visual_increment_30()
"dummy" [New File]
Executing Test_visual_increment_31()
"dummy" [New File]
Executing Test_visual_increment_32()
"dummy" [New File]_31" [New File]

Executing Test_visual_increment_33()
"dummy" [New File]
Executing Test_visual_increment_34()
"dummy" [New File]
Executing Test_visual_increment_35()
"dummy" [New File]
Executing Test_visual_increment_36()
"dummy" [New File]
Executing Test_visual_increment_37()
"dummy" [New File]
Executing Test_visual_increment_38()
"dummy" [New File]"test_increment.res" [New File][New] 0L, 0C written

Executed 41 tests
"messages" 178L, 4067C222L, 5628C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_increment_dbcs.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_increment_dbcs.vim" 30 lines, 604 characters

Executing Test_increment_dbcs_1()
"test_increment_dbcs.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"[converted] 222L, 5628C[converted] 226L, 5709C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_job_fails.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_job_fails.vim" 19 lines, 598 characters

Executing Test_job_start_fails()[?25h[?0c[?25l[?1c
"test_job_fails.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"226L, 5709C230L, 5784C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_json.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_json.vim" 287 lines, 10700 characters

Executing Test_js_decode()

Executing Test_js_encode()

Executing Test_json_decode()

Executing Test_json_encode()

"test_json.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"230L, 5784C237L, 5934C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_langmap.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_langmap.vim" 28 lines, 628 characters

Executing Test_langmap()
"test_langmap.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"237L, 5934C241L, 5999C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_man.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_man.vim" 60 lines, 1358 characters

Executing Test_g_ft_man_open_mode()


Cannot find a 'vim'.

Executing Test_nomodifiable()


Cannot find a 'vim'.
"test_man.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"241L, 5999C246L, 6102C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_marks.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_marks.vim" 26 lines, 775 characters

Executing Test_Incr_Marks()

Executing Test_Restore_DelMark()1 more line; before #2  0 seconds ago
1 line less; after #2  0 seconds agomore line; before #2  0 seconds ago
"test_marks.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"246L, 6102C251L, 6202C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_matchadd_conceal.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_matchadd_conceal.vim" 289 lines, 9276 characters[?25h[?0cExecuting Test_clearmatches()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #ZThisZisZaZTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_default_conceal_char()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #+This+is+a+Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_and_conceallevel_3()#ThisisaTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #Thisisa Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_and_syn_conceal()Inductive - : Type := | true : - | false : -.

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Inductive - : Type := | true : - | false : -.

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_matchadd_repeat_conceal_with_syntax_off()TARGET_TARGETTARGET
t_ttsimple_matchadd()# This is a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_simple_matchadd_and_conceal()#XThisXisXaXTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_syn_and_match_conceal()#ZThisZisZaZTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       #*This*is*a*Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       Executing Test_using_matchaddpos()#Pis a Test
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for matchadd() and conceal feature
if !has('conceal')
  finish
endif

if !has('gui_running') && has('unix')
  set term=ansi
endif

function! s:screenline(lnum) abort
test_matchadd_conceal.vim                                                       "test_matchadd_conceal.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"251L, 6202C263L, 6616C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_mksession.vim" 104 lines, 2315 characters

Executing Test_mksession()
"/tmp/vk6BU5c/0" [New] 9L, 203C written

search hit BOTTOM, continuing at TOP
"test_mksession.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"[converted] 263L, 6616C[converted] 267L, 6685C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_mksession_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_mksession_utf8.vim" 104 lines, 2328 characters

Executing Test_mksession_utf8()
"/tmp/vu3WnTH/0" [New] 9L, 215C written

search hit BOTTOM, continuing at TOP
"test_mksession_utf8.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"267L, 6685C271L, 6764C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_nested_function.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_nested_function.vim" 67 lines, 1305 characters

Executing Test_max_nesting()

Executing Test_nested_argument()

[]

Executing Test_nested_functions()
"test_nested_function.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"271L, 6764C277L, 6909C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_netbeans.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_netbeans.vim" 80 lines, 2145 characters
"test_netbeans.res" [New File][New] 0L, 0C written

Executed 0 test
"messages"277L, 6909C280L, 6950C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_normal.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_normal.vim" 2280 lines, 58740 characters

Executing Test_normal00_optrans()
Executing Test_normal01_keymodel()
4 lines yankedExecuting Test_normal02_selectmode()10 fewer lines
Executing Test_normal02_selectmode2():set im
[?25h[?0c[?25l[?1c:set noim

Executing Test_normal03_join()

Executing Test_normal04_filter():.!sed -e 's/^/|    /'
[?25h[?0cone
[?25l[?1c:.!sed -e 's/^/|    /'
[?25h[?0c[?25l[?1c:.!
:!echo one
[?25h[?0c
[No write since last change]

one
[?25l[?1c:.!!
[?25h[?0c
[?25l[?1cExecuting Test_normal05_formatexpr()

Executing Test_normal05_formatexpr_newbuf()
"another" [New File]
Executing Test_normal05_formatexpr_setopt()

Executing Test_normal06_formatprg():.,$!./Xsed_format.sh
[?25h[?0c[?25l[?1c7 lines filtered:.,$!./Xsed_format.sh
[?25h[?0c[?25l[?1c7 lines filtered
Executing Test_normal07_internalfmt()
7 fewer lin
Executing Test_normal08_fold()

Executing Test_normal09_operatorfunc()

11 substitutions on 11 lines

Executing Test_normal09a_operatorfunc()

11 substitutions on 11 lines

Executing Test_normal10_expand()

Executing Test_normal11_showcmd()
Executing Test_normal12_nv_error()

Executing Test_normal13_help()
"help.txt" [readonly] 225L, 8437C

Executing Test_normal14_page()

Executing Test_normal14_page_eol()
Executing Test_normal15_z_scroll_vert()

Executing Test_normal16_z_scroll_hor()

Executing Test_normal17_z_scroll_hor2()

Executing Test_normal18_z_fold()

Executing Test_normal19_z_spell()
Word 'goood' added to ./Xspellfile.add
search hit BOTTOM, continuing at TOPWord 'goood' added to ./Xspellfile.add2 goood' added to ./Xspellfile.add/tmp/vyLyyr1/11removed from /tmp/vyLyyr1/11goood' added to /tmp/vyLyyr1/11removed from /tmp/vyLyyr1/11added to ./Xspellfile.addremoved from ./Xspellfile.add2 goood' added to ./Xspellfile.addremoved from ./Xspellfile.addgoood' added to ./Xspellfile2.add
Executing Test_normal20_exmode()

Executing Test_normal21_nv_hat()
"Xfoobar" [New File]ile2" [New File]
Executing Test_normal22_zet()

Executing Test_normal23_K()
"version8.txt" [readonly] 14932L, 562906Cline 1 of 14932 --0%-- col 1
"man" [New File]aa%bb" [New File]
"cc|dd
:! man --pager=cat 'man'[?25h[?0c
[No write since last change]

stdin not open for reading!

shell returned 2


[?25l[?1cExecuting Test_normal24_rot13()

Executing Test_normal25_tag()
"help.txt" [readonly] 225L, 8437C
"change.txt" [readonly] 1830L, 74768C
"help.txt" [readonly] 225L, 8437C
"change.txt" [readonly] 1830L, 74768C
"help.txt" [readonly] 225L, 8437C
"insert.txt" [readonly] 2003L, 82815Cline 49 of 2003 --2%-- col 7-49

Executing Test_normal26_put()

Executing Test_normal27_bracket()

21 substitutions on 21 lines

Executing Test_normal28_parenthesis()

Executing Test_normal29_brace()
17 fewer lines4 fewer lines3
Executing Test_normal30_changecase()

Executing Test_normal31_r_cmd()
Executing Test_normal32_g_cmd1()
/x_foo?abc
Executing Test_normal33_g_cmd2()/[1-8]
search hit BOTTOM, continuing at TOP
9 substitutions on 9 linesblock of 3 lines yanked5
Executing Test_normal34_g_cmd3()

Executing Test_normal35_g_cmd4()

Executing Test_normal36_g_cmd5()

Executing Test_normal37_g_cmd6()
"1.txt" [New File]23

Executing Test_normal38_nvhome()

Executing Test_normal39_cw()
Executing Test_normal40_ctrl_bsl()
Executing Test_normal41_insert_reg()=a
=a
=a

Executing Test_normal42_halfpage()

Executing Test_normal43_textobject1()

Executing Test_normal44_textobjects2()

Executing Test_normal45_drop()

Executing Test_normal46_ignore()

Executing Test_normal47_autocmd()

Executing Test_normal47_visual_buf_wipe()

Executing Test_normal48_wincmd()

Executing Test_normal49_counts()

Executing Test_normal50_commandline()q:  :xxx
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       :set im
:set noim
:.!sed -e 's/^/|    /'
:.!
:!echo one
:.!!
:
[Command Line]                                                                  [?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c:^M   

Executing Test_normal51_FileChangedRO()
"Xreadonly.log" 1L, 4C
Error detected while processing ...13]..Test_normal51_FileChangedRO:
line    8:W10: Warning: Changing a readonly file
Executing Test_normal52_rl()3_digraph()

Executing Test_normal54_Ctrl_bsl()
"test_normal.res" [New File][New] 0L, 0C written

Executed 61 tests
"messages" 280L, 6950C348L, 9314C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_packadd.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_packadd.vim" 238 lines, 8288 characters

Executing Test_colorscheme()

Executing Test_colorscheme_completion():colorscheme ...one')
:ccolorscheme one')
:cacolorscheme one')
:calcolorscheme one')
:callcolorscheme one')
:call colorscheme one')acolorscheme one')dcolorscheme one')dcolorscheme one')(colorscheme one')lcolorscheme one')icolorscheme one'),colorscheme one') colorscheme one')'colorscheme one')
:colorscheme ...one...three')
:ccolorscheme three')
:cacolorscheme three')
:calcolorscheme three')
:callcolorscheme three')
:call colorscheme three')acolorscheme three')dcolorscheme three')dcolorscheme three')(colorscheme three')lcolorscheme three')icolorscheme three'),colorscheme three') colorscheme three')'colorscheme three')
:colorscheme ...one...three...wo')
:ccolorscheme two')
:cacolorscheme two')
:calcolorscheme two')
:callcolorscheme two')
:call colorscheme two')acolorscheme two')dcolorscheme two')dcolorscheme two')(colorscheme two')lcolorscheme two')icolorscheme two'),colorscheme two') colorscheme two')'colorscheme two')
:colorscheme ...one...three...wo...')
:ccolorscheme ')
:cacolorscheme ')
:calcolorscheme ')
:callcolorscheme ')
:call colorscheme ')acolorscheme ')dcolorscheme ')dcolorscheme ')(colorscheme ')lcolorscheme ')icolorscheme '),colorscheme ') colorscheme ')'colorscheme ')

Executing Test_helptags()

Executing Test_packadd()
"./Xdir/pack/mine/opt/mytest/plugin/test.vim" [New File][New] 1L, 24C writtenalso/loaded.vim" [New File][New] 1L, 29C writtenftdetect/test.vim" [New File[New] 1L, 26C written

Executing Test_packadd_completion():packadd ...pluginA')
:cpackadd pluginA')
:capackadd pluginA')
:calpackadd pluginA')
:callpackadd pluginA')
:call packadd pluginA')apackadd pluginA')dpackadd pluginA')dpackadd pluginA')(packadd pluginA')lpackadd pluginA')ipackadd pluginA'),packadd pluginA') packadd pluginA')'packadd pluginA')
:packadd ...pluginA...B')
:cpackadd pluginB')
:capackadd pluginB')
:calpackadd pluginB')
:callpackadd pluginB')
:call packadd pluginB')apackadd pluginB')dpackadd pluginB')dpackadd pluginB')(packadd pluginB')lpackadd pluginB')ipackadd pluginB'),packadd pluginB') packadd pluginB')'packadd pluginB')
:packadd ...pluginA...B...C')
:cpackadd pluginC')
:capackadd pluginC')
:calpackadd pluginC')
:callpackadd pluginC')
:call packadd pluginC')apackadd pluginC')dpackadd pluginC')dpackadd pluginC')(packadd pluginC')lpackadd pluginC')ipackadd pluginC'),packadd pluginC') packadd pluginC')'packadd pluginC')
:packadd ...pluginA...B...C...')
:cpackadd ')
:capackadd ')
:calpackadd ')
:callpackadd ')
:call packadd ')apackadd ')dpackadd ')dpackadd ')(packadd ')lpackadd ')ipackadd '),packadd ') packadd ')'packadd ')

Executing Test_packadd_noload()
"./Xdir/pack/mine/opt/mytest/plugin/test.vim" [New File][New] 1L, 24C written

Executing Test_packloadall()

Executing Test_runtime()
"test_packadd.res" [New File][New] 0L, 0C written

Executed 8 tests
"messages"348L, 9314C359L, 9597C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_perl.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_perl.vim" 123 lines, 3037 characters

Executing Test_SvREFCNT()
"t" [New File]
Executing Test_VIM_package()

Executing Test_change_buffer()/^1

Executing Test_evaluate_list()/^2
search hit BOTTOM, continuing at TOP

Executing Test_perldo()
"__TEST__" [New File]test_perl.vim"123L, 3037C

Executing Test_perleval()

Executing Test_stdio()

&VIM::Msg

STDOUT

STDERR
"test_perl.res" [New File][New] 0L, 0C written

Executed 7 tests
"messages"359L, 9597C369L, 9825C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_profile.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_profile.vim" 146 lines, 6247 characters

Executing Test_profile_completion():profile ...continue file func pause start
:"profile continue file func pause start
:"
:profile start test_prof...ile.vim
:"profile start test_profile.vim
:"

Executing Test_profile_errors()

Executing Test_profile_file()

Executing Test_profile_func()
"test_profile.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"369L, 9825C376L, 9994C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_quickfix.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_quickfix.vim" 1693 lines, 46351 characters

Executing Test_Autocmd()
"F1" [New File]
(1 of 1): Line 10
"F2" [New File]
(1 of 2): Line 10

Executing Test_Autocmd_Exception()

Executing Test_adjust_lnum()

Already only one window
"Xqftestfilec" 20L, 131C

9 fewer lines

Already only one window
"Xqftestfilel" 20L, 131C

9 fewer lines

Executing Test_browse()
"Xqftestfile1" 20L, 131C

(1 of 4): Line5

"Xqftestfile2" 20L, 131C

(3 of 4): Line10
"Xqftestfile1" 20L, 131C

(2 of 4): Line6
"Xqftestfile2" 20L, 131C

(4 of 4): Line11

"Xqftestfile1" 20L, 131C

(1 of 4): Line5

(1 of 4): Line5

"Xqftestfile2" 20L, 131C

(3 of 4): Line10
"Xqftestfile1" 20L, 131C

(2 of 4): Line6
"Xqftestfile2" 20L, 131C

(4 of 4): Line11

"Xqftestfile1" 20L, 131C

(1 of 4): Line5

Executing Test_caddbuffer_to_empty()
"autocmd.txt" [readonly] 1486L, 61530C

(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run

(2 of 1486):

Executing Test_caddbuffer_wrong()
"Xqftestfile2" [New File]
Executing Test_caddexpr_wrong()

(1 of 1):

(1 of 1):

Executing Test_cage()

error list 9 of 10; 1 errors      :cgetexpr ['Xtestfile2:2:2:Line2']

error list 10 of 10; 1 errors     :cgetexpr ['Xtestfile3:3:1:Line3']

error list 8 of 10; 1 errors      :cgetexpr ['Xtestfile1:1:3:Line1']

error list 10 of 10; 1 errors     :cgetexpr ['Xtestfile3:3:1:Line3']

error list 9 of 10; 1 errors      :lgetexpr ['Xtestfile2:2:2:Line2']

error list 10 of 10; 1 errors     :lgetexpr ['Xtestfile3:3:1:Line3']

error list 8 of 10; 1 errors      :lgetexpr ['Xtestfile1:1:3:Line1']

error list 10 of 10; 1 errors     :lgetexpr ['Xtestfile3:3:1:Line3']

Executing Test_cbottom()

Executing Test_cbuffer()
"Xtestfile7" [New File]
(1 of 2): Line 700
"Xtestfile7" [New File]

(1 of 2): Line 700

Executing Test_cexpr()

Executing Test_cfile()
"Xtestfile1" [New File]

(1 of 2): Line 700

"Xtestfile1" [New File]

(1 of 2): Line 700

Executing Test_cgetexpr_works()

Executing Test_clist()

 2 Xtestfile1:1 col 3: Line1

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 1: non-error 1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 5: non-error 3

 6 Xtestfile3:3 col 1: Line3

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 1: non-error 1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 5: non-error 3

 6 Xtestfile3:3 col 1: Line3

 4 Xtestfile2:2 col 2: Line2

 6 Xtestfile3:3 col 1: Line3

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

 2 Xtestfile1:1 col 3: Line1

 2 Xtestfile1:1 col 3: Line1

 3: non-error 2

 4 Xtestfile2:2 col 2: Line2

Executing Test_cwindow()~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       Xtestfile1|1 col 3| Line1                                                       Xtestfile2|2 col 2| Line2
Xtestfile3|3 col 1| Line3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [Quickfix List]                                                                 ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       Xtestfile1|1 col 3| Line1                                                       Xtestfile2|2 col 2| Line2
Xtestfile3|3 col 1| Line3
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [Location List]                                                                 Executing Test_dirstack_cleanup()

(1 of 1): 0

Executing Test_duplicate_buf()
"DoesNotExist" [New File]2" [New File]

Xgrepthis
"Xgrepthis" line 1 of 2 --50%-- col 1

(1 of 2): this one

Xgrepthis
(1 of 2): this one

Executing Test_efm()

Executing Test_efm1()
"Xtestfile" 21L, 903C

(1 of 20): 1506-045 (S) Undeclared identifier fd_set.

(20 of 20): What is the title of the quickfix window?

Executing Test_efm2()
"Xtestfile" [New File]

Executing Test_efm_dirstack()

Executing Test_efm_ignore_continuations()

Executing Test_errortitle()

Executing Test_grep()

Already only one window[?25h[?0ctest_quickfix.vim:1418:  " Grep_Test_Text: Match 1
test_quickfix.vim:1419:  " Grep_Test_Text: Match 2
test_quickfix.vim:1424:  silent Xgrep Grep_Test_Text: test_quickfix.vim
test_quickfix.vim:1420:  " GrepAdd_Test_Text: Match 1
test_quickfix.vim:1421:  " GrepAdd_Test_Text: Match 2
test_quickfix.vim:1431:  silent Xgrepadd GrepAdd_Test_Text: test_quickfix.vim
[?25l[?1cAlready only one window[?25h[?0ctest_quickfix.vim:1418:  " Grep_Test_Text: Match 1
test_quickfix.vim:1419:  " Grep_Test_Text: Match 2
test_quickfix.vim:1424:  silent Xgrep Grep_Test_Text: test_quickfix.vim
test_quickfix.vim:1420:  " GrepAdd_Test_Text: Match 1
test_quickfix.vim:1421:  " GrepAdd_Test_Text: Match 2
test_quickfix.vim:1431:  silent Xgrepadd GrepAdd_Test_Text: test_quickfix.vim
[?25l[?1cExecuting Test_helpgrep()
"autocmd.txt" [readonly] 1486L, 61530C

(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run
"autocmd.txt" [readonly] line 1 of 1486 --0%-- col 1
(1 of 483): |QuickFixCmdPre|^Ibefore a quickfix command is run

Executing Test_history()

error list 1 of 10; 1 errors      :  cexpr 'Xtestfile:Line search text'

error list 1 of 2; 1 errors:  cexpr 'Xtestfile:Line search text'

error list 1 of 3; 13 errors      :lexpr ""

error list 1 of 2; 13 errors      :lexpr ""

Executing Test_invalid_efm()

Executing Test_locationlist()

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

No matching autocommands

(1 of 7): file foo.txt
No matching autocommands

W19: Deleting augroup that is still in use
Executing Test_locationlist_cross_tab_jump()
"loclistfoo" 1L, 11Cbar1L, 11C[?25h[?0cloclistfoo:1:loclistfoo

[?25l[?1cAlready only one window

Executing Test_locationlist_curwin_was_closed()

W19: Deleting augroup that is still in use
Executing Test_long_lines()"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"samples/quickfix.txt" 4L, 22089C

(1 of 4): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Executing Test_nomem()
"/<<PKGBUILDDIR>>/src/vim-athena/alloc.h" 21L, 485C

Error detected while processing function RunTheTest[13]..Test_nomem:

line    2:

E342: Out of memory!  (allocating 4096 bytes)
"/<<PKGBUILDDIR>>/src/vim-athena/alloc.h" 21L, 485C

line    5:

E342: Out of memory!  (allocating 4096 bytes)
"/<<PKGBUILDDIR>>/src/vim-athena/alloc.h" 21L, 485C

line    8:

E342: Out of memory!  (allocating 1025 bytes)
"/<<PKGBUILDDIR>>/src/vim-athena/alloc.h" 21L, 485C

line   11:

E342: Out of memory!  (allocating 1025 bytes)
"/<<PKGBUILDDIR>>/src/vim-athena/alloc.h" 21L, 485C

line   14:

E342: Out of memory!  (allocating 1025 bytes)

Executing Test_qf_property()

Executing Test_qf_title()

Executing Test_quickfix_set_list_with_act()

Executing Test_quickfix_was_changed_by_autocmd()

error list 9 of 10; 1 errors      :setqflist()

W19: Deleting augroup that is still in use
error list 9 of 10; 1 errors      :setloclist()

error list 9 of 10; 1 errors      :setloclist()

W19: Deleting augroup that is still in use
Executing Test_setqflist()"Xtestfile" [New File]
(2 of 2):

(3 of 3):

(2 of 2):

(3 of 3):

Executing Test_setqflist_empty_middle()

test_quickfix.vim
"test_quickfix.vim" 1693L, 46351C

(1 of 49): func Test_clist()

test_quickfix.vim
(1 of 13): " With an empty list, command should return error

test_quickfix.vim
(1 of 2): " number of matches is unknown

error list 9 of 10; 13 errors     :vimgrep empty test_quickfix.vim

error list 8 of 10; 49 errors     :vimgrep Test_ test_quickfix.vim

error list 9 of 10; 0 errors      :setqflist()

error list 10 of 10; 2 errors     :vimgrep matches test_quickfix.vim

test_quickfix.vim
(1 of 49): func Test_clist()

test_quickfix.vim
(1 of 13): " With an empty list, command should return error

test_quickfix.vim
(1 of 2): " number of matches is unknown

error list 9 of 10; 13 errors     :lvimgrep empty test_quickfix.vim

error list 8 of 10; 49 errors     :lvimgrep Test_ test_quickfix.vim

error list 9 of 10; 0 errors      :setloclist()

error list 10 of 10; 2 errors     :lvimgrep matches test_quickfix.vim

Executing Test_setqflist_empty_older()

test_quickfix.vim
(1 of 24): \ 'Does anyone know what is the problem and how to correction it?',

test_quickfix.vim
(1 of 21): " Go back two lists

test_quickfix.vim
(1 of 7): " Add three quickfix/location lists

error list 8 of 10; 24 errors     :vimgrep one test_quickfix.vim

error list 9 of 10; 21 errors     :vimgrep two test_quickfix.vim

error list 10 of 10; 7 errors     :vimgrep three test_quickfix.vim

test_quickfix.vim
(1 of 24): \ 'Does anyone know what is the problem and how to correction it?',

test_quickfix.vim
(1 of 21): " Go back two lists

test_quickfix.vim
(1 of 7): " Add three quickfix/location lists

error list 8 of 10; 24 errors     :lvimgrep one test_quickfix.vim

error list 9 of 10; 21 errors     :lvimgrep two test_quickfix.vim

error list 10 of 10; 7 errors     :lvimgrep three test_quickfix.vim

Executing Test_switchbuf()
"Xqftestfile1" 20L, 131C220L, 131C1" line 1 of 20 --5%-- col 1

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" line 1 of 20 --5%-- col 1

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16

(1 of 6): Line5

(2 of 6): Line6

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C220L, 131C

(1 of 6): Line5

(2 of 6): Line6

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" 20L, 131C

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16
"Xqftestfile1" 20L, 131C

(1 of 6): Line5

(2 of 6): Line6
"Xqftestfile2" 20L, 131C

(3 of 6): Line10

(4 of 6): Line11
"Xqftestfile3" 20L, 131C

(5 of 6): Line15

(6 of 6): Line16

Already only one window
"Xqftestfile1" 20L, 131C220L, 131C320L, 131C

Executing Test_two_windows()
"one" [New File]two

Executing Test_vimgreptitle()

file
"file" [New File]

Cannot open file "file"
"test_quickfix.res" [New File][New] 0L, 0C written

Executed 42 tests
"messages" 376L, 9994C421L, 11297C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_ruby.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_ruby.vim" 34 lines, 820 characters

Executing Test_ruby_change_buffer()/^1

Executing Test_ruby_evaluate_dict()

{"a"=>"foo", "b"=>123}

Executing Test_ruby_evaluate_list()/^2
search hit BOTTOM, continuing at TOP
"test_ruby.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"421L, 11297C427L, 11443C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_search.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_search.vim" 296 lines, 8731 characters

Executing Test_search_cmdline()/foobar
/the
search hit BOTTOM, continuing at TOP/thes
/foobar
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
/the
?the
?the
?the
?the
?the
?the
?the
?the
?the
?the
search hit TOP, continuing at BOTTOM/thes
/thes
/thes
/thes
/thei
/theis
/theiss
/themthe\>
Executing Test_search_cmdline2()/the
/the
/the
/the
/the
/the
/the
/foo
6 their
  7 the
  8 them
  9 these
 10 foobar
[No Name] [+]                                                                   " Test for the search command

func Test_search_cmdline()
  if !exists('+incsearch')
    return
  endif
  " need to disable char_avail,
  " so that expansion of commandline works
  call test_disable_char_avail(1)
  new
  call setline(1, ['  1', '  2 these', '  3 the', '  4 their', '  5 there', '  6their', '  7 the', '  8 them', '  9 these', ' 10 foobar'])
  " Test 1
  " CTRL-N / CTRL-P skips through the previous search history
  set noincsearch
  :1
test_search.vim                                                                 Executing Test_searchpair()

Executing Test_use_sub_pat()
"test_search.res" [New File][New] 0L, 0C written

Executed 4 tests
"messages"427L, 11443C434L, 11605C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_signs.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_signs.vim" 199 lines, 6383 characters

Executing Test_sign()
"foo" [New File]a  b  c xd                                                                                 ~
[No Name] [+]                                                                   " Test for signs

if !has('signs')
  finish
endif
test_signs.vim                                                                  ~                                                                               ~                                                                               ~                                                                               ~                                                                               foo                                                                               a
  b
x c
  d
[No Name] [+]                                                                     a  bx c  d  ~   "foo" [New file] --No lines in buffer--
"barF
Executing Test_sign_completion():sign ...define jump list place undefine unplace
:"sign define jump list place undefine unplace
:"
:sign define Sign ...icon= linehl= text= texthl=
:"sign define Sign icon= linehl= text= texthl=
:"
:sign define Sign linehl=Spell...Bad SpellCap SpellLocal SpellRare
:"sign define Sign linehl=SpellBad SpellCap SpellLocal SpellRare
:"
:sign define Sign icon=Xsig...nOne XsignTwo
:"sign define Sign icon=XsignOne XsignTwo
:"
:sign undefine ...Sign1 Sign2
:"sign undefine Sign1 Sign2
:"
:sign place 1 ...buffer= file= line= name=
:"sign place 1 buffer= file= line= name=
:"
:sign place 1 name=...Sign1 Sign2
:"sign place 1 name=Sign1 Sign2
:"
:sign unplace 1 ...buffer= file=
:"sign unplace 1 buffer= file=
:"
:sign list ...Sign1 Sign2
:"sign list Sign1 Sign2
:"
:sign jump 1 ...buffer= file=
:"sign jump 1 buffer= file=
:"

Executing Test_sign_delete_buffer()

Executing Test_sign_invalid_commands()

Executing Test_sign_undefine_still_placed()
"foobar" [New File]test_signs.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"434L, 11605C442L, 11818C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_smartindent.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_smartindent.vim" 14 lines, 376 characters

Executing Test_nosmartindent()/some
search hit BOTTOM, continuing at TOP"test_smartindent.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"442L, 11818C446L, 11893C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_startup.vim" 185 lines, 4581 characters

Executing Test_after_comes_later()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c1: /<<PKGBUILDDIR>>/src/vim-athena/testdir/Xbefore.vim

  2: /<<PKGBUILDDIR>>/src/vim-athena/testdir/Xhere/plugin/here.vi

m
  3: /<<PKGBUILDDIR>>/src/vim-athena/testdir/Xhere/pack/foo/start

/foobar/plugin/foo.vim

  4: /<<PKGBUILDDIR>>/src/vim-athena/testdir/Xafter/plugin/later.

vim

  5: /<<PKGBUILDDIR>>/src/vim-athena/testdir/Xafter.vim
[?25h[?0c

[?25l[?1cExecuting Test_compatible_args()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1cError detected while processing /<<PKGBUILDDIR>>/src/vim-athena/t

estdir/Xafter.vim:

line    2:

E528: Must specify a ' value: viminfo+=nviminfo
[?25h[?0c
[?25h[?8c[?25h[?0c
[?25l[?1cExecuting Test_file_args()[?25h[?0c[?25h[?8c[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
3 files to edit
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
2 files to edit
[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
4 files to edit

[?25l[?1cExecuting Test_help_arg()[?25h[?0c
[?25l[?1cExecuting Test_read_stdin()[?25h[?0c[?25l[?1c"-stdin-" 1 line, 10 characters[?25h[?8c[?25h[?0c"Xtestout" [New File] 1 line, 10 characters written
[?25h[?0c
Vim: Reading from stdin...

[?25l[?1cExecuting Test_startup_script()

Executing Test_startuptime()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"one" [New File]
[?25h[?0c
[?25l[?1c"test_startup.res" [New File][New] 0L, 0C written

Executed 7 tests
"messages"446L, 11893C456L, 12144C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_startup_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_startup_utf8.vim" 64 lines, 1366 characters

Executing Test_read_fifo_utf8()[?25h[?0c[?25h[?8c[?25h[?0c[?25l[?1c"/dev/fd/63" [readonly] 2 lines, 24 characters

"Xtestout" [New File] 2 lines, 24 characters written
[?25h[?0c

[?25l[?1cExecuting Test_read_stdin_utf8()[?25h[?0c[?25l[?1c"-stdin-" 2 lines, 24 characters[?25h[?8c[?25h[?0c"Xtestout" [New File] 2 lines, 24 characters written
[?25h[?0c
Vim: Reading from stdin...
[?25l[?1c"test_startup_utf8.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"456L, 12144C461L, 12255C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_stat.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_stat.vim" 64 lines, 1598 characters

Executing Test_checktime()
"Xtest.tmp" 1L, 13C[?25h[?0c[?25l[?1c1L, 25C

Executing Test_existent_directory()

Executing Test_existent_file()[?25h[?0c

[?25l[?1cExecuting Test_nonexistent_file()

Executing Test_win32_symlink_dir()
"test_stat.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"461L, 12255C469L, 12456C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_substitute.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_substitute.vim" 41 lines, 1151 characters

Executing Test_multiline_subst()

search hit BOTTOM, continuing at TOP
3 substitutions on 3 lines
3 substitutions on 2 lines
"test_substitute.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"469L, 12456C473L, 12532C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_syntax.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_syntax.vim" 164 lines, 4101 characters

Executing Test_syn_iskeyword()CREATE TABLE FOOBAR(
    DLTD_BY VARCHAR2(100)
);

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for syntax and syntax iskeyword option

if !has("syntax")
  finish
endif

func GetSyntaxItem(pat)
  let c = ''
  let a = ['a', getreg('a'), getregtype('a')]
  0
test_syntax.vim                                                                 
syntax iskeyword not set

syntax iskeyword @,48-57,_,192-255CREATE TABLE FOOBAR(
    DLTD_BY VARCHAR2(100)
);

~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " Test for syntax and syntax iskeyword option

if !has("syntax")
  finish
endif

func GetSyntaxItem(pat)
  let c = ''
  let a = ['a', getreg('a'), getregtype('a')]
  0
test_syntax.vim                                                                 
syntax iskeyword not set

Executing Test_syntax_after_reload()
"Xsomefile" [New File][New] 2L, 12C written
"other" [New File]Xsomefile" 2L, 12C

Executing Test_syntax_completion():syn ...case clear cluster conceal enable include iskeyword keyword list manual ma

tch off on region reset spell sync"syn case clear cluster conceal enable include iskeyword keyword list manual match off on region reset spell sync
:syn case ...ignore match
:"syn case ignore match
:"
:syn spell ...default notoplevel toplevel
:"syn spell default notoplevel toplevel
:"
:syn sync ...ccomment clear fromstart linebreaks= linecont lines= match maxlines=

minlines= region"syn sync ccomment clear fromstart linebreaks= linecont lines= match maxlines= minlines= region
:syn list ...Boolean Character ColorColumn Comment Conceal Conditional Constant Cu

rsor CursorColumn CursorLine CursorLineNr Debug Define Delimiter DiffAdd DiffCha

nge DiffDelete DiffText Directory EndOfBuffer Error ErrorMsg Exception Float Fol

dColumn Folded Function Identifier Ignore IncSearch Include Keyword Label LineNr

Macro MatchParen ModeMsg MoreMsg NONE NonText Normal Number Operator Pmenu Pmen

uSbar PmenuSel PmenuThumb PreCondit PreProc Question Quote Repeat SYN Search Sig

nColumn Special SpecialChar SpecialComment SpecialKey SpellBad SpellCap SpellLoc

al SpellRare Statement StatusLine StatusLineNC StorageClass String Structure Tab

Line TabLineFill TabLineSel Tag Title Todo Type Typedef Underlined VertSplit Vis

ual VisualNOS WarningMsg WildMenu lCursor luaBlock luaBraceError luaComment luaC

ond luaConstant luaElse luaElseifThen luaError luaFor luaFunc luaFunction luaFun

ctionBlock luaIfThen luaIn luaInnerComment luaLabel luaLoopBlock luaNumber luaOp

erator luaParen luaParenError luaRepeat luaSpecial luaStatement luaString luaStr

ing2 luaTable luaTableBlock luaThenEnd luaTodo perlAnglesDQ perlAnglesSQ perlArr

ow perlAutoload perlBraces perlBracesDQ perlBracesSQ perlBracketsDQ perlBrackets

SQ perlCharacter perlComment perlConditional perlControl perlDATA perlElseIfErro"syn list Boolean Character ColorColumn Comment Conceal Conditional Constant Cursor CursorColumn CursorLine CursorLineNr Debug Define Delimiter DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer Error ErrorMsg Exception Float FoldColumn Folded Function Identifier Ignore IncSearch Include Keyword Label LineNr Macro MatchParen ModeMsg MoreMsg NONE NonText Normal Number Operator Pmenu PmenuSbar PmenuSel PmenuThumb PreCondit PreProc Question Quote Repeat SYN Search SignColumn Special SpecialChar SpecialComment SpecialKey SpellBad SpellCap SpellLocal SpellRare Statement StatusLine StatusLineNC StorageClass String Structure TabLine TabLineFill TabLineSel Tag Title Todo Type Typedef Underlined VertSplit Visual VisualNOS WarningMsg WildMenu lCursor luaBlock luaBraceError luaComment luaCond luaConstant luaElse luaElseifThen luaError luaFor luaFunc luaFunction luaFunctionBlock luaIfThen luaIn luaInnerComment luaLabel luaLoopBlock luaNumber luaOperator luaParen luaParenError luaRepeat luaSpecial luaStatement luaString luaString2 luaTable luaTableBlock luaThenEnd luaTodo perlAnglesDQ perlAnglesSQ perlArrow perlAutoload perlBraces perlBracesDQ perlBracesSQ perlBracketsDQ perlBracketsSQ perlCharacter perlComment perlConditional perlControl perlDATA perlElseIfErr
:syn match ...Boolean Character ColorColumn Comment Conceal Conditional Constant C
:"syn match Boolean Character ColorColumn Comment Conceal Conditional Constant 
:"

Executing Test_syntax_list()
"../memfile_test.c" [readonly] 143L, 3142C

--- Syntax items ---


--- Syntax items ---

"Xsomefile" [New File]

Executing Test_syntime()
"../memfile_test.c" [readonly] 143L, 3142C/* vi:set ts=8 sts=4 sw=4 noet:
 *
 * VIM - Vi IMproved    by Bram Moolenaar
 *
 * Do ":help uganda"  in Vim to read copying and usage conditions.
 * Do ":help credits" in Vim to see a list of people who contributed.
 * See README.txt for an overview of the Vim source code.
 */

/*
 * memfile_test.c: Unittests for memfile.c
 * Mostly by Ivan Krasilnikov.
 */

#undef NDEBUG
#include <assert.h>

/* Must include main.c because it contains much more than just main() */
#define NO_VIM_MAIN
#include "main.c"

/* This file has to be included because the tested functions are static */
#include "memfile.c"
"Xsomefile" [New File]
"test_syntax.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"473L, 12532C481L, 12729C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_system.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_system.vim" 92 lines, 2910 characters

Executing Test_System()
"Xdummy" [New File]
Executing Test_system_exmode()
"test_system.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"481L, 12729C486L, 12824C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_textobjects.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_textobjects.vim" 43 lines, 946 characters

Executing Test_inner_block_with_cpo_M_left_backslash()

Executing Test_inner_block_with_cpo_M_right_backslash()

Executing Test_inner_block_without_cpo_M()
"test_textobjects.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"486L, 12824C492L, 13023C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_undo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_undo.vim" 265 lines, 6936 characters

Executing Test_U_command()Executing Test_global_local_undolevels()
"one" [New File]
6 fewer lines; before #8  0 seconds ago
"two" [New File]
3 fewer lines; before #11  0 seconds ago
"three" [New File]
Executing Test_insert_expr()=setline('.','1234')
1 line less; before #4  0 seconds ago3=setline('.','1234')
1 line less; before #7  0 seconds ago=string(123)
1 line less; before #9  0 seconds ago

Executing Test_undo_del_chars()
1 change; before #3  0 seconds ago21

1 change; before #6  1 seconds ago5
4s; after #3
1; before #21

3 changes; after #6  1 seconds ago3 changes; before #7  0 seconds ago

3 changes; before #1  3 seconds ago

3 changes; after #6  3 seconds ago

3 changes; after #9  0 seconds ago

Executing Test_undo_write()
"Xtest" [New File]"Xtest" [New] 1L, 12C written"Xtest" 3L, 20C written1 line less; before #4  0 seconds ago

2 fewer lines; before #2  0 seconds ago

1 line less; before #1  0 seconds ago

1 more line; after #1  0 seconds ago

2 more lines; after #3  0 seconds ago

1 more line; after #4  0 seconds ago

Executing Test_undofile_earlier()
"Xfile" [New File]"Xfile" [New] 3L, 14C written3L, 14C

Finished reading undo file Xundofile

3 fewer lines; before #1  2017/03/08 19:02:06

Executing Test_undojoin()1 line less; before #2  0 seconds ago2 fewer lines; before #3  0 seconds ago

Executing Test_undolist()1 change; before #2  0 seconds agoExecuting Test_undotree()
1 change; before #2  0 seconds ago
"Xtest" [New] 1L, 4C written
"test_undo.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"492L, 13023C504L, 13330C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_usercommands.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_usercommands.vim" 104 lines, 2527 characters

Executing Test_Ambiguous()

Executing Test_CmdUndefined()

Executing Test_cmdmods()
"test_usercommands.res" [New File][New] 0L, 0C written

Executed 3 tests
"messages"504L, 13330C510L, 13458C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viminfo.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_viminfo.vim" 515 lines, 13496 characters

Executing Test_cmdline_history()

Executing Test_cmdline_history_order()

Executing Test_global_vars()

Executing Test_viminfo_bad_syntax()

Executing Test_viminfo_encoding()
"Xviminfo" [converted] 73L, 3483C

Executing Test_viminfo_file_mark_tabclose()
"Xtestfileintab" [New File]viminfo" 83L, 3664C

Executing Test_viminfo_file_mark_zero_time()

Executing Test_viminfo_file_marks()
"ten" [New File]again" [New File]
"thirty" [New File]
"twen
"again" [New File]fourty" [New File]
"Xviminfo" 90L, 3462C

Executing Test_viminfo_jumplist()
"testbuf" [New File]/20
/30
/last pos
/15
/last pos
?30
/15
/last pos
?30
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here
/here

Executing Test_viminfo_marks()
"bufa" [New File]b

Executing Test_viminfo_oldfiles()

Executing Test_viminfo_read_and_write()

Executing Test_viminfo_registers()
"test_viminfo.res" [New File][New] 0L, 0C written

Executed 13 tests
"messages" 510L, 13458C526L, 13970C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_viml.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_viml.vim" 1316 lines, 31904 characters

Error detected while processing /<<PKGBUILDDIR>>/src/vim-athena/t

estdir/test_viml.vim:

line  432:

E492: Not an editor command: ^Iasdf

line  444:

E492: Not an editor command: ^Iasdf

line  452:

E492: Not an editor command: asdf

line  455:

E492: Not an editor command: asdf | Xpath 'p'

Error detected while processing function T8_F:

line    5:

E492: Not an editor command: ^I    asdf

line    7:

E492: Not an editor command: ^I    asdf | Xpath 'd'

line   19:

E492: Not an editor command: ^I    asdf

line   21:

E492: Not an editor command: ^I    asdf | Xpath 'l'

line   29:

E121: Undefined variable: novar

E15: Invalid expression: novar^I^I" returns (default return value 0)

Error detected while processing function T8_G:

line    5:

E492: Not an editor command: ^I    asdf^I^I" returns -1

Error detected while processing function T8_H:

line    5:

E492: Not an editor command: ^I    asdf^I^I" returns -1

Error detected while processing function F[2]..G[2]..H[2]..I:

line    2:

E492: Not an editor command:     asdf^I^I" error

Error detected while processing /<<PKGBUILDDIR>>/src/vim-athena/t

estdir/test_viml.vim:

line  663:

E15: Invalid expression: | strlen("\"") | Xpath 'j'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'j'

line  673:

E15: Invalid expression: | strlen("\"") | Xpath 'n'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'n'

line  682:

E15: Invalid expression: | strlen("\"") | Xpath 'r'

E15: Invalid expression: 1 ||| strlen("\"") | Xpath 'r'

line  717:

E492: Not an editor command:     asdf^I^I" error

1
line  787:

E492: Not an editor command:     asdf^I^I" error

line  794:

E492: Not an editor command:     asdf^I^I" error

line  817:

E121: Undefined variable: asdf

E15: Invalid expression: asdf

line  828:

E121: Undefined variable: asdf

E15: Invalid expression: asdf | Xpath 'f' | endwhile | Xpath 'g'

Error detected while processing function F:

line    8:

E121: Undefined variable: g:boolvar

E15: Invalid expression: g:boolvar^I" possibly undefined

E121: Undefined variable: g:boolvar

E15: Invalid expression: g:boolvar | Xpath 'd' | else | Xpath 'e' | endif

Executing Test_arg_abort()

Executing Test_braces_skipped()

Executing Test_curlies()

Executing Test_defining_functions()

Executing Test_echo_and_string()

foo bar

'foo bar'

-1.2

-1.2

string

function('string')

{'a': {...}}

{'a': {...}}

[[...]]

[[...]]

[{}, {}, {}]

[{}, {}, {}]

{'a': {}, 'b': {}}

{'a': {}, 'b': {}}

[[], [], []]

[[], [], []]

{'a': [], 'b': []}

{'a': [], 'b': []}

[{'one': 'yes', 'two': 'yes', 'three': 'yes'}, {...}, {...}]

[{'one': 'yes', 'two': 'yes', 'three': 'yes'}, {'one': 'yes', 'two': 'yes', 'th

ree': 'yes'}, {'one': 'yes', 'two': 'yes', 'three': 'yes'}]

{'a': {'one': 'yes', 'two': 'yes', 'three': 'yes'}, 'b': {...}}

{'a': {'one': 'yes', 'two': 'yes', 'three': 'yes'}, 'b': {'one': 'yes', 'two':

'yes', 'three': 'yes'}}

[[1, 2, 3], [...], [...]]

[[1, 2, 3], [1, 2, 3], [1, 2, 3]]

{'a': [1, 2, 3], 'b': [...]}

{'a': [1, 2, 3], 'b': [1, 2, 3]}

Executing Test_endwhile_function()

Executing Test_endwhile_script()

   function T1_F()

1      Xpath 'a'

2      let first = 1

3      while 1

4Xpath 'b'

5if first

6Xpath 'c'

7let first = 0

8break

9else

10Xpath 'd'

11return

12endif

13     endwhile

   endfunction"/tmp/vk7LlcI/0" [noeol] 16L, 299C
13 substitutions on 13 lines
Pattern not found: ^\s*$
"/tmp/vk7LlcI/0" 13L, 248C written
"test_viml.vim" 1316L, 31904C
   function T1_G()
1      Xpath 'h'
2      let first = 1
3      while 1
4Xpath 'i'
5if first
6Xpath 'j'
7let first = 0
8break
9else
10Xpath 'k'
11return

12endif

13if 1    " unmatched :if

14     endwhile

   endfunction"/tmp/vk7LlcI/1" [noeol] 17L, 334C
14 substitutions on 14 lines
Pattern not found: ^\s*$
"/tmp/vk7LlcI/1" 14L, 281C written
"test_viml.vim" 1316L, 31904C
Executing Test_error_in_function()
Executing Test_error_in_script()
Executing Test_expr_parsing()
Executing Test_finish()
   function T4_F()
1      if 1
2Xpath 'a'
3let loops = 3
4while loops > 0"    3:  2:     1:
5Xpath 'b' . loops
6if (loops == 2)
7Xpath 'c' . loops
8return

9Xpath 'd' . loops

10endif

11Xpath 'e' . loops

12let loops = loops - 1

13endwhile

14Xpath 'f'

15     else

16Xpath 'g'

17     endif

   endfunction"/tmp/vk7LlcI/2" [noeol] 20L, 504C
17 substitutions on 17 lines
Pattern not found: ^\s*$
"/tmp/vk7LlcI/2" 17L, 445C written
"test_viml.vim" 1316L, 31904C
Executing Test_func_abort()
Executing Test_if_bar_fail()
Executing Test_if_fail()
Executing Test_if_while()
Executing Test_num64()
Executing Test_return()
Executing Test_script_lines()
Executing Test_skip()
Executing Test_type()
Executing Test_while_fail()
"test_viml.res" [New File][New] 0L, 0C written
Executed 21 tests
"messages" 526L, 13970C550L, 14609C written[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_visual.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_visual.vim" 25 lines, 506 characters

Executing Test_block_shift_multibyte()

Executing Test_dotregister_paste()"test_visual.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"550L, 14609C555L, 14723C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_window_id.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_window_id.vim" 103 lines, 2714 characters

Executing Test_win_getid()
"one" [New File]twohree" [New File]
"four" [New File]ive

Executing Test_win_getid_curtab()
"X" [New File]test_window_id.res" [New File][New] 0L, 0C written

Executed 2 tests
"messages"555L, 14723C560L, 14827C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_writefile.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_writefile.vim" 16 lines, 490 characters

Executing Test_WriteFile()
"test_writefile.res" [New File][New] 0L, 0C written

Executed 1 test
"messages"560L, 14827C564L, 14896C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_latin.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot_latin.vim" 7 lines, 280 characters

Executing Test_eow_with_optional()

Executing Test_equivalence_re1()

Executing Test_equivalence_re2()

Executing Test_nested_backrefs()

Executing Test_recursive_substitute()
"test_alot_latin.res" [New File][New] 0L, 0C written

Executed 5 tests
"messages"[converted] 564L, 14896C[converted] 572L, 15112C written
[?25h[?0c
VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot_utf8.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot_utf8.vim" 11 lines, 440 characters[?25h[?0cExecuting Test_classes_re1()

Executing Test_classes_re2()

Executing Test_equivalence_re1()

Executing Test_equivalence_re2()

Executing Test_match_using_multibyte_conceal_char()#ˑThisˑisˑaˑTest
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   " A series of tests that can run in one Vim invocation.
" This makes testing go faster, since Vim doesn't need to restart.

" These tests use utf8 'encoding'.  Setting 'encoding' is already done in
" runtest.vim.  Checking for the multi_byte feature is in the individual
" files, so that they can be run by themselves.

source test_expr_utf8.vim
source test_matchadd_conceal_utf8.vim
source test_regexp_utf8.vim
test_alot_utf8.vim                                                              Executing Test_source_latin()
"Xscript"[New] 2L, 44C written
Executing Test_source_utf8()"Xscript"[New] 2L, 42C written:%s/àx/--à1234--/g
:%s/Àx/--À1234--/g

Executing Test_strcharpart()

Executing Test_strgetchar()
"test_alot_utf8.res" [New File][New] 0L, 0C written

Executed 9 tests
"messages"572L, 15112C584L, 15447C written

VIMRUNTIME=../../runtime; export VIMRUNTIME;  ../vim -f  -u unix.vim -U NONE --noplugin --not-a-term -U NONE -S runtest.vim test_alot.vim
[?25h[?8c[?25h[?0c[?25l[?1c"test_alot.vim" 48 lines, 1233 characters

Executing Test_BufEnter()
"NewFile" [New File]Xdir" is a directory

Executing Test_abbreviation()Executing Test_abs()

Executing Test_acos()

Executing Test_asin()

Executing Test_atan()

Executing Test_atan2()

Executing Test_augroup_deleted()

W19: Deleting augroup that is still in use
Executing Test_augroup_warning()
W19: Deleting augroup that is still in useentering

Executing Test_auto_partial_rebind()

Executing Test_autocmd_bufunload_avoiding_SEGV_01()
"aa.txt" [New File]
"bb.txt" [New File]

Executing Test_autocmd_bufunload_avoiding_SEGV_02()
"a.txt" [New File]
"test_alot.vim" 48L, 1233C

Executing Test_autocmd_bufunload_with_tabnext()

Executing Test_autocmd_bufwinleave_with_tabfirst()
"a.txt" [New File]
Executing Test_bind_in_python()

Executing Test_break_undo()Executing Test_bufunload()

Executing Test_cancel_ptjump()

Already only one window:ptjump word
  # pri kind tagfile

  1 Fwordfile2

cmd2

  2 Fwordfile1

cmd1

Type number and <Enter> (empty cancels): 
"help.txt" [readonly] 225L, 8437C

Executing Test_caught_error_in_statusline()source test_messages.vim
source test_partial.vim
source test_popup.vim
source test_reltime.vim
source test_searchpos.vim
source test_set.vim
source test_sort.vim
source test_statusline.vim
source test_syn_attr.vim
source test_tabline.vim
source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis here
new line here

                                                                                Executing Test_caught_error_in_tabline()                                                                                source test_partial.vim
source test_popup.vim
source test_reltime.vim
source test_searchpos.vim
source test_set.vim
source test_sort.vim
source test_statusline.vim
source test_syn_attr.vim
source test_tabline.vim
source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis here
new line here

test_alot.vim                                                                   Executing Test_ceil()

Executing Test_closure_counter()

Executing Test_closure_refcount()

Executing Test_closure_unlet()

Executing Test_color_names()

Executing Test_compare_null_dict()

Executing Test_compare_partials()

Executing Test_compl_vim_cmds_after_register_expr()=s:test_func()
 AAAAA_Group             BufAdd                  BufCreate               BufDelete               BufEnter                BufFilePost             BufFilePre              BufHidden               BufLeave                BufNew                  BufNewFile              BufRead                 BufReadCmd              BufReadPost             BufReadPre              BufUnload               BufWinEnter             BufWinLeave             BufWipeout              BufWrite                BufWriteCmd             BufWritePost           Executing Test_complete_no_undo()=UndoComplete()
xxx
aaa
yyy
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   test_tabpage.vimtest_tagcase.vimtest_tagjump.vimtest_timers.vimtest_true_false.vimtest_unlet.vimsource test_window_cmd.vimsource test_options.vime hereTest3: text with a (parenthesis here
test_alot.vim                                                                   January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       1 change; before #2  0 seconds ago=UndoComplete()

bbb
yyy~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
source test_tab
source test_tagJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        1 change; before #4  0 seconds ago=UndoComplete()

yyy~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
source test_tab
source test_tagJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December           
January

~              
~              
~              
~              
~              
~              
~              
~              February       
March          
April          
May            
June           
July           
August         
September      -- INSERT --January        1 change; before #5  0 seconds ago

Executing Test_completefunc_opens_new_window_one()

search hit BOTTOM, continuing at TOPExecuting Test_completefunc_opens_new_window_two()

search hit BOTTOM, continuing at TOPExecuting Test_completefunc_with_scratch_buffer()January        
February
March    
April  
May     January        
February       info2-1
2-2
2-3

February
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               source test_tabpage.vim
source test_tagcase.vim
source test_tagjump.vim
source test_timers.vim
source test_true_false.vim
source test_unlet.vim
source test_window_cmd.vim
source test_options.vim
new line here
Test3: text with a (parenthesis hereJanuary        
February       
March          
April          
May            

[Scratch]                                                                       test_alot.vim                                                                   [Scratch] [Preview]                                                             [Scratch]                                                                       
March~              
~              
~              
~              
~              January        
February       
March          
April          
May            3
3
3[Scratch]                                                                       [Scratch]                                                                       February       
March          
April
~              
~              
~              
~              
~              January        
February       
March          
April          
May            4
4
4[Scratch]                                                                       [Scratch]                                                                       March          
April          Executing Test_completefunc_works()

search hit BOTTOM, continuing at TOPthreedef       
threeDEF       threedef       
threeDEF       
threeDEF
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~              
~              
~              
~              
~              threedef       
threeDEF       Executing Test_completion_ctrl_e_without_autowrap()Executing Test_cos()

Executing Test_cosh()

Executing Test_cursorhold_insert()[?25h[?0c[?25l[?1cExecuting Test_cursorhold_insert_ctrl_x()[?25h[?0c[?25l[?1cExecuting Test_cursorline_keep_col()

Executing Test_curswant_with_autocommand()
Executing Test_cycle_partial_job()

Executing Test_cyclic_dict_arg()

Executing Test_cyclic_list_arg()

Executing Test_delete_myself()[?25h[?0c

[?25l[?1cExecuting Test_dict()

Executing Test_dictionary()

Executing Test_dir_delete()

Executing Test_early_bar()

Executing Test_empty_buffer()

Executing Test_equal()

Executing Test_ex_undo()
"ex-undo" [New File]
1 line less; before #3  0 seconds ago

1 line less; after #1  0 seconds ago

2 fewer lines; before #1  0 seconds ago

Executing Test_execute_list()

Executing Test_execute_string()

this

theend

something

Executing Test_existing()

Executing Test_exp()

Executing Test_expand()

Executing Test_feedkeys_x_with_empty_string()Executing Test_file_delete()
"Xfile" [New File][New] 2L, 4C written

Executing Test_file_perm()

Executing Test_fileformat_after_bw()
"a.txt" [New File]ex-undo" [New File]

Executing Test_filetype_valid()

Executing Test_filter()
"Xdoesnotmatch" [New File]
"Xwillmatch" [New File]ex-undo" [New File]
Executing Test_filter_cmd_completion():filter ^I"=execute('let cmdline = getcmdline()')
:filter ^I:filter pat^I"=execute('let cmdline = getcmdline()')
:filter pat^I:filter /pat^I"=execute('let cmdline = getcmdline()')
:filter /pat^I:filter /pat/^I"=execute('let cmdline = getcmdline()')
:filter /pat/^I:filter pat pri...nt"=execute('let cmdline = getcmdline()')
:filter pat print:filter /pat/ pri...nt"=execute('let cmdline = getcmdline()')
:filter /pat/ print:filter #pat# pri...nt"=execute('let cmdline = getcmdline()')
:filter #pat# printExecuting Test_filter_fails()

Executing Test_filter_map_dict_expr_funcref()

Executing Test_filter_map_dict_expr_string()

Executing Test_filter_map_list_expr_funcref()

Executing Test_filter_map_list_expr_string()

Executing Test_floor()

Executing Test_fmod()

Executing Test_fnamemodify()
"test_alot.vim" 48L, 1233C

Executing Test_func_unref()

Executing Test_funcref()

0
Executing Test_function_in_dict()

Executing Test_function_with_funcref()

Executing Test_gD()

Executing Test_gD_char()

Executing Test_gD_comment()

Executing Test_gD_inline_comment()

Executing Test_gD_string()

Executing Test_gD_string_same_line()

Executing Test_gD_too()

Executing Test_gd()

Executing Test_gd_comment()

Executing Test_gd_comment_in_string()

Executing Test_gd_inline_comment()

Executing Test_gd_inline_comment_body()

Executing Test_gd_inline_comment_only()

Executing Test_gd_kr_style()

Executing Test_gd_missing_braces()

Executing Test_gd_not_local()

Executing Test_gd_string()

Executing Test_gd_string_in_comment()

Executing Test_gd_string_only()

Executing Test_gd_trailing_comment()

Executing Test_gd_trailing_multiline_comment()

Executing Test_get_partial_items()

Executing Test_getreg_empty_list()

Executing Test_global_local_lispwords()

Executing Test_help_complete()

Executing Test_help_respect_current_file_lang()
"testdoc.abx" [readonly] 2L, 25Cja[readonly] 2L, 25Cline 1 of 2 --50%-- col 2-9txt[readonly] 2L, 25C
Executing Test_help_tagjump()"help.txt" [readonly] 225L, 8437C
"options.txt" [readonly] 8739L, 370255Cline 7652 of 8739 --87%-- col 7-49
"eval.txt" [readonly][converted] 10613L, 408230C line 2406 of 10613 --22%-- col 1
"options.txt" [readonly] line 1320 of 8739 --15%-- col 4-25
"cmdline[readonly] 1147L, 46822C

Executing Test_if()

Executing Test_info()

Executing Test_invalid()

Executing Test_invalid_submatch()

Executing Test_isnan()

Executing Test_join_with_count()

Executing Test_keymap_valid()

Executing Test_keyword_jump()
"Xtestfile" 9L, 141C

Executing Test_lambda_call_lambda_from_lambda()

Executing Test_lambda_capture_by_reference()

Executing Test_lambda_circular_reference()

Executing Test_lambda_closure_counter()

Executing Test_lambda_combination()

Executing Test_lambda_delfunc()

Executing Test_lambda_do_not_share_local_variable()

Executing Test_lambda_fails()

Executing Test_lambda_feature()

Executing Test_lambda_refer_local_variable_from_other_scope()

Executing Test_lambda_scope()

Executing Test_lambda_share_scope()

Executing Test_lambda_side_effect()

Executing Test_lambda_with_a_var()

Executing Test_lambda_with_filter()

Executing Test_lambda_with_map()

Executing Test_lambda_with_partial()

Executing Test_lambda_with_sort()

Executing Test_lambda_with_timer()[?25h[?0c

[?25l[?1c1[?25h[?0c
[?25l[?1c2[?25h[?0c
[?25l[?1c3[?25h[?0c
[?25l[?1c4[?25h[?0c
[?25l[?1c5[?25h[?0c
[?25l[?1c6[?25h[?0c
[?25l[?1c7[?25h[?0c
[?25l[?1c8[?25h[?0c
[?25l[?1cExecuting Test_load_menu()

Executing Test_log()

Executing Test_log10()

Executing Test_loop_over_null_list()

Executing Test_map_ctrl_c_insert()Executing Test_map_ctrl_c_visual():'<,'>$put ='vmap works'

Executing Test_map_cursor()1 line less; before #8  0 seconds ago

Executing Test_map_feedkeys():call feedkeys(".", "in")
:call feedkeys(".", "in")
Executing Test_map_langmap():call append(line('$'), '+')

Executing Test_map_meta_quotes()Executing Test_match()

abcdefghijklmnopq
TEST2: CTRL-C |<ctrl-c>A|
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   abcdΣabcdef
TEST2: CTRL-C |<ctrl-c>A|
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchaddpos()12345
NP
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   12345 
NP 
vmap works 
 
Test1: text with a (here some more text) 
Test1: text with a (here some more text) 
 
 
Test2: text wit a (here some more text [und undo]) 
fooc d 
fooc d 
+ 
+ 
bbbb 
bbbb 
cccc 
bbbb 
+ 
-foo- 
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   012345 
NP 
vmap works 
 
Test1: text with a (here some more text) 
Test1: text with a (here some more text) 
 
 
Test2: text wit a (here some more text [und undo]) 
fooc d 
fooc d 
+ 
+ 
bbbb 
bbbb 
cccc 
bbbb 
+ 
-foo- 
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   1234567890
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   1234567890
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchaddpos_using_negative_priority()x
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   x
NH
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                               [No Name] [+]                                                                   Executing Test_matchstrpos()

Executing Test_max_min_errors()

Executing Test_messages()

hello0x
-1 match priority
vmap works   hello1234567898

hello9xhello9
Executing Test_missing_attr()

Executing Test_move_cursor()

Executing Test_named_function_closure()

Executing Test_no_type_checking()

Executing Test_noinsert_complete()=s:complTest1()
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               [No Name]                                                                       x
-1 match priority
vmap worksTest1: text with a (here some more text)
Test1: text with a (here some more text)Test2: text wit a (here some more text [und undo])fooc d[No Name]                                                                       source         
soundfold      ndfold=s:complTest2()

~              
~              source         
soundfold      Executing Test_non_zero_arg()

Executing Test_not_existing()

Executing Test_not_lamda()

Executing Test_omnifunc_with_check()

search hit BOTTOM, continuing at TOPfour1
~                                                                               ~                                                                               ~                                                                               [+]four1          
four2          2
~              
~              four1          
four2          four1          
four2          
~              
~              four1          
four2          
four3          
four4          
four5          
four6          search hit BOTTOM, continuing at TOP1
~              
~              
~              
~              
~              
~              four1          
four2          2
~              
~              four1          
four2          four1          
four2          3
~              
~              four1          
four2          
four3          
four4          
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          search hit BOTTOM, continuing at TOP1
~              
~              
~              
~              
~              
~              four1          
four2          2
~              
~              four1          
four2          four1          
four2          3
~              
~              four1          
four2          
four3          
four4          four3          
four4          
four5          
four6          4
~              
~              
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          5
~              
~              
~              
~              
~              
~              four1          
four2          
four3          
four4          
four5          
four6          four4          
four5          Executing Test_oneshot()[?25h[?0c

[?25l[?1cExecuting Test_option_value()

Executing Test_options()
"option-window" [New File]

Executing Test_partial_args()

Executing Test_partial_dict()

Executing Test_partial_exists()

Executing Test_partial_implicit()

Executing Test_partial_string()

Executing Test_path_keep_commas()

Executing Test_paused()[?25h[?0c

[?25l[?1cExecuting Test_popup_complete()=ListMonths()

June
~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               ~                                                                               June           
July           -- INSERT --June           
July           =ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       

February       
March          


March          
April          April          
May            May            
June           June           
July           July           
August         =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
June           
July           =ListMonths()

~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

June~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJune           
July           ~              
~              June           
July           -- INSERT --June           
July=ListMonths()
ne
~              
~              June           
July           ~              
~              June           
July           -- INSERT --June           
Julyly
~              
~              July           
July           =ListMonths()
ne
~              
June           
July           ~              
~              June           
July           -- INSERT --June           
July=ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December        
February
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
February       =ListMonths()

January~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
June           
July           
June~              
~              
~              January        
June           
July           -- INSERT --January        
June           ly
~              
~              
~              January        
June           
July           June           
July           
J~              
~              
~              January        
June           
July           
July           =ListMonths()

January
~              
~              
~              January        
June           
July           
June~              
~              
~              January        
June           
July           -- INSERT --January        
June           ly
~              
~              
~              January        
June           
July           June           
July           
J~              
~              
~              January        
June           
July           
July                 
January
~              
~              
~              January        
June           
July           January        =ListMonths()

~              
~              
~              January        
June           
July           =ListMonths()

June~              
~              
~              June           
July           =ListMonths()

January
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       

February       December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        November       November       
December       December       October        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
December
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       
Nov
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
October~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
October        
November         
September
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        September      
October        =ListMonths()

January~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        December       November       
December       October        
November       September      
October        =ListMonths()
=ListMonths()
December2015
December~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xDecember       =ListMonths()

March~                                                                               ~              March          
May            y~              
~              March          
May            -- INSERT --March          
May              rch
~              
~              March          
May            March          
May            =ListMonths()
March~              
March          
May            y~              
~              March          
May            -- INSERT --March          
May              rch
~              
~              March          
May            March          
May            =ListMonths()

March
~                                                                               ~              
~              March          
May            =ListMonths()
M~              
March          
May            =ListMonths()
M~              
March          
May            Executing Test_popup_complete2()=ListMonths()
Executing Test_popup_completion_insertmode()=ListMonths()
~                                                                               ~                                                                               ~              
~                 January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
February       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
February
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        -- INSERT --January        
February       
March~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        February       
March          
April
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        March          
April          
May~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        April          
May             
June
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        May            
June           ly
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        June           
July             
August
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        July           
August            
September
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        August         
September      
October~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        September      
October         
November
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
October        
November       
Dec
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        =ListMonths()

~              
~              
~              
~              
~              
~              
~              
~              
~              
~              
[No Name] [+]  
xJanuary        
February       
March          
April          
May            
June           
July           
August         
September      
October        
November       
December       -- INSERT --January        
December
~              
~              
~              
~              
~              
~              
~              
~              
~              
~              January        
February       
March          
April          
May            
June           
July           
August         
September      
October        

December       Executing Test_pow()

Executing Test_printf_64bit()

Executing Test_printf_errors()

0
0
1
0
0
Executing Test_printf_float()

0.000000

Executing Test_printf_misc()

Executing Test_printf_spec_b()

Executing Test_printf_spec_s()

Executing Test_ptag_with_notagstack()

Executing Test_read_only()

Executing Test_recursive_delete()
"Xdir1/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written

Executing Test_redefine_dict_func()

Executing Test_ref_job_partial_dict()

Executing Test_reltime()[?25h[?0c

[?25l[?1cExecuting Test_repeat_many()[?25h[?0c

[?25l[?1cExecuting Test_repeat_three()[?25h[?0c

[?25l[?1cExecuting Test_retain_partial()[?25h[?0c

[?25l[?1cExecuting Test_round()

Executing Test_script_function_in_dict()

Executing Test_script_function_in_dict_arg()

Executing Test_searchpos()
"one" [New File]
Executing Test_set_add()

Executing Test_set_backslash()

Executing Test_set_reg_null_list()

Executing Test_set_tagcase()

Executing Test_setmatches()

Executing Test_signcolumn()

Executing Test_sin()

Executing Test_sinh()

Executing Test_sort_default()

Executing Test_sort_float()

Executing Test_sort_nested()

Executing Test_sort_numbers()

Executing Test_sort_numeric()

Executing Test_sort_strings()

Executing Test_special_char()

Executing Test_sqrt()

Executing Test_static_tagjump()
"Xfile1" [New File][New] 3L, 18C written

Executing Test_statusline_will_be_disabled_with_error()x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               ~                                                                                                                                                               Executing Test_stop_all_in_callback()[?25h[?0c

[?25l[?1cExecuting Test_stop_in_callback()[?25h[?0c

[?25l[?1cExecuting Test_stopall()

Executing Test_str2float()

Executing Test_str2nr()

Executing Test_strcharpart()

Executing Test_strgetchar()

Executing Test_substitute_expr()

Executing Test_substitute_expr_arg()

Executing Test_symlink_delete()
"Xfile" [New File][New] 2L, 4C written[?25h[?0c
[?25l[?1cExecuting Test_symlink_dir_delete()[?25h[?0c
[?25l[?1cExecuting Test_symlink_recursive_delete()
"Xdir3/Xfile" [New File][New] 2L, 4C writtensubdir/Xfile" [New] 2L, 4C written
"Xdir4/Xfile" [New] 2L, 4C written[?25h[?0c
[?25l[?1cExecuting Test_syntax_valid()

Executing Test_tabline_will_be_disabled_with_error()                                                                                x
-1 match priority
vmap works

Test1: text with a (here some more text)
Test1: text with a (here some more text)


Test2: text wit a (here some more text [und undo])
fooc d
fooc d
+
+
bbbb
bbbb
cccc
bbbb
+
-foo-
~                                                                               ~                                                                               [No Name]                                                                       Executing Test_tabnext_on_buf_unload1()

Executing Test_tabnext_on_buf_unload2()

"x" [Not edited] --No lines in buffer--
"y" [New File]
Executing Test_tabpage()
"Xtestfile" [New File]
2 fewer lines; before #1  0 seconds ago
"test1" [New File]newfile" [New File]
"test1" [New File]file] --No lines in buffer--F
Executing Test_tabpage_with_autocmd()

Executing Test_tabpage_with_tab_modifier()
"help.txt" [readonly] line 1 of 225 --0%-- col 1

"ex-undo" [New File]

Executing Test_tagcase()
"Xtext" [New File]
Executing Test_tan()

Executing Test_tanh()

Executing Test_thesaurus()

Executing Test_three_windows()
"Xtestje1" [New File][New] 1L, 8C written2" [New File][New] 1L, 8C written3" [New File][New] 1L, 8C written11L, 8C

"Xtestje3" 1L, 8C21L, 8C11L, 8C

"Xanother" [New File]
"Xtestje11L, 8C
"Xanother" [New File]

Already only one window
"help.txt" [readonly] 225L, 8437C

Executing Test_tostring()

Executing Test_true_false_arg()[?25h[?0c
[?25l[?1c"colored" [New File]

Executing Test_trunc()

Executing Test_valid()

Executing Test_version()

Executing Test_vim_did_enter()

Executing Test_whichwrap()

Executing Test_win_tab_autocmd()

"somefile" [New File]

Executing Test_window_cmd_cmdwin_with_vsp()

Executing Test_window_cmd_ls0_with_split()

Executing Test_window_cmd_wincmd_gf()
"test_gf.txt" 0L, 0C
W19: Deleting augroup that is still in use
Executing Test_with_directories()"Xdir1/file" [New File]
"Xdir1/file" [New] 2L, 4C written

"Xdir3/Xdir4/file" [New] 2L, 4C written2L, 4C
"Xdir?/*/nofile" [New DIRECTORY]
"foo" [New File]Executing Test_with_partial_callback()[?25h[?0c[?25l[?1ctilde()rong_arguments()
"test_alot.res" [New File]
"test_alot.res" [New] 0L, 0C written
Executed 244 tests"messages" 584L, 15447C

"messages" 831L, 23451C written
[?25h[?0c


From test_arglist.vim:
Executing Test_argadd()
Executing Test_argc()
Executing Test_argdelete()
Executing Test_argedit()
Executing Test_argidx()
Executing Test_arglist_autocmd()
Executing Test_arglistid()
Executing Test_argpos()
Executing Test_argument()
Executing Test_argv()
Executing Test_zero_argadd()
Executed 11 tests

From test_assert.vim:
Executing Test_assert_equal()
Executing Test_assert_exception()
Executing Test_assert_fail_fails()
Executing Test_assert_false()
Executing Test_assert_inrange()
Executing Test_assert_notequal()
Executing Test_assert_true()
Executing Test_compare_fail()
Executing Test_match()
Executing Test_notmatch()
Executing Test_user_is_happy()
Executing Test_wrong_error_type()
Executed 12 tests

From test_autochdir.vim:
Executing Test_set_filename()
Executed 1 test

From test_backspace_opt.vim:
Executing Test_backspace_option()
Executed 1 test

From test_breakindent.vim:
Executing Test_breakindent01()
Executing Test_breakindent02()
Executing Test_breakindent03()
Executing Test_breakindent04()
Executing Test_breakindent05()
Executing Test_breakindent06()
Executing Test_breakindent07()
Executing Test_breakindent07a()
Executing Test_breakindent08()
Executing Test_breakindent08a()
Executing Test_breakindent09()
Executing Test_breakindent10()
Executing Test_breakindent11()
Executing Test_breakindent12()
Executing Test_breakindent13()
Executing Test_breakindent14()
Executing Test_breakindent15()
Executing Test_breakindent16()
Executed 18 tests

From test_bufwintabinfo.vim:
Executing Test_get_buf_options()
Executing Test_get_win_options()
Executing Test_getbufwintabinfo()
Executed 3 tests

From test_cdo.vim:
Executing Test_cdo()
Executing Test_ldo()
Executed 2 tests

From test_channel.vim:
Executed 0 test

From test_charsearch.vim:
Executing Test_charsearch()
Executing Test_search_cmds()
Executed 2 tests

From test_cmdline.vim:
Executing Test_complete_list()
Executing Test_complete_tab()
Executing Test_complete_wildmenu()
Executing Test_expand_star_star()
Executing Test_getcompletion()
Executing Test_illegal_address()
Executing Test_paste_in_cmdline()
Executing Test_remove_char_in_cmdline()
Executed 8 tests

From test_command_count.vim:
Executing Test_command_count_0()
Executing Test_command_count_1()
Executing Test_command_count_2()
Executing Test_command_count_3()
Executing Test_command_count_4()
Executed 5 tests

From test_crypt.vim:
Executing Test_crypt_blowfish()
Executing Test_crypt_blowfish2()
Executing Test_crypt_zip()
Executing Test_head_only_2()
Executing Test_head_only_3()
Executing Test_uncrypt_blowfish()
Executing Test_uncrypt_blowfish2()
Executing Test_uncrypt_zip()
Executed 8 tests

From test_cscope.vim:
Executed 0 test

From test_diffmode.vim:
Executing Test_diff_fold_sync()
Executing Test_diffget_diffput()
Executing Test_diffoff()
Executing Test_filler_lines()
Executing Test_setting_cursor()
Executing Test_vert_split()
Executed 6 tests

From test_digraph.vim:
Executing Test_digraph_cmndline()
Executing Test_digraphs()
Executing Test_digraphs_option()
Executing Test_digraphs_output()
Executing Test_loadkeymap()
Executed 5 tests

From test_display.vim:
Executing Test_display_foldcolumn()
Executed 1 test

From test_farsi.vim:
Executing Test_farsi_map()
Executing Test_farsi_toggle()
Executed 2 tests

From test_fnameescape.vim:
Executing Test_fnameescape()
Executed 1 test

From test_fold.vim:
Executing Test_address_fold()
Executing Test_indent_fold()
Executing Test_indent_fold2()
Executed 3 tests

From test_gf.vim:
Executing Test_gf_url()
Executed 1 test

From test_gn.vim:
Executing Test_gn_command()
Executed 1 test

From test_gui.vim:
Executed 0 test

From test_hardcopy.vim:
Executing Test_printheader_parsing()
Executing Test_printmbfont_parsing()
Executing Test_printoptions_parsing()
Executing Test_with_syntax()
Executed 4 tests

From test_hide.vim:
Executing Test_hide()
Executed 1 test

From test_history.vim:
Executing Test_History()
Executing Test_Search_history_window()
Executed 2 tests

From test_hlsearch.vim:
Executing Test_hlsearch()
Executed 1 test

From test_increment.vim:
Executing Test_normal_increment_01()
Executing Test_normal_increment_02()
Executing Test_normal_increment_03()
Executing Test_visual_increment_01()
Executing Test_visual_increment_02()
Executing Test_visual_increment_03()
Executing Test_visual_increment_04()
Executing Test_visual_increment_05()
Executing Test_visual_increment_06()
Executing Test_visual_increment_07()
Executing Test_visual_increment_08()
Executing Test_visual_increment_09()
Executing Test_visual_increment_10()
Executing Test_visual_increment_11()
Executing Test_visual_increment_12()
Executing Test_visual_increment_13()
Executing Test_visual_increment_14()
Executing Test_visual_increment_15()
Executing Test_visual_increment_16()
Executing Test_visual_increment_17()
Executing Test_visual_increment_18()
Executing Test_visual_increment_19()
Executing Test_visual_increment_20()
Executing Test_visual_increment_21()
Executing Test_visual_increment_22()
Executing Test_visual_increment_23()
Executing Test_visual_increment_24()
Executing Test_visual_increment_25()
Executing Test_visual_increment_26()
Executing Test_visual_increment_27()
Executing Test_visual_increment_28()
Executing Test_visual_increment_29()
Executing Test_visual_increment_30()
Executing Test_visual_increment_31()
Executing Test_visual_increment_32()
Executing Test_visual_increment_33()
Executing Test_visual_increment_34()
Executing Test_visual_increment_35()
Executing Test_visual_increment_36()
Executing Test_visual_increment_37()
Executing Test_visual_increment_38()
Executed 41 tests

From test_increment_dbcs.vim:
Executing Test_increment_dbcs_1()
Executed 1 test

From test_job_fails.vim:
Executing Test_job_start_fails()
Executed 1 test

From test_json.vim:
Executing Test_js_decode()
Executing Test_js_encode()
Executing Test_json_decode()
Executing Test_json_encode()
Executed 4 tests

From test_langmap.vim:
Executing Test_langmap()
Executed 1 test

From test_man.vim:
Executing Test_g_ft_man_open_mode()
Executing Test_nomodifiable()
Executed 2 tests

From test_marks.vim:
Executing Test_Incr_Marks()
Executing Test_Restore_DelMark()
Executed 2 tests

From test_matchadd_conceal.vim:
Executing Test_clearmatches()
Executing Test_default_conceal_char()
Executing Test_matchadd_and_conceallevel_3()
Executing Test_matchadd_and_syn_conceal()
Executing Test_matchadd_repeat_conceal_with_syntax_off()
Executing Test_simple_matchadd()
Executing Test_simple_matchadd_and_conceal()
Executing Test_syn_and_match_conceal()
Executing Test_using_matchaddpos()
Executed 9 tests

From test_mksession.vim:
Executing Test_mksession()
Executed 1 test

From test_mksession_utf8.vim:
Executing Test_mksession_utf8()
Executed 1 test

From test_nested_function.vim:
Executing Test_max_nesting()
Executing Test_nested_argument()
Executing Test_nested_functions()
Executed 3 tests

From test_netbeans.vim:
Executed 0 test

From test_normal.vim:
Executing Test_normal00_optrans()
Executing Test_normal01_keymodel()
Executing Test_normal02_selectmode()
Executing Test_normal02_selectmode2()
Executing Test_normal03_join()
Executing Test_normal04_filter()
Executing Test_normal05_formatexpr()
Executing Test_normal05_formatexpr_newbuf()
Executing Test_normal05_formatexpr_setopt()
Executing Test_normal06_formatprg()
Executing Test_normal07_internalfmt()
Executing Test_normal08_fold()
Executing Test_normal09_operatorfunc()
Executing Test_normal09a_operatorfunc()
Executing Test_normal10_expand()
Executing Test_normal11_showcmd()
Executing Test_normal12_nv_error()
Executing Test_normal13_help()
Executing Test_normal14_page()
Executing Test_normal14_page_eol()
Executing Test_normal15_z_scroll_vert()
Executing Test_normal16_z_scroll_hor()
Executing Test_normal17_z_scroll_hor2()
Executing Test_normal18_z_fold()
Executing Test_normal19_z_spell()
Executing Test_normal20_exmode()
Executing Test_normal21_nv_hat()
Executing Test_normal22_zet()
Executing Test_normal23_K()
Executing Test_normal24_rot13()
Executing Test_normal25_tag()
Executing Test_normal26_put()
Executing Test_normal27_bracket()
Executing Test_normal28_parenthesis()
Executing Test_normal29_brace()
Executing Test_normal30_changecase()
Executing Test_normal31_r_cmd()
Executing Test_normal32_g_cmd1()
Executing Test_normal33_g_cmd2()
Executing Test_normal34_g_cmd3()
Executing Test_normal35_g_cmd4()
    Skipped
Executing Test_normal36_g_cmd5()
Executing Test_normal37_g_cmd6()
Executing Test_normal38_nvhome()
Executing Test_normal39_cw()
Executing Test_normal40_ctrl_bsl()
Executing Test_normal41_insert_reg()
Executing Test_normal42_halfpage()
Executing Test_normal43_textobject1()
Executing Test_normal44_textobjects2()
Executing Test_normal45_drop()
Executing Test_normal46_ignore()
Executing Test_normal47_autocmd()
    Skipped
Executing Test_normal47_visual_buf_wipe()
Executing Test_normal48_wincmd()
Executing Test_normal49_counts()
Executing Test_normal50_commandline()
Executing Test_normal51_FileChangedRO()
Executing Test_normal52_rl()
Executing Test_normal53_digraph()
Executing Test_normal54_Ctrl_bsl()
Executed 61 tests
SKIPPED Test_normal35_g_cmd4(): output of g< can't be tested currently
SKIPPED Test_normal47_autocmd(): not possible to test cursorhold autocmd while waiting for input in normal_cmd

From test_packadd.vim:
Executing Test_colorscheme()
Executing Test_colorscheme_completion()
Executing Test_helptags()
Executing Test_packadd()
Executing Test_packadd_completion()
Executing Test_packadd_noload()
Executing Test_packloadall()
Executing Test_runtime()
Executed 8 tests

From test_perl.vim:
Executing Test_SvREFCNT()
Executing Test_VIM_package()
Executing Test_change_buffer()
Executing Test_evaluate_list()
Executing Test_perldo()
Executing Test_perleval()
Executing Test_stdio()
Executed 7 tests

From test_profile.vim:
Executing Test_profile_completion()
Executing Test_profile_errors()
Executing Test_profile_file()
Executing Test_profile_func()
Executed 4 tests

From test_quickfix.vim:
Executing Test_Autocmd()
Executing Test_Autocmd_Exception()
Executing Test_adjust_lnum()
Executing Test_browse()
Executing Test_caddbuffer_to_empty()
Executing Test_caddbuffer_wrong()
Executing Test_caddexpr_wrong()
Executing Test_cage()
Executing Test_cbottom()
Executing Test_cbuffer()
Executing Test_cexpr()
Executing Test_cfile()
Executing Test_cgetexpr_works()
Executing Test_clist()
Executing Test_cwindow()
Executing Test_dirstack_cleanup()
Executing Test_duplicate_buf()
Executing Test_efm()
Executing Test_efm1()
Executing Test_efm2()
Executing Test_efm_dirstack()
Executing Test_efm_ignore_continuations()
Executing Test_errortitle()
Executing Test_grep()
Executing Test_helpgrep()
Executing Test_history()
Executing Test_invalid_efm()
Executing Test_locationlist()
Executing Test_locationlist_cross_tab_jump()
Executing Test_locationlist_curwin_was_closed()
Executing Test_long_lines()
Executing Test_nomem()
Executing Test_qf_property()
Executing Test_qf_title()
Executing Test_quickfix_set_list_with_act()
Executing Test_quickfix_was_changed_by_autocmd()
Executing Test_setqflist()
Executing Test_setqflist_empty_middle()
Executing Test_setqflist_empty_older()
Executing Test_switchbuf()
Executing Test_two_windows()
Executing Test_vimgreptitle()
Executed 42 tests

From test_ruby.vim:
Executing Test_ruby_change_buffer()
Executing Test_ruby_evaluate_dict()
Executing Test_ruby_evaluate_list()
Executed 3 tests

From test_search.vim:
Executing Test_search_cmdline()
Executing Test_search_cmdline2()
Executing Test_searchpair()
Executing Test_use_sub_pat()
Executed 4 tests

From test_signs.vim:
Executing Test_sign()
Executing Test_sign_completion()
Executing Test_sign_delete_buffer()
Executing Test_sign_invalid_commands()
Executing Test_sign_undefine_still_placed()
Executed 5 tests

From test_smartindent.vim:
Executing Test_nosmartindent()
Executed 1 test

From test_startup.vim:
Executing Test_after_comes_later()
Executing Test_compatible_args()
Executing Test_file_args()
Executing Test_help_arg()
Executing Test_read_stdin()
Executing Test_startup_script()
Executing Test_startuptime()
Executed 7 tests

From test_startup_utf8.vim:
Executing Test_read_fifo_utf8()
Executing Test_read_stdin_utf8()
Executed 2 tests

From test_stat.vim:
Executing Test_checktime()
Executing Test_existent_directory()
Executing Test_existent_file()
Executing Test_nonexistent_file()
Executing Test_win32_symlink_dir()
Executed 5 tests

From test_substitute.vim:
Executing Test_multiline_subst()
Executed 1 test

From test_syntax.vim:
Executing Test_syn_iskeyword()
Executing Test_syntax_after_reload()
Executing Test_syntax_completion()
Executing Test_syntax_list()
Executing Test_syntime()
Executed 5 tests

From test_system.vim:
Executing Test_System()
Executing Test_system_exmode()
Executed 2 tests

From test_textobjects.vim:
Executing Test_inner_block_with_cpo_M_left_backslash()
Executing Test_inner_block_with_cpo_M_right_backslash()
Executing Test_inner_block_without_cpo_M()
Executed 3 tests

From test_undo.vim:
Executing Test_U_command()
Executing Test_global_local_undolevels()
Executing Test_insert_expr()
Executing Test_undo_del_chars()
Executing Test_undo_write()
Executing Test_undofile_earlier()
Executing Test_undojoin()
Executing Test_undolist()
Executing Test_undotree()
Executed 9 tests

From test_usercommands.vim:
Executing Test_Ambiguous()
Executing Test_CmdUndefined()
Executing Test_cmdmods()
Executed 3 tests

From test_viminfo.vim:
Executing Test_cmdline_history()
Executing Test_cmdline_history_order()
Executing Test_global_vars()
Executing Test_viminfo_bad_syntax()
Executing Test_viminfo_encoding()
Executing Test_viminfo_file_mark_tabclose()
Executing Test_viminfo_file_mark_zero_time()
Executing Test_viminfo_file_marks()
Executing Test_viminfo_jumplist()
Executing Test_viminfo_marks()
Executing Test_viminfo_oldfiles()
Executing Test_viminfo_read_and_write()
Executing Test_viminfo_registers()
Executed 13 tests

From test_viml.vim:
Executing Test_arg_abort()
Executing Test_braces_skipped()
Executing Test_curlies()
Executing Test_defining_functions()
Executing Test_echo_and_string()
Executing Test_endwhile_function()
Executing Test_endwhile_script()
Executing Test_error_in_function()
Executing Test_error_in_script()
Executing Test_expr_parsing()
Executing Test_finish()
Executing Test_func_abort()
Executing Test_if_bar_fail()
Executing Test_if_fail()
Executing Test_if_while()
Executing Test_num64()
Executing Test_return()
Executing Test_script_lines()
Executing Test_skip()
Executing Test_type()
Executing Test_while_fail()
Executed 21 tests

From test_visual.vim:
Executing Test_block_shift_multibyte()
Executing Test_dotregister_paste()
Executed 2 tests

From test_window_id.vim:
Executing Test_win_getid()
Executing Test_win_getid_curtab()
Executed 2 tests

From test_writefile.vim:
Executing Test_WriteFile()
Executed 1 test

From test_alot_latin.vim:
Executing Test_eow_with_optional()
Executing Test_equivalence_re1()
Executing Test_equivalence_re2()
Executing Test_nested_backrefs()
Executing Test_recursive_substitute()
Executed 5 tests

From test_alot_utf8.vim:
Executing Test_classes_re1()
Executing Test_classes_re2()
Executing Test_equivalence_re1()
Executing Test_equivalence_re2()
Executing Test_match_using_multibyte_conceal_char()
Executing Test_source_latin()
Executing Test_source_utf8()
Executing Test_strcharpart()
Executing Test_strgetchar()
Executed 9 tests

From test_alot.vim:
Executing Test_BufEnter()
Executing Test_abbreviation()
Executing Test_abs()
Executing Test_acos()
Executing Test_asin()
Executing Test_atan()
Executing Test_atan2()
Executing Test_augroup_deleted()
Executing Test_augroup_warning()
Executing Test_auto_partial_rebind()
Executing Test_autocmd_bufunload_avoiding_SEGV_01()
Executing Test_autocmd_bufunload_avoiding_SEGV_02()
Executing Test_autocmd_bufunload_with_tabnext()
Executing Test_autocmd_bufwinleave_with_tabfirst()
Executing Test_bind_in_python()
Executing Test_break_undo()
Executing Test_bufunload()
Executing Test_cancel_ptjump()
Executing Test_caught_error_in_statusline()
Executing Test_caught_error_in_tabline()
Executing Test_ceil()
Executing Test_closure_counter()
Executing Test_closure_refcount()
Executing Test_closure_unlet()
Executing Test_color_names()
Executing Test_compare_null_dict()
Executing Test_compare_partials()
Executing Test_compl_vim_cmds_after_register_expr()
Executing Test_complete_no_undo()
Executing Test_completefunc_opens_new_window_one()
Executing Test_completefunc_opens_new_window_two()
Executing Test_completefunc_with_scratch_buffer()
Executing Test_completefunc_works()
Executing Test_completion_ctrl_e_without_autowrap()
Executing Test_cos()
Executing Test_cosh()
Executing Test_cursorhold_insert()
Executing Test_cursorhold_insert_ctrl_x()
Executing Test_cursorline_keep_col()
Executing Test_curswant_with_autocommand()
Executing Test_cycle_partial_job()
Executing Test_cyclic_dict_arg()
Executing Test_cyclic_list_arg()
Executing Test_delete_myself()
Executing Test_dict()
Executing Test_dictionary()
Executing Test_dir_delete()
Executing Test_early_bar()
Executing Test_empty_buffer()
Executing Test_equal()
Executing Test_ex_undo()
Executing Test_execute_list()
Executing Test_execute_string()
Executing Test_existing()
Executing Test_exp()
Executing Test_expand()
Executing Test_feedkeys_x_with_empty_string()
Executing Test_file_delete()
Executing Test_file_perm()
Executing Test_fileformat_after_bw()
Executing Test_filetype_valid()
Executing Test_filter()
Executing Test_filter_cmd_completion()
Executing Test_filter_fails()
Executing Test_filter_map_dict_expr_funcref()
Executing Test_filter_map_dict_expr_string()
Executing Test_filter_map_list_expr_funcref()
Executing Test_filter_map_list_expr_string()
Executing Test_floor()
Executing Test_fmod()
Executing Test_fnamemodify()
Executing Test_func_unref()
Executing Test_funcref()
Executing Test_function_in_dict()
Executing Test_function_with_funcref()
Executing Test_gD()
Executing Test_gD_char()
Executing Test_gD_comment()
Executing Test_gD_inline_comment()
Executing Test_gD_string()
Executing Test_gD_string_same_line()
Executing Test_gD_too()
Executing Test_gd()
Executing Test_gd_comment()
Executing Test_gd_comment_in_string()
Executing Test_gd_inline_comment()
Executing Test_gd_inline_comment_body()
Executing Test_gd_inline_comment_only()
Executing Test_gd_kr_style()
Executing Test_gd_missing_braces()
Executing Test_gd_not_local()
Executing Test_gd_string()
Executing Test_gd_string_in_comment()
Executing Test_gd_string_only()
Executing Test_gd_trailing_comment()
Executing Test_gd_trailing_multiline_comment()
Executing Test_get_partial_items()
Executing Test_getreg_empty_list()
Executing Test_global_local_lispwords()
Executing Test_help_complete()
Executing Test_help_respect_current_file_lang()
Executing Test_help_tagjump()
Executing Test_if()
Executing Test_info()
Executing Test_invalid()
Executing Test_invalid_submatch()
Executing Test_isnan()
Executing Test_join_with_count()
Executing Test_keymap_valid()
Executing Test_keyword_jump()
Executing Test_lambda_call_lambda_from_lambda()
Executing Test_lambda_capture_by_reference()
Executing Test_lambda_circular_reference()
Executing Test_lambda_closure_counter()
Executing Test_lambda_combination()
Executing Test_lambda_delfunc()
Executing Test_lambda_do_not_share_local_variable()
Executing Test_lambda_fails()
Executing Test_lambda_feature()
Executing Test_lambda_refer_local_variable_from_other_scope()
Executing Test_lambda_scope()
Executing Test_lambda_share_scope()
Executing Test_lambda_side_effect()
Executing Test_lambda_with_a_var()
Executing Test_lambda_with_filter()
Executing Test_lambda_with_map()
Executing Test_lambda_with_partial()
Executing Test_lambda_with_sort()
Executing Test_lambda_with_timer()
Executing Test_load_menu()
Executing Test_log()
Executing Test_log10()
Executing Test_loop_over_null_list()
Executing Test_map_ctrl_c_insert()
Executing Test_map_ctrl_c_visual()
Executing Test_map_cursor()
Executing Test_map_feedkeys()
Executing Test_map_langmap()
Executing Test_map_meta_quotes()
Executing Test_match()
Executing Test_matchaddpos()
Executing Test_matchaddpos_using_negative_priority()
Executing Test_matchstrpos()
Executing Test_max_min_errors()
Executing Test_messages()
Executing Test_missing_attr()
Executing Test_move_cursor()
Executing Test_named_function_closure()
Executing Test_no_type_checking()
Executing Test_noinsert_complete()
Executing Test_non_zero_arg()
Executing Test_not_existing()
Executing Test_not_lamda()
Executing Test_omnifunc_with_check()
Executing Test_oneshot()
Executing Test_option_value()
Executing Test_options()
Executing Test_partial_args()
Executing Test_partial_dict()
Executing Test_partial_exists()
Executing Test_partial_implicit()
Executing Test_partial_string()
Executing Test_path_keep_commas()
Executing Test_paused()
Executing Test_popup_complete()
Executing Test_popup_complete2()
Executing Test_popup_completion_insertmode()
Executing Test_pow()
Executing Test_printf_64bit()
Executing Test_printf_errors()
Executing Test_printf_float()
Executing Test_printf_misc()
Executing Test_printf_spec_b()
Executing Test_printf_spec_s()
Executing Test_ptag_with_notagstack()
Executing Test_read_only()
Executing Test_recursive_delete()
Executing Test_redefine_dict_func()
Executing Test_ref_job_partial_dict()
Executing Test_reltime()
Executing Test_repeat_many()
Executing Test_repeat_three()
Executing Test_retain_partial()
Executing Test_round()
Executing Test_script_function_in_dict()
Executing Test_script_function_in_dict_arg()
Executing Test_searchpos()
Executing Test_set_add()
Executing Test_set_backslash()
Executing Test_set_reg_null_list()
Executing Test_set_tagcase()
Executing Test_setmatches()
Executing Test_signcolumn()
Executing Test_sin()
Executing Test_sinh()
Executing Test_sort_default()
Executing Test_sort_float()
Executing Test_sort_nested()
Executing Test_sort_numbers()
Executing Test_sort_numeric()
Executing Test_sort_strings()
Executing Test_special_char()
Executing Test_sqrt()
Executing Test_static_tagjump()
Executing Test_statusline_will_be_disabled_with_error()
Executing Test_stop_all_in_callback()
Executing Test_stop_in_callback()
Executing Test_stopall()
Executing Test_str2float()
Executing Test_str2nr()
Executing Test_strcharpart()
Executing Test_strgetchar()
Executing Test_substitute_expr()
Executing Test_substitute_expr_arg()
Executing Test_symlink_delete()
Executing Test_symlink_dir_delete()
Executing Test_symlink_recursive_delete()
Executing Test_syntax_valid()
Executing Test_tabline_will_be_disabled_with_error()
Executing Test_tabnext_on_buf_unload1()
Executing Test_tabnext_on_buf_unload2()
Executing Test_tabpage()
Executing Test_tabpage_with_autocmd()
Executing Test_tabpage_with_tab_modifier()
Executing Test_tagcase()
Executing Test_tan()
Executing Test_tanh()
Executing Test_thesaurus()
Executing Test_three_windows()
Executing Test_tostring()
Executing Test_true_false_arg()
Executing Test_trunc()
Executing Test_valid()
Executing Test_version()
Executing Test_vim_did_enter()
Executing Test_whichwrap()
Executing Test_win_tab_autocmd()
Executing Test_window_cmd_cmdwin_with_vsp()
Executing Test_window_cmd_ls0_with_split()
Executing Test_window_cmd_wincmd_gf()
Executing Test_with_directories()
Executing Test_with_partial_callback()
Executing Test_with_tilde()
Executing Test_wrong_arguments()
Executed 244 tests

Test results:
ALL DONE
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-athena/testdir'
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/json_test.o json_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o json_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o objects/gui.o objects/gui_athena.o objects/gui_x11.o objects/pty.o objects/gui_beval.o objects/gui_at_sb.o objects/gui_at_fs.o objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/memfile.o objects/message.o objects/json_test.o -lXaw -lXmu -lXext -lXt -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE -ldl  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
link.sh: Linked fine
./json_test || exit 1; echo  passed;
passed
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/memfile_test.o memfile_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o memfile_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o objects/gui.o objects/gui_athena.o objects/gui_x11.o objects/pty.o objects/gui_beval.o objects/gui_at_sb.o objects/gui_at_fs.o objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/json.o objects/message.o objects/memfile_test.o -lXaw -lXmu -lXext -lXt -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE -ldl  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
link.sh: Linked fine
./memfile_test || exit 1; echo  passed;
passed
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -o objects/message_test.o message_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_ATHENA   -Wdate-time  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed 	-o message_test objects/arabic.o objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/dict.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/evalfunc.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/farsi.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/list.o objects/mark.o objects/memline.o objects/menu.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/spellfile.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/userfunc.o objects/version.o objects/window.o objects/gui.o objects/gui_athena.o objects/gui_x11.o objects/pty.o objects/gui_beval.o objects/gui_at_sb.o objects/gui_at_fs.o objects/if_lua.o  objects/if_perl.o objects/if_perlsfio.o  objects/if_python3.o objects/if_tcl.o objects/if_ruby.o   objects/netbeans.o objects/channel.o  objects/json.o objects/memfile.o objects/message_test.o -lXaw -lXmu -lXext -lXt -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE -ldl  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/arm-linux-gnueabihf/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-arm-linux-gnueabihf -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/arm-linux-gnueabihf -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm     
link.sh: Linked fine
./message_test || exit 1; echo  passed;
passed
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-athena'
touch build-stamp-vim-athena
dh_testdir
touch build-stamp-arch
rm configure-stamp-vim-basic configure-stamp-vim-tiny configure-stamp-vim-nox configure-stamp-vim-gtk3 configure-stamp-vim-athena configure-stamp-vim-gtk
 fakeroot debian/rules binary-arch
dh_testdir
dh_testdir
dh_testroot
dh_testdir
/usr/bin/make -C src/vim-basic STRIP=: DESTDIR=/<<PKGBUILDDIR>>/debian/xxd installtools install-tool-languages
dh_testroot
dh_testdir
make[1]: Entering directory '/<<PKGBUILDDIR>>/src/vim-basic'
/bin/sh ./mkinstalldirs /<<PKGBUILDDIR>>/debian/xxd/usr
mkdir /<<PKGBUILDDIR>>/debian/xxd
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr
chmod 755 /<<PKGBUILDDIR>>/debian/xxd/usr
/bin/sh ./mkinstalldirs /<<PKGBUILDDIR>>/debian/xxd/usr/bin
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/bin
chmod 755 /<<PKGBUILDDIR>>/debian/xxd/usr/bin
/bin/sh ./mkinstalldirs /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim
chmod 755 /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim
/bin/sh ./mkinstalldirs /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80
chmod 755 /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80
/bin/sh ./mkinstalldirs /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80/tools
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80/tools
chmod 755 /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80/tools
/bin/sh ./installman.sh xxd /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr/man1 "-fr" /usr/share/vim /usr/share/vim/vim80 /usr/share/vim ../runtime/doc 644 vim vimdiff evim
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr/man1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr/man1
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr/man1/xxd.1
/bin/sh ./installman.sh xxd /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr.ISO8859-1/man1 "-fr" /usr/share/vim /usr/share/vim/vim80 /usr/share/vim ../runtime/doc 644 vim vimdiff evim
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr.ISO8859-1/man1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr.ISO8859-1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr.ISO8859-1/man1
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr.ISO8859-1/man1/xxd.1
/bin/sh ./installman.sh xxd /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr.UTF-8/man1 "-fr.UTF-8" /usr/share/vim /usr/share/vim/vim80 /usr/share/vim ../runtime/doc 644 vim vimdiff evim
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr.UTF-8/man1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr.UTF-8
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr.UTF-8/man1
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/fr.UTF-8/man1/xxd.1
/bin/sh ./installman.sh xxd /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it/man1 "-it" /usr/share/vim /usr/share/vim/vim80 /usr/share/vim ../runtime/doc 644 vim vimdiff evim
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it/man1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it/man1
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it/man1/xxd.1
/bin/sh ./installman.sh xxd /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it.ISO8859-1/man1 "-it" /usr/share/vim /usr/share/vim/vim80 /usr/share/vim ../runtime/doc 644 vim vimdiff evim
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it.ISO8859-1/man1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it.ISO8859-1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it.ISO8859-1/man1
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it.ISO8859-1/man1/xxd.1
/bin/sh ./installman.sh xxd /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it.UTF-8/man1 "-it.UTF-8" /usr/share/vim /usr/share/vim/vim80 /usr/share/vim ../runtime/doc 644 vim vimdiff evim
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it.UTF-8/man1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it.UTF-8
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it.UTF-8/man1
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/it.UTF-8/man1/xxd.1
/bin/sh ./installman.sh xxd /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ja/man1 "-ja.UTF-8" /usr/share/vim /usr/share/vim/vim80 /usr/share/vim ../runtime/doc 644 vim vimdiff evim
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ja/man1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ja
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ja/man1
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ja/man1/xxd.1
/bin/sh ./installman.sh xxd /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl/man1 "-pl" /usr/share/vim /usr/share/vim/vim80 /usr/share/vim ../runtime/doc 644 vim vimdiff evim
dh_testroot
*** DEBIAN *** INSTALLING VARIANT vim-tiny
dh_installdirs
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl/man1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl/man1
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl/man1/xxd.1
/bin/sh ./installman.sh xxd /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl.ISO8859-2/man1 "-pl" /usr/share/vim /usr/share/vim/vim80 /usr/share/vim ../runtime/doc 644 vim vimdiff evim
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl.ISO8859-2/man1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl.ISO8859-2
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl.ISO8859-2/man1
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl.ISO8859-2/man1/xxd.1
*** DEBIAN *** INSTALLING VARIANT vim-gtk
/bin/sh ./installman.sh xxd /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl.UTF-8/man1 "-pl.UTF-8" /usr/share/vim /usr/share/vim/vim80 /usr/share/vim ../runtime/doc 644 vim vimdiff evim
dh_installdirs
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl.UTF-8/man1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl.UTF-8
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl.UTF-8/man1
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/pl.UTF-8/man1/xxd.1
/bin/sh ./installman.sh xxd /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ru.KOI8-R/man1 "-ru" /usr/share/vim /usr/share/vim/vim80 /usr/share/vim ../runtime/doc 644 vim vimdiff evim
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ru.KOI8-R/man1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ru.KOI8-R
dh_testroot
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ru.KOI8-R/man1
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ru.KOI8-R/man1/xxd.1
/bin/sh ./installman.sh xxd /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ru.UTF-8/man1 "-ru.UTF-8" /usr/share/vim /usr/share/vim/vim80 /usr/share/vim ../runtime/doc 644 vim vimdiff evim
cp src/vim-tiny/vim src/vim-tiny/vim.tiny
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ru.UTF-8/man1
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ru.UTF-8
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ru.UTF-8/man1
# variant-related installations
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/ru.UTF-8/man1/xxd.1
for x in install postinst prerm links lintian-overrides ; do \
  case "vim-tiny" in \
    vim-nox|vim|vim-tiny) \
      sed -e "s:@PKG@:vim-tiny:" -e "s:@VARIANT@:tiny:g" \
          -e "s:@COMMON@:vim-common:" \
          debian/vim-variant.$x > debian/vim-tiny.$x ;\
      ;; \
    *) \
      sed -e "s:@PKG@:vim-tiny:" -e "s:@VARIANT@:tiny:g" \
          -e "s:@COMMON@:vim-gui-common:" \
          debian/vim-variant.$x > debian/vim-tiny.$x ;\
      ;; \
  esac \
done
if test -f /<<PKGBUILDDIR>>/debian/xxd/usr/bin/xxd; then \
  mv -f /<<PKGBUILDDIR>>/debian/xxd/usr/bin/xxd /<<PKGBUILDDIR>>/debian/xxd/usr/bin/xxd.rm; \
  rm -f /<<PKGBUILDDIR>>/debian/xxd/usr/bin/xxd.rm; \
fi
make[1]: 'install-tool-languages' is up to date.
cp xxd/xxd /<<PKGBUILDDIR>>/debian/xxd/usr/bin
: /<<PKGBUILDDIR>>/debian/xxd/usr/bin/xxd
chmod 755 /<<PKGBUILDDIR>>/debian/xxd/usr/bin/xxd
/bin/sh ./installman.sh xxd /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/man1 "" /usr/share/vim /usr/share/vim/vim80 /usr/share/vim ../runtime/doc 644 vim vimdiff evim
for L in fr it pl ru ja; do \
  sed -e "s:\(.*\)@LANG_ALTS@:\1--slave \$mandir/$L/man1/\$i.1.gz \$i.$L.1.gz \$mandir/$L/man1/vim.1.gz \\\\\n&:" \
      -i debian/vim-tiny.postinst; \
done
creating /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/man1
cp src/vim-gtk/vim src/vim-gtk/vim.gtk
*** DEBIAN *** INSTALLING VARIANT vim-gtk3
dh_installdirs
mkdir /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/man1
installing /<<PKGBUILDDIR>>/debian/xxd/usr/share/man/man1/xxd.1
cp -r ../runtime/tools/* /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80/tools
sed -i "/@LANG_ALTS@/d" debian/vim-tiny.postinst
# variant-related installations
for x in install postinst prerm links lintian-overrides ; do \
  case "vim-gtk" in \
    vim-nox|vim|vim-tiny) \
      sed -e "s:@PKG@:vim-gtk:" -e "s:@VARIANT@:gtk:g" \
          -e "s:@COMMON@:vim-common:" \
          debian/vim-variant.$x > debian/vim-gtk.$x ;\
      ;; \
    *) \
      sed -e "s:@PKG@:vim-gtk:" -e "s:@VARIANT@:gtk:g" \
          -e "s:@COMMON@:vim-gui-common:" \
          debian/vim-variant.$x > debian/vim-gtk.$x ;\
      ;; \
  esac \
done
cvs=`find /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80/tools \( -name CVS -o -name AAPDIR \) -print`; \
      if test -n "$cvs"; then \
	 rm -rf $cvs; \
      fi
# fake help installation for vim-tiny
if [ "vim-tiny" = "vim-tiny" ]; then \
  /usr/bin/make -f debian/rules debian/tiny/vimrc.tiny; \
  echo "debian/tiny/doc/	usr/share/vim/vim80" >> debian/vim-tiny.install; \
  echo "debian/tiny/vimrc.tiny	etc/vim" >> debian/vim-tiny.install; \
  echo "etc/vim/vimrc.tiny	usr/share/vim/vimrc.tiny" >> debian/vim-tiny.links; \
fi
chmod 644 /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80/tools/*
make[1]: Entering directory '/<<PKGBUILDDIR>>'
perlpath=`./which.sh perl` && sed -e "s+/usr/bin/perl+$perlpath+" ../runtime/tools/efm_perl.pl >/<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80/tools/efm_perl.pl
for L in fr it pl ru ja; do \
  sed -e "s:\(.*\)@LANG_ALTS@:\1--slave \$mandir/$L/man1/\$i.1.gz \$i.$L.1.gz \$mandir/$L/man1/vim.1.gz \\\\\n&:" \
      -i debian/vim-gtk.postinst; \
done
awkpath=`./which.sh nawk` && sed -e "s+/usr/bin/nawk+$awkpath+" ../runtime/tools/mve.awk >/<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80/tools/mve.awk; if test -z "$awkpath"; then \
	awkpath=`./which.sh gawk` && sed -e "s+/usr/bin/nawk+$awkpath+" ../runtime/tools/mve.awk >/<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80/tools/mve.awk; if test -z "$awkpath"; then \
	awkpath=`./which.sh awk` && sed -e "s+/usr/bin/nawk+$awkpath+" ../runtime/tools/mve.awk >/<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80/tools/mve.awk; fi; fi
chmod 755 `grep -l "^#!" /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim/vim80/tools/*`
make[1]: Leaving directory '/<<PKGBUILDDIR>>/src/vim-basic'
rm -r /<<PKGBUILDDIR>>/debian/xxd/usr/share/vim
sed -i "/@LANG_ALTS@/d" debian/vim-gtk.postinst
for L in fr it pl ru ja; do if [ -d "/<<PKGBUILDDIR>>/debian/xxd/usr/share/man/$L.UTF-8" ]; then rm -rf "/<<PKGBUILDDIR>>/debian/xxd/usr/share/man/$L"; mv "/<<PKGBUILDDIR>>/debian/xxd/usr/share/man/$L.UTF-8" "/<<PKGBUILDDIR>>/debian/xxd/usr/share/man/$L"; fi; rm -rf "/<<PKGBUILDDIR>>/debian/xxd/usr/share/man/$L."*; done
# fake help installation for vim-tiny
if [ "vim-gtk" = "vim-tiny" ]; then \
  /usr/bin/make -f debian/rules debian/tiny/vimrc.tiny; \
  echo "debian/tiny/doc/	usr/share/vim/vim80" >> debian/vim-tiny.install; \
  echo "debian/tiny/vimrc.tiny	etc/vim" >> debian/vim-tiny.install; \
  echo "etc/vim/vimrc.tiny	usr/share/vim/vimrc.tiny" >> debian/vim-tiny.links; \
fi
dh_install
cp src/vim-gtk3/vim src/vim-gtk3/vim.gtk3
dh_installchangelogs
# variant-related installations
for x in install postinst prerm links lintian-overrides ; do \
  case "vim-gtk3" in \
    vim-nox|vim|vim-tiny) \
      sed -e "s:@PKG@:vim-gtk3:" -e "s:@VARIANT@:gtk3:g" \
          -e "s:@COMMON@:vim-common:" \
          debian/vim-variant.$x > debian/vim-gtk3.$x ;\
      ;; \
    *) \
      sed -e "s:@PKG@:vim-gtk3:" -e "s:@VARIANT@:gtk3:g" \
          -e "s:@COMMON@:vim-gui-common:" \
          debian/vim-variant.$x > debian/vim-gtk3.$x ;\
      ;; \
  esac \
done
for L in fr it pl ru ja; do \
  sed -e "s:\(.*\)@LANG_ALTS@:\1--slave \$mandir/$L/man1/\$i.1.gz \$i.$L.1.gz \$mandir/$L/man1/vim.1.gz \\\\\n&:" \
      -i debian/vim-gtk3.postinst; \
done
sed -i "/@LANG_ALTS@/d" debian/vim-gtk3.postinst
# fake help installation for vim-tiny
if [ "vim-gtk3" = "vim-tiny" ]; then \
  /usr/bin/make -f debian/rules debian/tiny/vimrc.tiny; \
  echo "debian/tiny/doc/	usr/share/vim/vim80" >> debian/vim-tiny.install; \
  echo "debian/tiny/vimrc.tiny	etc/vim" >> debian/vim-tiny.install; \
  echo "etc/vim/vimrc.tiny	usr/share/vim/vimrc.tiny" >> debian/vim-tiny.links; \
fi
dh_install
dh_link
dh_link
dh_bugfiles -A
dh_installdocs
touch install-stamp-vim-gtk
dh_testdir
cat debian/tiny/vimrc.tiny.in | sed 's/@VIMCUR@/vim80/' > debian/tiny/vimrc.tiny
dh_bugfiles -A
touch install-stamp-xxd
dh_testdir
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_install
touch install-stamp-vim-gtk3
dh_testroot
dh_testdir
dh_link
dh_testroot
*** DEBIAN *** INSTALLING VARIANT vim-athena
dh_installdirs
*** DEBIAN *** INSTALLING VARIANT vim-nox
dh_installdirs
dh_testroot
cp src/vim-athena/vim src/vim-athena/vim.athena
# variant-related installations
for x in install postinst prerm links lintian-overrides ; do \
  case "vim-athena" in \
    vim-nox|vim|vim-tiny) \
      sed -e "s:@PKG@:vim-athena:" -e "s:@VARIANT@:athena:g" \
          -e "s:@COMMON@:vim-common:" \
          debian/vim-variant.$x > debian/vim-athena.$x ;\
      ;; \
    *) \
      sed -e "s:@PKG@:vim-athena:" -e "s:@VARIANT@:athena:g" \
          -e "s:@COMMON@:vim-gui-common:" \
          debian/vim-variant.$x > debian/vim-athena.$x ;\
      ;; \
  esac \
done
for L in fr it pl ru ja; do \
  sed -e "s:\(.*\)@LANG_ALTS@:\1--slave \$mandir/$L/man1/\$i.1.gz \$i.$L.1.gz \$mandir/$L/man1/vim.1.gz \\\\\n&:" \
      -i debian/vim-athena.postinst; \
done
*** DEBIAN *** INSTALLING VARIANT vim-basic
dh_installdirs
dh_bugfiles -A
cp src/vim-nox/vim src/vim-nox/vim.nox
sed -i "/@LANG_ALTS@/d" debian/vim-athena.postinst
# variant-related installations
# fake help installation for vim-tiny
for x in install postinst prerm links lintian-overrides ; do \
  case "vim-nox" in \
    vim-nox|vim|vim-tiny) \
      sed -e "s:@PKG@:vim-nox:" -e "s:@VARIANT@:nox:g" \
          -e "s:@COMMON@:vim-common:" \
          debian/vim-variant.$x > debian/vim-nox.$x ;\
      ;; \
    *) \
      sed -e "s:@PKG@:vim-nox:" -e "s:@VARIANT@:nox:g" \
          -e "s:@COMMON@:vim-gui-common:" \
          debian/vim-variant.$x > debian/vim-nox.$x ;\
      ;; \
  esac \
done
if [ "vim-athena" = "vim-tiny" ]; then \
  /usr/bin/make -f debian/rules debian/tiny/vimrc.tiny; \
  echo "debian/tiny/doc/	usr/share/vim/vim80" >> debian/vim-tiny.install; \
  echo "debian/tiny/vimrc.tiny	etc/vim" >> debian/vim-tiny.install; \
  echo "etc/vim/vimrc.tiny	usr/share/vim/vimrc.tiny" >> debian/vim-tiny.links; \
fi
dh_install
for L in fr it pl ru ja; do \
  sed -e "s:\(.*\)@LANG_ALTS@:\1--slave \$mandir/$L/man1/\$i.1.gz \$i.$L.1.gz \$mandir/$L/man1/vim.1.gz \\\\\n&:" \
      -i debian/vim-nox.postinst; \
done
sed -i "/@LANG_ALTS@/d" debian/vim-nox.postinst
# fake help installation for vim-tiny
if [ "vim-nox" = "vim-tiny" ]; then \
  /usr/bin/make -f debian/rules debian/tiny/vimrc.tiny; \
  echo "debian/tiny/doc/	usr/share/vim/vim80" >> debian/vim-tiny.install; \
  echo "debian/tiny/vimrc.tiny	etc/vim" >> debian/vim-tiny.install; \
  echo "etc/vim/vimrc.tiny	usr/share/vim/vimrc.tiny" >> debian/vim-tiny.links; \
fi
dh_install
cp src/vim-basic/vim src/vim-basic/vim.basic
touch install-stamp-vim-tiny
dh_testdir
dh_link
dh_link
# variant-related installations
for x in install postinst prerm links lintian-overrides ; do \
  case "vim" in \
    vim-nox|vim|vim-tiny) \
      sed -e "s:@PKG@:vim:" -e "s:@VARIANT@:basic:g" \
          -e "s:@COMMON@:vim-common:" \
          debian/vim-variant.$x > debian/vim.$x ;\
      ;; \
    *) \
      sed -e "s:@PKG@:vim:" -e "s:@VARIANT@:basic:g" \
          -e "s:@COMMON@:vim-gui-common:" \
          debian/vim-variant.$x > debian/vim.$x ;\
      ;; \
  esac \
done
for L in fr it pl ru ja; do \
  sed -e "s:\(.*\)@LANG_ALTS@:\1--slave \$mandir/$L/man1/\$i.1.gz \$i.$L.1.gz \$mandir/$L/man1/vim.1.gz \\\\\n&:" \
      -i debian/vim.postinst; \
done
sed -i "/@LANG_ALTS@/d" debian/vim.postinst
# fake help installation for vim-tiny
if [ "vim" = "vim-tiny" ]; then \
  /usr/bin/make -f debian/rules debian/tiny/vimrc.tiny; \
  echo "debian/tiny/doc/	usr/share/vim/vim80" >> debian/vim-tiny.install; \
  echo "debian/tiny/vimrc.tiny	etc/vim" >> debian/vim-tiny.install; \
  echo "etc/vim/vimrc.tiny	usr/share/vim/vimrc.tiny" >> debian/vim-tiny.links; \
fi
dh_install
dh_testroot
dh_bugfiles -A
dh_bugfiles -A
dh_strip
touch install-stamp-vim-nox
dh_testdir
dh_link
touch install-stamp-vim-athena
dh_compress
dh_testdir
dh_bugfiles -A
dh_testroot
dh_fixperms
dh_strip --dbgsym-migration='vim-dbg (<< 2:7.4.1689-1~)'
dh_testroot
touch install-stamp-vim-basic
dh_testdir
dh_installdeb
dh_strip --dbgsym-migration='vim-dbg (<< 2:7.4.1689-1~)'
dh_testroot
dh_shlibdeps
dh_strip --dbgsym-migration='vim-dbg (<< 2:7.4.1689-1~)'
dh_compress
dh_fixperms
dh_lintian
dh_installdeb
dh_shlibdeps
dh_gencontrol
dpkg-shlibdeps: warning: tried to merge the same object (ld-linux-armhf.so.3) twice in a symfile
dh_md5sums
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/vim-tiny/usr/bin/vim.tiny was not linked against ld-linux-armhf.so.3 (it uses none of the library's symbols)
dh_gencontrol -- -Vvim:Perl-Provides=vim-perl
dh_compress
dh_compress
dh_builddeb
dh_fixperms
dpkg-deb: building package 'xxd-dbgsym' in '../xxd-dbgsym_8.0.0197-3_armhf.deb'.
dh_fixperms
dpkg-deb: building package 'xxd' in '../xxd_8.0.0197-3_armhf.deb'.
dh_lintian
dh_lintian
dh_testdir
dh_installdeb
dh_installdeb
dh_testroot
dh_shlibdeps
dh_shlibdeps
dh_strip --dbgsym-migration='vim-dbg (<< 2:7.4.1689-1~)'
dh_md5sums
dh_builddeb -- -Zxz
dpkg-deb: building package 'vim-tiny-dbgsym' in '../vim-tiny-dbgsym_8.0.0197-3_armhf.deb'.
dpkg-deb: building package 'vim-tiny' in '../vim-tiny_8.0.0197-3_armhf.deb'.
dh_testdir
dh_testroot
dh_strip --dbgsym-migration='vim-dbg (<< 2:7.4.1689-1~)'
dh_compress
dh_fixperms
dh_lintian
dh_installdeb
dh_shlibdeps
dpkg-shlibdeps: warning: tried to merge the same object (ld-linux-armhf.so.3) twice in a symfile
dh_compress
dh_fixperms
dh_lintian
dh_installdeb
dh_shlibdeps
dpkg-shlibdeps: warning: tried to merge the same object (ld-linux-armhf.so.3) twice in a symfile
dpkg-shlibdeps: warning: tried to merge the same object (ld-linux-armhf.so.3) twice in a symfile
dpkg-shlibdeps: warning: tried to merge the same object (ld-linux-armhf.so.3) twice in a symfile
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/vim-gtk/usr/bin/vim.gtk was not linked against ld-linux-armhf.so.3 (it uses none of the library's symbols)
dh_gencontrol -- -Vvim:Perl-Provides=vim-perl
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/vim-athena/usr/bin/vim.athena was not linked against ld-linux-armhf.so.3 (it uses none of the library's symbols)
dh_gencontrol -- -Vvim:Perl-Provides=vim-perl
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/vim-gtk3/usr/bin/vim.gtk3 was not linked against ld-linux-armhf.so.3 (it uses none of the library's symbols)
dh_gencontrol -- -Vvim:Perl-Provides=vim-perl
dh_md5sums
dh_builddeb -- -Zxz
dh_md5sums
dpkg-deb: building package 'vim-gtk-dbgsym' in '../vim-gtk-dbgsym_8.0.0197-3_armhf.deb'.
dh_builddeb -- -Zxz
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/vim-nox/usr/bin/vim.nox was not linked against ld-linux-armhf.so.3 (it uses none of the library's symbols)
dh_gencontrol -- -Vvim:Perl-Provides=vim-perl
dh_md5sums
dpkg-deb: building package 'vim-athena-dbgsym' in '../vim-athena-dbgsym_8.0.0197-3_armhf.deb'.
dh_builddeb -- -Zxz
dpkg-deb: building package 'vim-gtk3-dbgsym' in '../vim-gtk3-dbgsym_8.0.0197-3_armhf.deb'.
dh_md5sums
dh_builddeb -- -Zxz
dpkg-deb: building package 'vim-nox-dbgsym' in '../vim-nox-dbgsym_8.0.0197-3_armhf.deb'.
dpkg-deb: building package 'vim-athena' in '../vim-athena_8.0.0197-3_armhf.deb'.
dpkg-deb: building package 'vim-gtk' in '../vim-gtk_8.0.0197-3_armhf.deb'.
dpkg-deb: building package 'vim-gtk3' in '../vim-gtk3_8.0.0197-3_armhf.deb'.
dpkg-deb: building package 'vim-nox' in '../vim-nox_8.0.0197-3_armhf.deb'.
dh_testdir
dh_testroot
dh_strip --dbgsym-migration='vim-dbg (<< 2:7.4.1689-1~)'
dh_compress
dh_fixperms
dh_lintian
dh_installdeb
dh_shlibdeps
dpkg-shlibdeps: warning: tried to merge the same object (ld-linux-armhf.so.3) twice in a symfile
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/vim/usr/bin/vim.basic was not linked against ld-linux-armhf.so.3 (it uses none of the library's symbols)
dh_gencontrol -- -Vvim:Perl-Provides=vim-perl
dh_md5sums
dh_builddeb -- -Zxz
dpkg-deb: building package 'vim-dbgsym' in '../vim-dbgsym_8.0.0197-3_armhf.deb'.
dpkg-deb: building package 'vim' in '../vim_8.0.0197-3_armhf.deb'.
 dpkg-genbuildinfo --build=any
 dpkg-genchanges --build=any -mRaspbian nitrogen6x test autobuilder <root@raspbian.org> >../vim_8.0.0197-3_armhf.changes
dpkg-genchanges: info: binary-only arch-specific upload (source code and arch-indep packages not included)
 dpkg-source --after-build vim-8.0.0197
dpkg-buildpackage: info: binary-only upload (no source included)
--------------------------------------------------------------------------------
Build finished at 2017-03-09T07:05:06Z

Finished
--------

I: Built successfully

+------------------------------------------------------------------------------+
| Post Build Chroot                                                            |
+------------------------------------------------------------------------------+


+------------------------------------------------------------------------------+
| Changes                                                                      |
+------------------------------------------------------------------------------+


vim_8.0.0197-3_armhf.changes:
-----------------------------

Format: 1.8
Date: Mon, 06 Mar 2017 22:33:23 -0500
Source: vim
Binary: vim-common vim-gui-common vim-runtime vim-doc vim-tiny vim vim-gtk vim-gtk3 vim-nox vim-athena vim-gnome xxd
Architecture: armhf
Version: 2:8.0.0197-3
Distribution: stretch-staging
Urgency: high
Maintainer: Raspbian nitrogen6x test autobuilder <root@raspbian.org>
Changed-By: James McCoy <jamessan@debian.org>
Description:
 vim        - Vi IMproved - enhanced vi editor
 vim-athena - Vi IMproved - enhanced vi editor - with Athena GUI
 vim-common - Vi IMproved - Common files
 vim-doc    - Vi IMproved - HTML documentation
 vim-gnome  - Vi IMproved - enhanced vi editor (dummy package)
 vim-gtk    - Vi IMproved - enhanced vi editor - with GTK2 GUI
 vim-gtk3   - Vi IMproved - enhanced vi editor - with GTK3 GUI
 vim-gui-common - Vi IMproved - Common GUI files
 vim-nox    - Vi IMproved - enhanced vi editor - with scripting languages suppo
 vim-runtime - Vi IMproved - Runtime files
 vim-tiny   - Vi IMproved - enhanced vi editor - compact version
 xxd        - tool to make (or reverse) a hex dump
Closes: 856266
Changes:
 vim (2:8.0.0197-3) unstable; urgency=high
 .
   * Backport upstream patches v8.0.0377 & v8.0.0378, to fix buffer overflows
     when reading corrupted undo files.  (Closes: #856266, CVE-2017-6349,
     CVE-2017-6350)
Checksums-Sha1:
 ab2364b4511445c58230cebc3c50a9b1e22f239e 3675584 vim-athena-dbgsym_8.0.0197-3_armhf.deb
 34ac4b7838f8a4e4e3ecae4032fc9aca64997d00 979680 vim-athena_8.0.0197-3_armhf.deb
 c8072029943ca657c0d8395befc9485c36a42e5e 2818330 vim-dbgsym_8.0.0197-3_armhf.deb
 e88cfaaf324e284524898d08e0fa84f82ebb8f47 4012860 vim-gtk-dbgsym_8.0.0197-3_armhf.deb
 3cb03df0300908a1d35d9a0fdd1e162848e2ebaf 3841820 vim-gtk3-dbgsym_8.0.0197-3_armhf.deb
 3688fb2310384c2e7b41ac58cea80640f2e4d1ca 995756 vim-gtk3_8.0.0197-3_armhf.deb
 ac47696eb2e605d61fd3fb7320020dd250c93218 994202 vim-gtk_8.0.0197-3_armhf.deb
 9554d033f5830785275d00056361b685cb242b4f 3127258 vim-nox-dbgsym_8.0.0197-3_armhf.deb
 90874bc599c867923039534077258e80c37f5ac3 893738 vim-nox_8.0.0197-3_armhf.deb
 c8e412067117e3752de70051a1bf36133de8d3c9 1094668 vim-tiny-dbgsym_8.0.0197-3_armhf.deb
 9d9d70e0ee4439768db34c2f350ac96bb55e7de9 337674 vim-tiny_8.0.0197-3_armhf.deb
 bbf0d55a2bd07cac2a3a1cd71b6b210073c817ba 14533 vim_8.0.0197-3_armhf.buildinfo
 f537e81b99c338a472456b8659cc39517fe1dafe 790366 vim_8.0.0197-3_armhf.deb
 abeccb57c601fc8f34280b4195bf866b06618933 10768 xxd-dbgsym_8.0.0197-3_armhf.deb
 63e8e56766bb7f45b21beb752c53e5cd57e650bf 130620 xxd_8.0.0197-3_armhf.deb
Checksums-Sha256:
 9cf54a9ca39083393241bdd041f8e8a9cd648edf1eda2bdc20f790bc45b08f5c 3675584 vim-athena-dbgsym_8.0.0197-3_armhf.deb
 ffe8cf8ac81dbd39fea86c394572b7cb717374bdff1c3b3a451f0e6d985d70da 979680 vim-athena_8.0.0197-3_armhf.deb
 af5ff7a08411c1613d4f0a20cd1f87e08039adfba3ed5ab1226229f9b335a476 2818330 vim-dbgsym_8.0.0197-3_armhf.deb
 cadc7e283e5011eabf1478ae51c002d8c0231e903daccec841fbde8e7f2db944 4012860 vim-gtk-dbgsym_8.0.0197-3_armhf.deb
 a8e6cb92be65c507872f1ccca4678984cba6e1f08a0682b8da2f26215b775170 3841820 vim-gtk3-dbgsym_8.0.0197-3_armhf.deb
 86551e8719c311c91069e3e9659bcb7c8a281ff21dedf110d7b99062a8b43d31 995756 vim-gtk3_8.0.0197-3_armhf.deb
 6d7ab7bb4a270a00257f293fc92d4210f7af449d526274189fbba2522aae560e 994202 vim-gtk_8.0.0197-3_armhf.deb
 97ecf5a4bef1bb68d3dc302288184e698ab14a370001a8b66717a75c28f9e844 3127258 vim-nox-dbgsym_8.0.0197-3_armhf.deb
 1bd87c5955749ffd9e9455e5cfe50c00e0b971e6d6cabb1a88f4241b6efebf29 893738 vim-nox_8.0.0197-3_armhf.deb
 1f0ac59370ac9dfcedb6bfea103dfb66c9612c3752d4385f40dd393ab41916b6 1094668 vim-tiny-dbgsym_8.0.0197-3_armhf.deb
 d19456047c846f20874914bc0b67814c993be1e10c0ab4a377df85681d4e28d7 337674 vim-tiny_8.0.0197-3_armhf.deb
 137ecd8dcf4d9b66a2a7e75072651afd5eb3c3cba498ad42640f1e73d0dde6af 14533 vim_8.0.0197-3_armhf.buildinfo
 37497eaadc305090fa0f1098878676a7c8a43e02c275b64859180453bf5a1050 790366 vim_8.0.0197-3_armhf.deb
 f01e4ee3a237a335616de375ea085c73ee0835ca8c42a73568c9f223fe13ff79 10768 xxd-dbgsym_8.0.0197-3_armhf.deb
 dfa348503831b06a41ee1547dfaed922d4249b35253288afc0ecbf4f55cebef8 130620 xxd_8.0.0197-3_armhf.deb
Files:
 d0b2bbef4e1c373e6c708db50d63e47a 3675584 debug extra vim-athena-dbgsym_8.0.0197-3_armhf.deb
 88a8a9e6b5186edb7e991115459931aa 979680 editors extra vim-athena_8.0.0197-3_armhf.deb
 bc3def3f12881290326df1b15530a2cc 2818330 debug extra vim-dbgsym_8.0.0197-3_armhf.deb
 aa0a02514f20c0943f1d94533f45dbf9 4012860 debug extra vim-gtk-dbgsym_8.0.0197-3_armhf.deb
 a25f3b94b832e6a3fa6825270b3398d1 3841820 debug extra vim-gtk3-dbgsym_8.0.0197-3_armhf.deb
 6da29501936c55938a064a18abedcaf4 995756 editors extra vim-gtk3_8.0.0197-3_armhf.deb
 d9b8022e63cfdcf16ac2cf8a406c2e72 994202 editors extra vim-gtk_8.0.0197-3_armhf.deb
 1baadfb4b7531985b3f9df131674d2fe 3127258 debug extra vim-nox-dbgsym_8.0.0197-3_armhf.deb
 55df8f383f7ab14cf1bae7eef818943f 893738 editors extra vim-nox_8.0.0197-3_armhf.deb
 1c056be49304d7cb8f8264e1ec97aa99 1094668 debug extra vim-tiny-dbgsym_8.0.0197-3_armhf.deb
 01f7378ec03f7cbbf030190792fb9737 337674 editors important vim-tiny_8.0.0197-3_armhf.deb
 d01e545b7854db6fe2c78a9f37f2c532 14533 editors optional vim_8.0.0197-3_armhf.buildinfo
 ba8f5dcf842ac3b7eef2a655e7ec68f3 790366 editors optional vim_8.0.0197-3_armhf.deb
 38a51aa340c0330348ef31baaa0202a9 10768 debug extra xxd-dbgsym_8.0.0197-3_armhf.deb
 37515f6b346a7330341f14763afb7dba 130620 editors extra xxd_8.0.0197-3_armhf.deb

+------------------------------------------------------------------------------+
| Package contents                                                             |
+------------------------------------------------------------------------------+


vim-athena-dbgsym_8.0.0197-3_armhf.deb
--------------------------------------

 new debian package, version 2.0.
 size 3675584 bytes: control archive=515 bytes.
     481 bytes,    15 lines      control              
     106 bytes,     1 lines      md5sums              
 Package: vim-athena-dbgsym
 Source: vim
 Version: 2:8.0.0197-3
 Auto-Built-Package: debug-symbols
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 3882
 Depends: vim-athena (= 2:8.0.0197-3)
 Breaks: vim-dbg (<< 2:7.4.1689-1~)
 Replaces: vim-dbg (<< 2:7.4.1689-1~)
 Section: debug
 Priority: extra
 Homepage: http://www.vim.org/
 Description: Debug symbols for vim-athena
 Build-Ids: 86ad1fe255088f7a0beb451227a2dcb9e5a3248b

drwxr-xr-x root/root         0 2017-03-07 03:33 ./
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/.build-id/86/
-rw-r--r-- root/root   3964676 2017-03-07 03:33 ./usr/lib/debug/.build-id/86/ad1fe255088f7a0beb451227a2dcb9e5a3248b.debug
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/
lrwxrwxrwx root/root         0 2017-03-07 03:33 ./usr/share/doc/vim-athena-dbgsym -> vim-athena


vim-athena_8.0.0197-3_armhf.deb
-------------------------------

 new debian package, version 2.0.
 size 979680 bytes: control archive=1751 bytes.
    1186 bytes,    21 lines      control              
     259 bytes,     4 lines      md5sums              
    1835 bytes,    61 lines   *  postinst             #!/bin/sh
     828 bytes,    43 lines   *  prerm                #!/bin/sh
 Package: vim-athena
 Source: vim
 Version: 2:8.0.0197-3
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 2352
 Depends: vim-common (= 2:8.0.0197-3), vim-gui-common (= 2:8.0.0197-3), vim-runtime (= 2:8.0.0197-3), libacl1 (>= 2.2.51-8), libc6 (>= 2.15), libgpm2 (>= 1.20.4), libice6 (>= 1:1.0.0), liblua5.2-0, libperl5.24 (>= 5.24.0), libpython3.5 (>= 3.5.0~b1), libruby2.3 (>= 2.3.0~preview2), libselinux1 (>= 1.32), libsm6, libtcl8.6 (>= 8.6.0), libtinfo5 (>= 6), libx11-6, libxaw7, libxmu6, libxpm4, libxt6
 Suggests: cscope, vim-doc
 Provides: editor, gvim, vim, vim-lua, vim-perl, vim-python, vim-ruby, vim-tcl
 Section: editors
 Priority: extra
 Homepage: http://www.vim.org/
 Description: Vi IMproved - enhanced vi editor - with Athena GUI
  Vim is an almost compatible version of the UNIX editor Vi.
  .
  Many new features have been added: multi level undo, syntax
  highlighting, command line history, on-line help, filename
  completion, block operations, folding, Unicode support, etc.
  .
  This package contains a version of vim compiled with a Athena GUI
  and support for scripting with Lua, Perl, Python, Ruby, and Tcl.

drwxr-xr-x root/root         0 2017-03-07 03:33 ./
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/bin/
-rwxr-xr-x root/root   2390524 2017-03-07 03:33 ./usr/bin/vim.athena
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/bug/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/bug/vim-athena/
-rw-r--r-- root/root       516 2017-03-07 03:33 ./usr/share/bug/vim-athena/presubj
-rwxr-xr-x root/root       204 2017-03-07 03:33 ./usr/share/bug/vim-athena/script
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/
lrwxrwxrwx root/root         0 2017-03-07 03:33 ./usr/share/doc/vim-athena -> vim-gui-common
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/lintian/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       146 2017-03-07 03:33 ./usr/share/lintian/overrides/vim-athena


vim-dbgsym_8.0.0197-3_armhf.deb
-------------------------------

 new debian package, version 2.0.
 size 2818330 bytes: control archive=506 bytes.
     460 bytes,    15 lines      control              
     106 bytes,     1 lines      md5sums              
 Package: vim-dbgsym
 Source: vim
 Version: 2:8.0.0197-3
 Auto-Built-Package: debug-symbols
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 2998
 Depends: vim (= 2:8.0.0197-3)
 Breaks: vim-dbg (<< 2:7.4.1689-1~)
 Replaces: vim-dbg (<< 2:7.4.1689-1~)
 Section: debug
 Priority: extra
 Homepage: http://www.vim.org/
 Description: Debug symbols for vim
 Build-Ids: bcb82a685c1309855a497c628e4a3c9beea8fcf9

drwxr-xr-x root/root         0 2017-03-07 03:33 ./
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/.build-id/bc/
-rw-r--r-- root/root   3059496 2017-03-07 03:33 ./usr/lib/debug/.build-id/bc/b82a685c1309855a497c628e4a3c9beea8fcf9.debug
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/
lrwxrwxrwx root/root         0 2017-03-07 03:33 ./usr/share/doc/vim-dbgsym -> vim


vim-gtk-dbgsym_8.0.0197-3_armhf.deb
-----------------------------------

 new debian package, version 2.0.
 size 4012860 bytes: control archive=511 bytes.
     472 bytes,    15 lines      control              
     106 bytes,     1 lines      md5sums              
 Package: vim-gtk-dbgsym
 Source: vim
 Version: 2:8.0.0197-3
 Auto-Built-Package: debug-symbols
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 4210
 Depends: vim-gtk (= 2:8.0.0197-3)
 Breaks: vim-dbg (<< 2:7.4.1689-1~)
 Replaces: vim-dbg (<< 2:7.4.1689-1~)
 Section: debug
 Priority: extra
 Homepage: http://www.vim.org/
 Description: Debug symbols for vim-gtk
 Build-Ids: ffa01c892260a5995e9cd9d5e085efc01c571ee4

drwxr-xr-x root/root         0 2017-03-07 03:33 ./
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/.build-id/ff/
-rw-r--r-- root/root   4300004 2017-03-07 03:33 ./usr/lib/debug/.build-id/ff/a01c892260a5995e9cd9d5e085efc01c571ee4.debug
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/
lrwxrwxrwx root/root         0 2017-03-07 03:33 ./usr/share/doc/vim-gtk-dbgsym -> vim-gtk


vim-gtk3-dbgsym_8.0.0197-3_armhf.deb
------------------------------------

 new debian package, version 2.0.
 size 3841820 bytes: control archive=512 bytes.
     475 bytes,    15 lines      control              
     106 bytes,     1 lines      md5sums              
 Package: vim-gtk3-dbgsym
 Source: vim
 Version: 2:8.0.0197-3
 Auto-Built-Package: debug-symbols
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 4045
 Depends: vim-gtk3 (= 2:8.0.0197-3)
 Breaks: vim-dbg (<< 2:7.4.1689-1~)
 Replaces: vim-dbg (<< 2:7.4.1689-1~)
 Section: debug
 Priority: extra
 Homepage: http://www.vim.org/
 Description: Debug symbols for vim-gtk3
 Build-Ids: e900cd65cd17e60b817a921921eb8c313f236938

drwxr-xr-x root/root         0 2017-03-07 03:33 ./
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/.build-id/e9/
-rw-r--r-- root/root   4131576 2017-03-07 03:33 ./usr/lib/debug/.build-id/e9/00cd65cd17e60b817a921921eb8c313f236938.debug
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/
lrwxrwxrwx root/root         0 2017-03-07 03:33 ./usr/share/doc/vim-gtk3-dbgsym -> vim-gtk3


vim-gtk3_8.0.0197-3_armhf.deb
-----------------------------

 new debian package, version 2.0.
 size 995756 bytes: control archive=1824 bytes.
    1351 bytes,    21 lines      control              
     251 bytes,     4 lines      md5sums              
    1831 bytes,    61 lines   *  postinst             #!/bin/sh
     824 bytes,    43 lines   *  prerm                #!/bin/sh
 Package: vim-gtk3
 Source: vim
 Version: 2:8.0.0197-3
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 2375
 Depends: vim-common (= 2:8.0.0197-3), vim-gui-common (= 2:8.0.0197-3), vim-runtime (= 2:8.0.0197-3), libacl1 (>= 2.2.51-8), libc6 (>= 2.15), libcairo2 (>= 1.4.10), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.37.3), libgpm2 (>= 1.20.4), libgtk-3-0 (>= 3.21.5), libice6 (>= 1:1.0.0), liblua5.2-0, libpango-1.0-0 (>= 1.37.5), libpangocairo-1.0-0 (>= 1.14.0), libperl5.24 (>= 5.24.0), libpython3.5 (>= 3.5.0~b1), libruby2.3 (>= 2.3.0~preview2), libselinux1 (>= 1.32), libsm6, libtcl8.6 (>= 8.6.0), libtinfo5 (>= 6), libx11-6, libxt6
 Suggests: cscope, fonts-dejavu, gnome-icon-theme, vim-doc
 Provides: editor, gvim, vim, vim-lua, vim-perl, vim-python, vim-ruby, vim-tcl
 Section: editors
 Priority: extra
 Homepage: http://www.vim.org/
 Description: Vi IMproved - enhanced vi editor - with GTK3 GUI
  Vim is an almost compatible version of the UNIX editor Vi.
  .
  Many new features have been added: multi level undo, syntax
  highlighting, command line history, on-line help, filename
  completion, block operations, folding, Unicode support, etc.
  .
  This package contains a version of vim compiled with a GTK3 GUI
  and support for scripting with Lua, Perl, Python, Ruby, and Tcl.

drwxr-xr-x root/root         0 2017-03-07 03:33 ./
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/bin/
-rwxr-xr-x root/root   2413740 2017-03-07 03:33 ./usr/bin/vim.gtk3
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/bug/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/bug/vim-gtk3/
-rw-r--r-- root/root       516 2017-03-07 03:33 ./usr/share/bug/vim-gtk3/presubj
-rwxr-xr-x root/root       204 2017-03-07 03:33 ./usr/share/bug/vim-gtk3/script
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/
lrwxrwxrwx root/root         0 2017-03-07 03:33 ./usr/share/doc/vim-gtk3 -> vim-gui-common
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/lintian/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       142 2017-03-07 03:33 ./usr/share/lintian/overrides/vim-gtk3


vim-gtk_8.0.0197-3_armhf.deb
----------------------------

 new debian package, version 2.0.
 size 994202 bytes: control archive=1805 bytes.
    1296 bytes,    21 lines      control              
     247 bytes,     4 lines      md5sums              
    1829 bytes,    61 lines   *  postinst             #!/bin/sh
     822 bytes,    43 lines   *  prerm                #!/bin/sh
 Package: vim-gtk
 Source: vim
 Version: 2:8.0.0197-3
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 2371
 Depends: vim-common (= 2:8.0.0197-3), vim-gui-common (= 2:8.0.0197-3), vim-runtime (= 2:8.0.0197-3), libacl1 (>= 2.2.51-8), libc6 (>= 2.15), libgdk-pixbuf2.0-0 (>= 2.25.2), libglib2.0-0 (>= 2.31.18), libgpm2 (>= 1.20.4), libgtk2.0-0 (>= 2.24.0), libice6 (>= 1:1.0.0), liblua5.2-0, libpango-1.0-0 (>= 1.32.4), libperl5.24 (>= 5.24.0), libpython3.5 (>= 3.5.0~b1), libruby2.3 (>= 2.3.0~preview2), libselinux1 (>= 1.32), libsm6, libtcl8.6 (>= 8.6.0), libtinfo5 (>= 6), libx11-6, libxt6
 Suggests: cscope, fonts-dejavu, gnome-icon-theme, vim-doc
 Provides: editor, gvim, vim, vim-lua, vim-perl, vim-python, vim-ruby, vim-tcl
 Section: editors
 Priority: extra
 Homepage: http://www.vim.org/
 Description: Vi IMproved - enhanced vi editor - with GTK2 GUI
  Vim is an almost compatible version of the UNIX editor Vi.
  .
  Many new features have been added: multi level undo, syntax
  highlighting, command line history, on-line help, filename
  completion, block operations, folding, Unicode support, etc.
  .
  This package contains a version of vim compiled with a GTK2 GUI
  and support for scripting with Lua, Perl, Python, Ruby, and Tcl.

drwxr-xr-x root/root         0 2017-03-07 03:33 ./
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/bin/
-rwxr-xr-x root/root   2409748 2017-03-07 03:33 ./usr/bin/vim.gtk
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/bug/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/bug/vim-gtk/
-rw-r--r-- root/root       516 2017-03-07 03:33 ./usr/share/bug/vim-gtk/presubj
-rwxr-xr-x root/root       204 2017-03-07 03:33 ./usr/share/bug/vim-gtk/script
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/
lrwxrwxrwx root/root         0 2017-03-07 03:33 ./usr/share/doc/vim-gtk -> vim-gui-common
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/lintian/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       140 2017-03-07 03:33 ./usr/share/lintian/overrides/vim-gtk


vim-nox-dbgsym_8.0.0197-3_armhf.deb
-----------------------------------

 new debian package, version 2.0.
 size 3127258 bytes: control archive=510 bytes.
     472 bytes,    15 lines      control              
     106 bytes,     1 lines      md5sums              
 Package: vim-nox-dbgsym
 Source: vim
 Version: 2:8.0.0197-3
 Auto-Built-Package: debug-symbols
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 3330
 Depends: vim-nox (= 2:8.0.0197-3)
 Breaks: vim-dbg (<< 2:7.4.1689-1~)
 Replaces: vim-dbg (<< 2:7.4.1689-1~)
 Section: debug
 Priority: extra
 Homepage: http://www.vim.org/
 Description: Debug symbols for vim-nox
 Build-Ids: b0aa6cfc51362a3efe11ac3d1a889574315c2265

drwxr-xr-x root/root         0 2017-03-07 03:33 ./
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/.build-id/b0/
-rw-r--r-- root/root   3399444 2017-03-07 03:33 ./usr/lib/debug/.build-id/b0/aa6cfc51362a3efe11ac3d1a889574315c2265.debug
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/
lrwxrwxrwx root/root         0 2017-03-07 03:33 ./usr/share/doc/vim-nox-dbgsym -> vim-nox


vim-nox_8.0.0197-3_armhf.deb
----------------------------

 new debian package, version 2.0.
 size 893738 bytes: control archive=1718 bytes.
    1080 bytes,    21 lines      control              
     247 bytes,     4 lines      md5sums              
    1829 bytes,    61 lines   *  postinst             #!/bin/sh
     822 bytes,    43 lines   *  prerm                #!/bin/sh
 Package: vim-nox
 Source: vim
 Version: 2:8.0.0197-3
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 2134
 Depends: vim-common (= 2:8.0.0197-3), vim-runtime (= 2:8.0.0197-3), libacl1 (>= 2.2.51-8), libc6 (>= 2.15), libgpm2 (>= 1.20.4), liblua5.2-0, libperl5.24 (>= 5.24.0), libpython3.5 (>= 3.5.0~b1), libruby2.3 (>= 2.3.0~preview2), libselinux1 (>= 1.32), libtcl8.6 (>= 8.6.0), libtinfo5 (>= 6)
 Suggests: cscope, vim-doc
 Provides: editor, vim, vim-lua, vim-perl, vim-python, vim-ruby, vim-tcl
 Section: editors
 Priority: extra
 Homepage: http://www.vim.org/
 Description: Vi IMproved - enhanced vi editor - with scripting languages support
  Vim is an almost compatible version of the UNIX editor Vi.
  .
  Many new features have been added: multi level undo, syntax
  highlighting, command line history, on-line help, filename
  completion, block operations, folding, Unicode support, etc.
  .
  This package contains a version of vim compiled with support for
  scripting with Lua, Perl, Python, Ruby, and Tcl but no GUI.

drwxr-xr-x root/root         0 2017-03-07 03:33 ./
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/bin/
-rwxr-xr-x root/root   2166788 2017-03-07 03:33 ./usr/bin/vim.nox
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/bug/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/bug/vim-nox/
-rw-r--r-- root/root       516 2017-03-07 03:33 ./usr/share/bug/vim-nox/presubj
-rwxr-xr-x root/root       204 2017-03-07 03:33 ./usr/share/bug/vim-nox/script
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/
lrwxrwxrwx root/root         0 2017-03-07 03:33 ./usr/share/doc/vim-nox -> vim-common
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/lintian/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       140 2017-03-07 03:33 ./usr/share/lintian/overrides/vim-nox


vim-tiny-dbgsym_8.0.0197-3_armhf.deb
------------------------------------

 new debian package, version 2.0.
 size 1094668 bytes: control archive=512 bytes.
     475 bytes,    15 lines      control              
     106 bytes,     1 lines      md5sums              
 Package: vim-tiny-dbgsym
 Source: vim
 Version: 2:8.0.0197-3
 Auto-Built-Package: debug-symbols
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 1220
 Depends: vim-tiny (= 2:8.0.0197-3)
 Breaks: vim-dbg (<< 2:7.4.1689-1~)
 Replaces: vim-dbg (<< 2:7.4.1689-1~)
 Section: debug
 Priority: extra
 Homepage: http://www.vim.org/
 Description: Debug symbols for vim-tiny
 Build-Ids: 3c4ac70959cfb83dc86c61172282be1130c8b06a

drwxr-xr-x root/root         0 2017-03-07 03:33 ./
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/.build-id/3c/
-rw-r--r-- root/root   1238104 2017-03-07 03:33 ./usr/lib/debug/.build-id/3c/4ac70959cfb83dc86c61172282be1130c8b06a.debug
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/
lrwxrwxrwx root/root         0 2017-03-07 03:33 ./usr/share/doc/vim-tiny-dbgsym -> vim-tiny


vim-tiny_8.0.0197-3_armhf.deb
-----------------------------

 new debian package, version 2.0.
 size 337674 bytes: control archive=1713 bytes.
      20 bytes,     1 lines      conffiles            
     833 bytes,    21 lines      control              
     453 bytes,     7 lines      md5sums              
    1831 bytes,    61 lines   *  postinst             #!/bin/sh
     824 bytes,    43 lines   *  prerm                #!/bin/sh
 Package: vim-tiny
 Source: vim
 Version: 2:8.0.0197-3
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 830
 Depends: vim-common (= 2:8.0.0197-3), libacl1 (>= 2.2.51-8), libc6 (>= 2.15), libselinux1 (>= 1.32), libtinfo5 (>= 6)
 Suggests: indent
 Provides: editor
 Section: editors
 Priority: important
 Homepage: http://www.vim.org/
 Description: Vi IMproved - enhanced vi editor - compact version
  Vim is an almost compatible version of the UNIX editor Vi.
  .
  This package contains a minimal version of Vim compiled with no GUI and
  a small subset of features. This package's sole purpose is to provide
  the vi binary for base installations.
  .
  If a vim binary is wanted, try one of the following more featureful
  packages: vim, vim-nox, vim-athena, vim-gtk, or vim-gtk3.

drwxr-xr-x root/root         0 2017-03-07 03:33 ./
drwxr-xr-x root/root         0 2017-03-07 03:33 ./etc/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./etc/vim/
-rw-r--r-- root/root       662 2017-03-07 03:33 ./etc/vim/vimrc.tiny
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/bin/
-rwxr-xr-x root/root    819920 2017-03-07 03:33 ./usr/bin/vim.tiny
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/bug/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/bug/vim-tiny/
-rw-r--r-- root/root       516 2017-03-07 03:33 ./usr/share/bug/vim-tiny/presubj
-rwxr-xr-x root/root       204 2017-03-07 03:33 ./usr/share/bug/vim-tiny/script
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/
lrwxrwxrwx root/root         0 2017-03-07 03:33 ./usr/share/doc/vim-tiny -> vim-common
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/lintian/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       142 2017-03-07 03:33 ./usr/share/lintian/overrides/vim-tiny
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/vim/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/vim/vim80/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/vim/vim80/doc/
-rw-r--r-- root/root       324 2017-03-07 03:33 ./usr/share/vim/vim80/doc/README.Debian
-rw-r--r-- root/root      1431 2017-03-07 03:33 ./usr/share/vim/vim80/doc/help.txt
-rw-r--r-- root/root        30 2017-03-07 03:33 ./usr/share/vim/vim80/doc/tags
lrwxrwxrwx root/root         0 2017-03-07 03:33 ./usr/share/vim/vimrc.tiny -> /etc/vim/vimrc.tiny


vim_8.0.0197-3_armhf.deb
------------------------

 new debian package, version 2.0.
 size 790366 bytes: control archive=1650 bytes.
     945 bytes,    22 lines      control              
     237 bytes,     4 lines      md5sums              
    1827 bytes,    61 lines   *  postinst             #!/bin/sh
     820 bytes,    43 lines   *  prerm                #!/bin/sh
 Package: vim
 Version: 2:8.0.0197-3
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 1876
 Depends: vim-common (= 2:8.0.0197-3), vim-runtime (= 2:8.0.0197-3), libacl1 (>= 2.2.51-8), libc6 (>= 2.15), libgpm2 (>= 1.20.4), libselinux1 (>= 1.32), libtinfo5 (>= 6)
 Suggests: ctags, vim-doc, vim-scripts
 Provides: editor
 Section: editors
 Priority: optional
 Homepage: http://www.vim.org/
 Description: Vi IMproved - enhanced vi editor
  Vim is an almost compatible version of the UNIX editor Vi.
  .
  Many new features have been added: multi level undo, syntax
  highlighting, command line history, on-line help, filename
  completion, block operations, folding, Unicode support, etc.
  .
  This package contains a version of vim compiled with a rather
  standard set of features.  This package does not provide a GUI
  version of Vim.  See the other vim-* packages if you need more
  (or less).

drwxr-xr-x root/root         0 2017-03-07 03:33 ./
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/bin/
-rwxr-xr-x root/root   1902804 2017-03-07 03:33 ./usr/bin/vim.basic
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/bug/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/bug/vim/
-rw-r--r-- root/root       516 2017-03-07 03:33 ./usr/share/bug/vim/presubj
-rwxr-xr-x root/root       204 2017-03-07 03:33 ./usr/share/bug/vim/script
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/
lrwxrwxrwx root/root         0 2017-03-07 03:33 ./usr/share/doc/vim -> vim-common
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/lintian/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/lintian/overrides/
-rw-r--r-- root/root       138 2017-03-07 03:33 ./usr/share/lintian/overrides/vim


xxd-dbgsym_8.0.0197-3_armhf.deb
-------------------------------

 new debian package, version 2.0.
 size 10768 bytes: control archive=475 bytes.
     386 bytes,    13 lines      control              
     106 bytes,     1 lines      md5sums              
 Package: xxd-dbgsym
 Source: vim
 Version: 2:8.0.0197-3
 Auto-Built-Package: debug-symbols
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 25
 Depends: xxd (= 2:8.0.0197-3)
 Section: debug
 Priority: extra
 Homepage: http://www.vim.org/
 Description: Debug symbols for xxd
 Build-Ids: 385313d82005d340cb7effdff590af93d84ca58d

drwxr-xr-x root/root         0 2017-03-07 03:33 ./
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/lib/debug/.build-id/38/
-rw-r--r-- root/root     14344 2017-03-07 03:33 ./usr/lib/debug/.build-id/38/5313d82005d340cb7effdff590af93d84ca58d.debug
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/
lrwxrwxrwx root/root         0 2017-03-07 03:33 ./usr/share/doc/xxd-dbgsym -> xxd


xxd_8.0.0197-3_armhf.deb
------------------------

 new debian package, version 2.0.
 size 130620 bytes: control archive=807 bytes.
     509 bytes,    15 lines      control              
     634 bytes,    10 lines      md5sums              
 Package: xxd
 Source: vim
 Version: 2:8.0.0197-3
 Architecture: armhf
 Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 Installed-Size: 162
 Depends: libc6 (>= 2.4)
 Breaks: vim-common (<< 2:7.4.2347-1~)
 Replaces: vim-common (<< 2:7.4.2347-1~)
 Section: editors
 Priority: extra
 Homepage: http://www.vim.org/
 Description: tool to make (or reverse) a hex dump
  xxd creates a hex dump of a given file or standard input.  It can also convert
  a hex dump back to its original binary form.

drwxr-xr-x root/root         0 2017-03-07 03:33 ./
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/bin/
-rwxr-xr-x root/root     13848 2017-03-07 03:33 ./usr/bin/xxd
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/doc/xxd/
-rw-r--r-- root/root      1774 2017-03-07 03:33 ./usr/share/doc/xxd/NEWS.Debian.gz
-rw-r--r-- root/root     86313 2017-03-07 03:33 ./usr/share/doc/xxd/changelog.Debian.gz
-rw-r--r-- root/root     10927 2017-03-07 03:33 ./usr/share/doc/xxd/copyright
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/man/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/man/fr/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/man/fr/man1/
-rw-r--r-- root/root      4905 2017-03-07 03:33 ./usr/share/man/fr/man1/xxd.1.gz
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/man/it/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/man/it/man1/
-rw-r--r-- root/root      4819 2017-03-07 03:33 ./usr/share/man/it/man1/xxd.1.gz
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/man/ja/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/man/ja/man1/
-rw-r--r-- root/root      4774 2017-03-07 03:33 ./usr/share/man/ja/man1/xxd.1.gz
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/man/man1/
-rw-r--r-- root/root      4309 2017-03-07 03:33 ./usr/share/man/man1/xxd.1.gz
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/man/pl/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/man/pl/man1/
-rw-r--r-- root/root      4642 2017-03-07 03:33 ./usr/share/man/pl/man1/xxd.1.gz
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/man/ru/
drwxr-xr-x root/root         0 2017-03-07 03:33 ./usr/share/man/ru/man1/
-rw-r--r-- root/root      6117 2017-03-07 03:33 ./usr/share/man/ru/man1/xxd.1.gz


+------------------------------------------------------------------------------+
| Post Build                                                                   |
+------------------------------------------------------------------------------+


+------------------------------------------------------------------------------+
| Cleanup                                                                      |
+------------------------------------------------------------------------------+

Purging /<<BUILDDIR>>
Not cleaning session: cloned chroot in use

+------------------------------------------------------------------------------+
| Summary                                                                      |
+------------------------------------------------------------------------------+

Build Architecture: armhf
Build-Space: 494200
Build-Time: 3680
Distribution: stretch-staging
Host Architecture: armhf
Install-Time: 2368
Job: vim_2:8.0.0197-3
Machine Architecture: armhf
Package: vim
Package-Time: 6111
Source-Version: 2:8.0.0197-3
Space: 494200
Status: successful
Version: 2:8.0.0197-3
--------------------------------------------------------------------------------
Finished at 2017-03-09T07:05:06Z
Build needed 01:41:51, 494200k disc space